diff --git a/.freeipa-pr-ci.yaml b/.freeipa-pr-ci.yaml index 0d16c16a5..f4a3467a5 100644 --- a/.freeipa-pr-ci.yaml +++ b/.freeipa-pr-ci.yaml @@ -1,5 +1,19 @@ +topologies: + build: &build + name: build + cpu: 2 + memory: 3800 + master_1repl: &master_1repl + name: master_1repl + cpu: 4 + memory: 5750 + master_1repl_1client: &master_1repl_1client + name: master_1repl_1client + cpu: 4 + memory: 6700 + jobs: - fedora-25/build: + fedora-27/build: requires: [] priority: 100 job: @@ -7,28 +21,44 @@ jobs: args: git_repo: '{git_repo}' git_refspec: '{git_refspec}' - template: &ci-master-f25 - name: freeipa/ci-master-f25 - version: 0.2.11 + template: &ci-master-f27 + name: freeipa/ci-master-f27 + version: 1.0.1 timeout: 1800 + topology: *build - fedora-25/simple_replication: - requires: [fedora-25/build] + fedora-27/simple_replication: + requires: [fedora-27/build] priority: 50 job: class: RunPytest args: - build_url: '{fedora-25/build_url}' + build_url: '{fedora-27/build_url}' test_suite: test_integration/test_simple_replication.py - template: *ci-master-f25 + template: *ci-master-f27 timeout: 3600 + topology: *master_1repl - fedora-25/caless: - requires: [fedora-25/build] + fedora-27/caless: + requires: [fedora-27/build] priority: 50 job: class: RunPytest args: - build_url: '{fedora-25/build_url}' + build_url: '{fedora-27/build_url}' test_suite: test_integration/test_caless.py::TestServerReplicaCALessToCAFull - template: *ci-master-f25 + template: *ci-master-f27 + timeout: 3600 + topology: *master_1repl + + fedora-27/external_ca: + requires: [fedora-27/build] + priority: 50 + job: + class: RunPytest + args: + build_url: '{fedora-27/build_url}' + test_suite: test_integration/test_external_ca.py::TestExternalCA + template: *ci-master-f27 + timeout: 3600 + topology: *master_1repl diff --git a/.gitignore b/.gitignore index 8f4c2aa7a..872d716eb 100644 --- a/.gitignore +++ b/.gitignore @@ -108,11 +108,8 @@ freeipa2-dev-doc /client/ipa-join /client/ipa-rmkeytab +/ipaplatform/override.py /ipapython/version.py /ipapython/.DEFAULT_PLUGINS -/ipaplatform/__init__.py -/ipaplatform/constants.py -/ipaplatform/paths.py -/ipaplatform/services.py -/ipaplatform/tasks.py +/ipatests/.cache/ diff --git a/.test_runner_config.yaml b/.test_runner_config.yaml index 604a16f8a..febc38d12 100644 --- a/.test_runner_config.yaml +++ b/.test_runner_config.yaml @@ -24,11 +24,12 @@ server: realm: IPA.TEST steps: build: - - make V=0 ${make_target} + - make V=0 ${make_target} LOG_COMPILE='gdb -return-child-result -ex run -ex "thread apply all bt" -ex "quit" --args' builddep: - rm -rf /var/cache/dnf/* - - "dnf makecache fast || :" - - dnf builddep -y ${builddep_opts} --spec freeipa.spec.in --best --allowerasing + - "dnf makecache || :" + - dnf builddep -y ${builddep_opts} -D "with_wheels 1" --spec freeipa.spec.in --best --allowerasing + - dnf install -y gdb cleanup: - chown -R ${uid}:${gid} ${container_working_dir} - journalctl -b --no-pager > systemd_journal.log @@ -40,6 +41,7 @@ steps: /var/log/krb5kdc.log /var/log/pki systemd_journal.log + `find daemons -name '*.log' -print` - chown ${uid}:${gid} ${container_working_dir}/var_log.tar configure: - ./autogen.sh @@ -53,6 +55,9 @@ steps: lint: - make PYTHON=/usr/bin/python2 V=0 lint - make PYTHON=/usr/bin/python3 V=0 pylint + tox: + # just run one pylint and one Python 3 target (time/coverage trade-off) + - tox -e py27,py36,pypi,pylint3 prepare_tests: - echo ${server_password} | kinit admin && ipa ping - cp -r /etc/ipa/* ~/.ipa/ diff --git a/.test_runner_config_py3_temp.yaml b/.test_runner_config_py3_temp.yaml index 9497115c1..bdc1d0e33 100644 --- a/.test_runner_config_py3_temp.yaml +++ b/.test_runner_config_py3_temp.yaml @@ -26,13 +26,24 @@ server: realm: IPA.TEST steps: build: - - make V=0 ${make_target} + - make V=0 ${make_target} LOG_COMPILE='gdb -return-child-result -ex run -ex "thread apply all bt" -ex "quit" --args' builddep: - rm -rf /var/cache/dnf/* - - "dnf makecache fast || :" + - "dnf makecache || :" - dnf builddep -y ${builddep_opts} --spec freeipa.spec.in --best --allowerasing + - dnf install -y gdb cleanup: - chown -R ${uid}:${gid} ${container_working_dir} + - > + tar --ignore-failed-read -cvf ${container_working_dir}/var_log.tar + /var/log/dirsrv + /var/log/httpd + /var/log/ipa* + /var/log/krb5kdc.log + /var/log/pki + systemd_journal.log + `find daemons -name '*.log' -print` + - chown ${uid}:${gid} ${container_working_dir}/var_log.tar configure: - ./autogen.sh install_packages: diff --git a/.travis.yml b/.travis.yml index ec2e41aab..d6fbb553c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,12 +3,12 @@ services: - docker python: - - "2.7" + - "3.6" cache: pip env: global: - - TEST_RUNNER_IMAGE="martbab/freeipa-fedora-test-runner:master-latest" - PEP8_ERROR_LOG="pep8_errors.log" + - TEST_RUNNER_IMAGE="freeipa/freeipa-test-runner:master-latest" + PEP8_ERROR_LOG="pycodestyle_errors.log" CI_RESULTS_LOG="ci_results_${TRAVIS_BRANCH}.log" CI_BACKLOG_SIZE=5000 CI_RUNNER_LOGS_DIR="/tmp/test-runner-logs" @@ -27,85 +27,38 @@ env: test_install test_ipaclient test_ipalib + test_ipaplatform test_ipapython test_ipaserver - test_pkcs10 test_xmlrpc/test_[l-z]*.py" - TASK_TO_RUN="run-tests" PYTHON=/usr/bin/python3 TEST_RUNNER_CONFIG=".test_runner_config_py3_temp.yaml" - TESTS_TO_RUN="test_xmlrpc/test_add_remove_cert_cmd.py - test_xmlrpc/test_attr.py - test_xmlrpc/test_automember_plugin.py - test_xmlrpc/test_automount_plugin.py - test_xmlrpc/test_baseldap_plugin.py - test_xmlrpc/test_batch_plugin.py - test_xmlrpc/test_cert_plugin.py - test_xmlrpc/test_certprofile_plugin.py - test_xmlrpc/test_config_plugin.py - test_xmlrpc/test_delegation_plugin.py - test_xmlrpc/test_group_plugin.py - test_xmlrpc/test_hbac_plugin.py - test_xmlrpc/test_hbacsvcgroup_plugin.py - test_xmlrpc/test_hbactest_plugin.py - test_xmlrpc/test_host_plugin.py - test_xmlrpc/test_hostgroup_plugin.py - test_xmlrpc/test_krbtpolicy.py - test_xmlrpc/test_kerberos_principal_aliases.py" - ### Tests which haven't been ported to py3 yet ### - ## test_xmlrpc/test_[a-k]*.py - # test_xmlrpc/test_ca_plugin.py - # test_xmlrpc/test_caacl_plugin.py - # test_xmlrpc/test_caacl_profile_enforcement.py - # test_xmlrpc/test_dns_plugin.py - # test_xmlrpc/test_dns_realmdomains_integration.py - # test_xmlrpc/test_external_members.py - # test_xmlrpc/test_idviews_plugin.py + TESTS_TO_RUN="test_xmlrpc/test_[a-k]*.py" - TASK_TO_RUN="run-tests" PYTHON=/usr/bin/python3 TEST_RUNNER_CONFIG=".test_runner_config_py3_temp.yaml" TESTS_TO_RUN="test_cmdline + test_install + test_ipaclient test_ipalib + test_ipaplatform test_ipapython test_ipaserver - test_pkcs10 - test_xmlrpc/test_location_plugin.py - test_xmlrpc/test_nesting.py - test_xmlrpc/test_netgroup_plugin.py - test_xmlrpc/test_old_permission_plugin.py - test_xmlrpc/test_passwd_plugin.py - test_xmlrpc/test_permission_plugin.py - test_xmlrpc/test_ping_plugin.py - test_xmlrpc/test_privilege_plugin.py - test_xmlrpc/test_pwpolicy_plugin.py - test_xmlrpc/test_radiusproxy_plugin.py - test_xmlrpc/test_realmdomains_plugin.py - test_xmlrpc/test_replace.py - test_xmlrpc/test_role_plugin.py - test_xmlrpc/test_selfservice_plugin.py - test_xmlrpc/test_selinuxusermap_plugin.py - test_xmlrpc/test_service_plugin.py - test_xmlrpc/test_servicedelegation_plugin.py - test_xmlrpc/test_stageuser_plugin.py - test_xmlrpc/test_sudocmd_plugin.py - test_xmlrpc/test_sudocmdgroup_plugin.py - test_xmlrpc/test_sudorule_plugin.py" - ### Tests which haven't been ported to py3 yet ### - ## test_xmlrpc/test_[l-z]*.py - # test_xmlrpc/test_range_plugin.py - # test_xmlrpc/test_trust_plugin.py - # test_xmlrpc/test_vault_plugin.py + test_xmlrpc/test_[l-z]*.py" + - TASK_TO_RUN="tox" + TEST_RUNNER_CONFIG=".test_runner_config.yaml" install: - - pip install --upgrade pip - pip3 install --upgrade pip - - pip install pep8 + - pip3 install pycodestyle - > pip3 install - git+https://github.com/freeipa/ipa-docker-test-runner@release-0-2-1 + git+https://github.com/freeipa/ipa-docker-test-runner@release-0-2-2 script: - mkdir -p $CI_RUNNER_LOGS_DIR - travis_wait 50 ./.travis_run_task.sh + - test -z "`cat $PEP8_ERROR_LOG`" after_failure: - echo "Test runner output:"; tail -n $CI_BACKLOG_SIZE $CI_RESULTS_LOG - echo "PEP-8 errors:"; cat $PEP8_ERROR_LOG diff --git a/.travis_run_task.sh b/.travis_run_task.sh index 540c883d8..d3a9cd5ed 100755 --- a/.travis_run_task.sh +++ b/.travis_run_task.sh @@ -5,7 +5,6 @@ # NOTE: this script is intended to run in Travis CI only test_set="" -developer_mode_opt="--developer-mode" if [[ $PYTHON == "/usr/bin/python2" ]] then @@ -14,6 +13,15 @@ else env_opt="" fi +case "$TASK_TO_RUN" in + lint|tox) + # disable developer mode for lint and tox tasks. + developer_mode_opt="" + ;; + *) + developer_mode_opt="--developer-mode" + ;; +esac function truncate_log_to_test_failures() { # chop off everything in the CI_RESULTS_LOG preceding pytest error output @@ -30,11 +38,8 @@ if [[ "$TASK_TO_RUN" == "lint" ]] then if [[ "$TRAVIS_EVENT_TYPE" == "pull_request" ]] then - git diff origin/$TRAVIS_BRANCH -U0 | pep8 --diff &> $PEP8_ERROR_LOG ||: + git diff origin/$TRAVIS_BRANCH -U0 | pycodestyle --diff &> $PEP8_ERROR_LOG ||: fi - - # disable developer mode for lint task, otherwise we get an error - developer_mode_opt="" fi if [[ -n "$TESTS_TO_RUN" ]] diff --git a/.wheelconstraints.in b/.wheelconstraints.in index ba37de75e..d46230383 100644 --- a/.wheelconstraints.in +++ b/.wheelconstraints.in @@ -9,5 +9,5 @@ ipapython == @VERSION@ ipaserver == @VERSION@ ipatests == @VERSION@ -# see https://pagure.io/freeipa/issue/6874 -pylint < 1.7 +# we include some checks available only in pylint-1.7 and on +pylint >= 1.7 diff --git a/API.txt b/API.txt index 4b06a9692..0526d5a90 100644 --- a/API.txt +++ b/API.txt @@ -783,7 +783,7 @@ option: Str('version?') output: Output('result') command: cert_request/1 args: 1,9,3 -arg: Str('csr', cli_name='csr_file') +arg: CertificateSigningRequest('csr', cli_name='csr_file') option: Flag('add', autofill=True, default=False) option: Flag('all', autofill=True, cli_name='all', default=False) option: Str('cacn?', autofill=True, cli_name='ca', default=u'ipa') diff --git a/BUILD.txt b/BUILD.txt index 1729daebf..e3898aa68 100644 --- a/BUILD.txt +++ b/BUILD.txt @@ -7,7 +7,7 @@ For more information, see http://www.freeipa.org/page/Build The quickest way to get the dependencies needed for building is: -# dnf builddep -b -D "with_lint 1" --spec freeipa.spec.in +# dnf builddep -b -D "with_python3 1" -D "with_wheels 1" -D "with_lint 1" --spec freeipa.spec.in --best --allowerasing TIP: For building with latest dependencies for freeipa master enable copr repo: @@ -66,9 +66,9 @@ changes are required. Testing ------- -For more information, see http://www.freeipa.org/page/Testing +For more information, see https://www.freeipa.org/page/Testing -We use python nosetests to test for regressions in the management framework +We use python pytest to test for regressions in the management framework and plugins. All test dependencies are required by the freeipa-tests package. To run all of the tests you will need 2 sessions, one to run the lite-server @@ -82,6 +82,14 @@ Some tests may be skipped. For example, all the XML-RPC tests will be skipped if you haven't started the lite-server. The DNS tests will be skipped if the underlying IPA installation doesn't configure DNS, etc. +To just execute fast unittest and code linters, use the fastcheck target. +Fast tests only execute a subset of the test suite that does not depend on +an initialized API and server instance. Fast linting just verifies modified +files / lines. + +% make fastcheck + + API.txt ------- The purpose of the file API.txt is to prevent accidental API changes. The diff --git a/Contributors.txt b/Contributors.txt index 3f514aeac..25abf989b 100644 --- a/Contributors.txt +++ b/Contributors.txt @@ -10,6 +10,7 @@ Developers: Tomáš Babej Martin Babinsky Kyle Baker + Felipe Barreto Jan Barta Martin Bašti Sylvain Baubeau @@ -26,6 +27,7 @@ Developers: Rob Crittenden Frank Cusack Nalin Dahyabhai + Rishabh Dave Don Davis John Dennis Jason Gerard DeRose @@ -38,6 +40,7 @@ Developers: Lewis Eason Drew Erny Oleg Fayans + felipe Jérôme Fenal Fabiano Fidêncio Stephen Gallagher @@ -52,6 +55,7 @@ Developers: Abhijeet Kasurde Nathan Kinder Krzysztof Klimonda + Alexander Koksharov Nikolai Kondrashov Martin Košek David Kreitschmann @@ -77,6 +81,7 @@ Developers: Rich Megginson Jim Meyering Adam Misnyovszki + John Morris Niranjan MR Marko Myllynen Martin Nagy @@ -111,6 +116,7 @@ Developers: Andrew Wnuk Jason Woods Adam Young + Mohammad Rizwan Yusuf Jan Zelený Alex Zeleznikov Michal Židek diff --git a/Makefile.am b/Makefile.am index 02e53f550..85c020506 100644 --- a/Makefile.am +++ b/Makefile.am @@ -8,22 +8,23 @@ if WITH_IPATESTS IPATESTS_SUBDIRS = ipatests endif -IPACLIENT_SUBDIRS = ipaclient ipalib ipapython -IPA_PLACEHOLDERS = freeipa ipa ipaplatform ipaserver ipatests +IPACLIENT_SUBDIRS = ipaclient ipalib ipaplatform ipapython +IPA_PLACEHOLDERS = freeipa ipa ipaserver ipatests SUBDIRS = asn1 util client contrib po pypi \ - $(IPACLIENT_SUBDIRS) ipaplatform $(IPATESTS_SUBDIRS) $(SERVER_SUBDIRS) + $(IPACLIENT_SUBDIRS) $(IPATESTS_SUBDIRS) $(SERVER_SUBDIRS) + +GENERATED_PYTHON_FILES = \ + $(top_builddir)/ipaplatform/override.py \ + $(top_builddir)/ipapython/version.py MOSTLYCLEANFILES = ipasetup.pyc ipasetup.pyo \ - ignore_import_errors.pyc ignore_import_errors.pyo \ - ipasetup.pyc ipasetup.pyo \ pylint_plugins.pyc pylint_plugins.pyo # user-facing scripts dist_bin_SCRIPTS = ipa # files required for build but not installed -dist_noinst_SCRIPTS = ignore_import_errors.py \ - makeapi \ +dist_noinst_SCRIPTS = makeapi \ makeaci \ make-doc \ make-test \ @@ -136,7 +137,7 @@ _srpms-body: _rpms-prep rm -f rm -f $(top_builddir)/.version .PHONY: lite-server -lite-server: $(top_builddir)/ipapython/version.py +lite-server: $(GENERATED_PYTHON_FILES) +$(MAKE) -C $(top_builddir)/install/ui PYTHONPATH=$(top_srcdir) $(PYTHON) -bb \ contrib/lite-server.py $(LITESERVER_ARGS) @@ -168,13 +169,13 @@ if ! WITH_PYTHON2 @echo "ERROR: python2 not available"; exit 1 endif @ # run all linters, tests, and check with Python 2 - PYTHONPATH=$(top_srcdir) $(PYTHON2) ipatests/ipa-run-tests \ + PYTHONPATH=$(abspath $(top_srcdir)) $(PYTHON2) ipatests/ipa-run-tests \ --ipaclient-unittests $(MAKE) $(AM_MAKEFLAGS) acilint apilint polint jslint check $(MAKE) $(AM_MAKEFLAGS) PYTHON=$(PYTHON2) pylint if WITH_PYTHON3 @ # just tests and pylint on Python 3 - PYTHONPATH=$(top_srcdir) $(PYTHON3) ipatests/ipa-run-tests \ + PYTHONPATH=$(abspath $(top_srcdir)) $(PYTHON3) ipatests/ipa-run-tests \ --ipaclient-unittests $(MAKE) $(AM_MAKEFLAGS) PYTHON=$(PYTHON3) pylint else @@ -182,16 +183,63 @@ else endif @echo "All tests passed." +.PHONY: fastcheck fasttest fastlint +fastcheck: +if WITH_PYTHON2 + @$(MAKE) -j1 $(AM_MAKEFLAGS) PYTHON=$(PYTHON2) fastlint fasttest +endif +if WITH_PYTHON3 + @$(MAKE) -j1 $(AM_MAKEFLAGS) PYTHON=$(PYTHON3) fastlint fasttest +endif + +fasttest: $(GENERATED_PYTHON_FILES) ipasetup.py + @ # --ignore doubles speed of total test run compared to pytest.skip() + @ # on module. + PYTHONPATH=$(abspath $(top_srcdir)) $(PYTHON3) ipatests/ipa-run-tests \ + --skip-ipaapi \ + --ignore $(abspath $(top_srcdir))/ipatests/test_integration \ + --ignore $(abspath $(top_srcdir))/ipatests/test_xmlrpc + +fastlint: $(GENERATED_PYTHON_FILES) ipasetup.py +if ! WITH_PYLINT + @echo "ERROR: pylint not available"; exit 1 +endif + @echo "Fast linting with $(PYTHON) from branch '$(GIT_BRANCH)'" + + @MERGEBASE=$$(git merge-base --fork-point $(GIT_BRANCH)); \ + FILES=$$(git diff --name-only $${MERGEBASE} \ + | grep -E '\.py$$'); \ + if [ -n "$${FILES}" ]; then \ + echo "Fast linting files: $${FILES}"; \ + echo "pylint"; \ + echo "------"; \ + PYTHONPATH=$(abspath $(top_srcdir)) $(PYTHON) -m pylint \ + --rcfile=$(top_srcdir)/pylintrc \ + --load-plugins pylint_plugins \ + $${FILES} || exit $?; \ + echo "pycodestyle"; \ + echo "-----------"; \ + git diff $${MERGEBASE} | \ + $(PYTHON) -m pycodestyle --diff || exit $?; \ + else \ + echo "No modified Python files found"; \ + fi + + +.PHONY: $(top_builddir)/ipaplatform/override.py +$(top_builddir)/ipaplatform/override.py: + (cd $(top_builddir)/ipaplatform && make override.py) + .PHONY: $(top_builddir)/ipapython/version.py $(top_builddir)/ipapython/version.py: (cd $(top_builddir)/ipapython && make version.py) .PHONY: acilint -acilint: $(top_builddir)/ipapython/version.py +acilint: $(GENERATED_PYTHON_FILES) cd $(srcdir); ./makeaci --validate .PHONY: apilint -apilint: $(top_builddir)/ipapython/version.py +apilint: $(GENERATED_PYTHON_FILES) cd $(srcdir); ./makeapi --validate .PHONY: polint @@ -206,7 +254,7 @@ polint: .PHONY: pylint if WITH_PYLINT -pylint: $(top_builddir)/ipapython/version.py ipasetup.py +pylint: $(GENERATED_PYTHON_FILES) ipasetup.py FILES=`find $(top_srcdir) \ -type d -exec test -e '{}/__init__.py' \; -print -prune -o \ -path './rpmbuild' -prune -o \ diff --git a/VERSION.m4 b/VERSION.m4 index 1f9ebc707..e7acf50f7 100644 --- a/VERSION.m4 +++ b/VERSION.m4 @@ -21,7 +21,7 @@ ######################################################## define(IPA_VERSION_MAJOR, 4) define(IPA_VERSION_MINOR, 6) -define(IPA_VERSION_RELEASE, 0) +define(IPA_VERSION_RELEASE, 2) ######################################################## # For 'pre' releases the version will be # @@ -48,6 +48,15 @@ define(IPA_VERSION_PRE_RELEASE, ) ######################################################## define(IPA_VERSION_IS_GIT_SNAPSHOT, no) +######################################################## +# git development branch: # +# # +# - master: define(IPA_GIT_BRANCH, master) # +# - ipa-X-X: define(IPA_GIT_BRANCH, # +# ipa-IPA_VERSION_MAJOR-IPA_VERSION_MINOR) # +######################################################## +define(IPA_GIT_BRANCH, ipa-IPA_VERSION_MAJOR-IPA_VERSION_MINOR) + ######################################################## # The version of IPA data. This is used to identify # # incompatibilities in data that could cause issues # @@ -128,6 +137,7 @@ NEWLINE)) dnl IPA_VERSION end dnl DEBUG: uncomment following lines and run command m4 VERSION.m4 dnl `IPA_VERSION: ''IPA_VERSION' dnl `IPA_GIT_VERSION: ''IPA_GIT_VERSION' +dnf `IPA_GIT_BRANCH: ''IPA_GIT_BRANCH' dnl `IPA_API_VERSION: ''IPA_API_VERSION' dnl `IPA_DATA_VERSION: ''IPA_DATA_VERSION' dnl `IPA_NUM_VERSION: ''IPA_NUM_VERSION' diff --git a/client/man/ipa-getkeytab.1 b/client/man/ipa-getkeytab.1 index 08f6ec40d..39ff0d5da 100644 --- a/client/man/ipa-getkeytab.1 +++ b/client/man/ipa-getkeytab.1 @@ -44,10 +44,15 @@ provided, so the principal name is just the service name and hostname (ldap/foo.example.com from the example above). +ipa-getkeytab is used during IPA client enrollment to retrieve a host service principal and store it in /etc/krb5.keytab. It is possible to retrieve the keytab without Kerberos credentials if the host was pre\-created with a one\-time password. The keytab can be retrieved by binding as the host and authenticating with this one\-time password. The \fB\-D|\-\-binddn\fR and \fB\-w|\-\-bindpw\fR options are used for this authentication. + \fBWARNING:\fR retrieving the keytab resets the secret for the Kerberos principal. This renders all other keytabs for that principal invalid. +When multiple hosts or services need to share the same key (for instance in high availability or load balancing clusters), the \fB\-r\fR option must be used to retrieve the existing key instead of generating a new one (please refer to the EXAMPLES section). + +Note that the user or host calling \fBipa-getkeytab\fR needs to be allowed to generate the key with \fBipa host\-allow\-create\-keytab\fR or \fBipa service\-allow\-create\-keytab\fR, +and the user or host calling \fBipa-getkeytab \-r\fR needs to be allowed to retrieve the keytab for the host or service with \fBipa host\-allow\-retrieve\-keytab\fR or \fBipa service\-allow\-retrieve\-keytab\fR. -This is used during IPA client enrollment to retrieve a host service principal and store it in /etc/krb5.keytab. It is possible to retrieve the keytab without Kerberos credentials if the host was pre\-created with a one\-time password. The keytab can be retrieved by binding as the host and authenticating with this one\-time password. The \fB\-D|\-\-binddn\fR and \fB\-w|\-\-bindpw\fR options are used for this authentication. .SH "OPTIONS" .TP \fB\-p principal\-name\fR @@ -118,16 +123,44 @@ keytab must have access to the keys for this operation to succeed. Add and retrieve a keytab for the NFS service principal on the host foo.example.com and save it in the file /tmp/nfs.keytab and retrieve just the des\-cbc\-crc key. +.nf # ipa\-getkeytab \-p nfs/foo.example.com \-k /tmp/nfs.keytab \-e des\-cbc\-crc +.fi Add and retrieve a keytab for the ldap service principal on the host foo.example.com and save it in the file /tmp/ldap.keytab. +.nf # ipa\-getkeytab \-s ipaserver.example.com \-p ldap/foo.example.com \-k /tmp/ldap.keytab +.fi Retrieve a keytab using LDAP credentials (this will typically be done by \fBipa\-join(1)\fR when enrolling a client using the \fBipa\-client\-install(1)\fR command: +.nf # ipa\-getkeytab \-s ipaserver.example.com \-p host/foo.example.com \-k /etc/krb5.keytab \-D fqdn=foo.example.com,cn=computers,cn=accounts,dc=example,dc=com \-w password +.fi + +Add and retrieve a keytab for a clustered HTTP service deployed on client1.example.com and client2.example.com (already enrolled), using the client-frontend.example.com host name: + +.nf + # ipa host-add client-frontend.example.com --ip-address 10.1.2.3 + # ipa service-add HTTP/client-frontend.example.com + # ipa service-allow-retrieve-keytab HTTP/client-frontend.example.com --hosts={client1.example.com,client2.example.com} + # ipa server-allow-create-keytab HTTP/client-frontend.example.com --hosts=client1.example.com +.fi + + On client1, generate and retrieve a new keytab for client-frontend.example.com: +.nf + # kinit -k + # ipa-getkeytab -p HTTP/client-frontend.example.com -k /tmp/http.keytab + +.fi + On client2, retrieve the existing keytab for client-frontend.example.com: +.nf + # kinit -k + # ipa-getkeytab -r -p HTTP/client-frontend.example.com -k /tmp/http.keytab +.fi + .SH "EXIT STATUS" The exit status is 0 on success, nonzero on error. diff --git a/configure.ac b/configure.ac index f098eb1da..abef733e3 100644 --- a/configure.ac +++ b/configure.ac @@ -140,30 +140,6 @@ PKG_CHECK_EXISTS(cmocka, ) AM_CONDITIONAL([HAVE_CMOCKA], [test x$have_cmocka = xyes]) -dnl A macro to check presence of a cwrap (http://cwrap.org) wrapper on the system -dnl Usage: -dnl AM_CHECK_WRAPPER(name, conditional) -dnl If the cwrap library is found, sets the HAVE_$name conditional -AC_DEFUN([AM_CHECK_WRAPPER], -[ - FOUND_WRAPPER=0 - - AC_MSG_CHECKING([for $1]) - PKG_CHECK_EXISTS([$1], - [ - AC_MSG_RESULT([yes]) - FOUND_WRAPPER=1 - ], - [ - AC_MSG_RESULT([no]) - AC_MSG_WARN([cwrap library $1 not found, some tests will not run]) - ]) - - AM_CONDITIONAL($2, [ test x$FOUND_WRAPPER = x1]) -]) - -AM_CHECK_WRAPPER(nss_wrapper, HAVE_NSS_WRAPPER) - dnl --------------------------------------------------------------------------- dnl - Check for POPT dnl --------------------------------------------------------------------------- @@ -235,6 +211,7 @@ dnl --------------------------------------------------------------------------- AM_COND_IF([ENABLE_SERVER], [ m4_include(server.m4) ]) +AM_CONDITIONAL([USE_SSS_NSS_TIMEOUT], [test "x$ac_cv_have_decl_sss_nss_getpwnam_timeout" = xyes]) dnl --------------------------------------------------------------------------- dnl - Check if IPA certauth plugin can be build @@ -387,6 +364,7 @@ AC_SUBST([NUM_VERSION], [IPA_NUM_VERSION]) AC_SUBST(VENDOR_SUFFIX) AC_SUBST([VERSION], [IPA_VERSION]) AC_SUBST([GIT_VERSION], [IPA_GIT_VERSION]) +AC_SUBST([GIT_BRANCH], [IPA_GIT_BRANCH]) # used by Makefile.am for files depending on templates AC_SUBST([CONFIG_STATUS]) @@ -520,13 +498,6 @@ AC_SUBST(LDFLAGS) # Files -AC_CONFIG_LINKS([ipaplatform/__init__.py:ipaplatform/$IPAPLATFORM/__init__.py - ipaplatform/constants.py:ipaplatform/$IPAPLATFORM/constants.py - ipaplatform/paths.py:ipaplatform/$IPAPLATFORM/paths.py - ipaplatform/services.py:ipaplatform/$IPAPLATFORM/services.py - ipaplatform/tasks.py:ipaplatform/$IPAPLATFORM/tasks.py - ]) - AC_CONFIG_FILES([ Makefile asn1/Makefile @@ -594,7 +565,6 @@ AC_CONFIG_FILES([ pypi/Makefile pypi/freeipa/Makefile pypi/ipa/Makefile - pypi/ipaplatform/Makefile pypi/ipaserver/Makefile pypi/ipatests/Makefile po/Makefile.in diff --git a/daemons/ipa-kdb/Makefile.am b/daemons/ipa-kdb/Makefile.am index 5669349af..d7696fc37 100644 --- a/daemons/ipa-kdb/Makefile.am +++ b/daemons/ipa-kdb/Makefile.am @@ -62,6 +62,8 @@ ipadb_la_LIBADD = \ $(NULL) if HAVE_CMOCKA +TESTS_ENVIRONMENT = . $(srcdir)/tests/test_setup.sh; +dist_ipa_kdb_tests_SOURCES = tests/test_setup.sh TESTS = ipa_kdb_tests check_PROGRAMS = ipa_kdb_tests endif diff --git a/daemons/ipa-kdb/ipa_kdb_principals.c b/daemons/ipa-kdb/ipa_kdb_principals.c index 82c857430..b27612258 100644 --- a/daemons/ipa-kdb/ipa_kdb_principals.c +++ b/daemons/ipa-kdb/ipa_kdb_principals.c @@ -1259,6 +1259,17 @@ krb5_error_code ipadb_get_principal(krb5_context kcontext, realm, upn->length - (realm - upn->data), &trusted_realm); + if (kerr == KRB5_KDB_NOENTRY) { + /* try to refresh trusted domain data and try again */ + kerr = ipadb_reinit_mspac(ipactx, false); + if (kerr != 0) { + kerr = KRB5_KDB_NOENTRY; + goto done; + } + kerr = ipadb_is_princ_from_trusted_realm(kcontext, realm, + upn->length - (realm - upn->data), + &trusted_realm); + } if (kerr == 0) { kentry = calloc(1, sizeof(krb5_db_entry)); if (!kentry) { diff --git a/daemons/ipa-kdb/tests/test_setup.sh b/daemons/ipa-kdb/tests/test_setup.sh new file mode 100755 index 000000000..b10fefce0 --- /dev/null +++ b/daemons/ipa-kdb/tests/test_setup.sh @@ -0,0 +1,2 @@ +KRB5_CONFIG=/dev/null +export KRB5_CONFIG diff --git a/daemons/ipa-slapi-plugins/ipa-extdom-extop/Makefile.am b/daemons/ipa-slapi-plugins/ipa-extdom-extop/Makefile.am index 1213965c9..cbdd570ea 100644 --- a/daemons/ipa-slapi-plugins/ipa-extdom-extop/Makefile.am +++ b/daemons/ipa-slapi-plugins/ipa-extdom-extop/Makefile.am @@ -25,6 +25,7 @@ libipa_extdom_extop_la_SOURCES = \ ipa_extdom.h \ ipa_extdom_extop.c \ ipa_extdom_common.c \ + back_extdom.h \ $(NULL) libipa_extdom_extop_la_LDFLAGS = -avoid-version @@ -34,20 +35,29 @@ libipa_extdom_extop_la_LIBADD = \ $(SSSNSSIDMAP_LIBS) \ $(NULL) +# We have two backends for nss operations: +# (1) directly loading nss_sss.so.2 +# (2) using timeout-enabled API from libsss_nss_idmap +# We prefer (2) if available +if USE_SSS_NSS_TIMEOUT +libipa_extdom_extop_la_SOURCES += back_extdom_sss_idmap.c +else +libipa_extdom_extop_la_SOURCES += back_extdom_nss_sss.c +endif + + TESTS = check_PROGRAMS = if HAVE_CMOCKA -if HAVE_NSS_WRAPPER -TESTS_ENVIRONMENT = . ./test_data/test_setup.sh; TESTS += extdom_cmocka_tests check_PROGRAMS += extdom_cmocka_tests endif -endif extdom_cmocka_tests_SOURCES = \ ipa_extdom_cmocka_tests.c \ ipa_extdom_common.c \ + back_extdom_nss_sss.c \ $(NULL) extdom_cmocka_tests_CFLAGS = $(CMOCKA_CFLAGS) extdom_cmocka_tests_LDFLAGS = \ @@ -58,6 +68,7 @@ extdom_cmocka_tests_LDADD = \ $(LDAP_LIBS) \ $(DIRSRV_LIBS) \ $(SSSNSSIDMAP_LIBS) \ + -ldl \ $(NULL) diff --git a/daemons/ipa-slapi-plugins/ipa-extdom-extop/back_extdom.h b/daemons/ipa-slapi-plugins/ipa-extdom-extop/back_extdom.h new file mode 100644 index 000000000..d2937c8c8 --- /dev/null +++ b/daemons/ipa-slapi-plugins/ipa-extdom-extop/back_extdom.h @@ -0,0 +1,79 @@ +/* + * Copyright 2017 Red Hat, Inc. + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This Program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this Program; if not, write to the + * + * Free Software Foundation, Inc. + * 59 Temple Place, Suite 330 + * Boston, MA 02111-1307 USA + * + */ + +#ifndef BACK_EXTDOM_H +#define BACK_EXTDOM_H +#include +#include +#include + +/* Possible results of lookup using a nss_* function. + * Note: don't include nss.h as its path gets overriden by NSS library */ +enum nss_status { + NSS_STATUS_TRYAGAIN = -2, + NSS_STATUS_UNAVAIL, + NSS_STATUS_NOTFOUND, + NSS_STATUS_SUCCESS, + NSS_STATUS_RETURN +}; + +/* NSS backend operations implemented using either nss_sss.so.2 or libsss_nss_idmap API */ +struct nss_ops_ctx; + +int back_extdom_init_context(struct nss_ops_ctx **nss_context); +void back_extdom_free_context(struct nss_ops_ctx **nss_context); +void back_extdom_set_timeout(struct nss_ops_ctx *nss_context, + unsigned int timeout); +void back_extdom_evict_user(struct nss_ops_ctx *nss_context, + const char *name); +void back_extdom_evict_group(struct nss_ops_ctx *nss_context, + const char *name); + +enum nss_status back_extdom_getpwnam(struct nss_ops_ctx *nss_context, + const char *name, struct passwd *pwd, + char *buffer, size_t buflen, + struct passwd **result, + int *lerrno); + +enum nss_status back_extdom_getpwuid(struct nss_ops_ctx *nss_context, + uid_t uid, struct passwd *pwd, + char *buffer, size_t buflen, + struct passwd **result, + int *lerrno); + +enum nss_status back_extdom_getgrnam(struct nss_ops_ctx *nss_context, + const char *name, struct group *grp, + char *buffer, size_t buflen, + struct group **result, + int *lerrno); + +enum nss_status back_extdom_getgrgid(struct nss_ops_ctx *nss_context, + gid_t gid, struct group *grp, + char *buffer, size_t buflen, + struct group **result, + int *lerrno); + +enum nss_status back_extdom_getgrouplist(struct nss_ops_ctx *nss_context, + const char *name, gid_t group, + gid_t *groups, int *ngroups, + int *lerrno); + +#endif /* BACK_EXTDOM_H */ diff --git a/daemons/ipa-slapi-plugins/ipa-extdom-extop/back_extdom_nss_sss.c b/daemons/ipa-slapi-plugins/ipa-extdom-extop/back_extdom_nss_sss.c new file mode 100644 index 000000000..346c7d430 --- /dev/null +++ b/daemons/ipa-slapi-plugins/ipa-extdom-extop/back_extdom_nss_sss.c @@ -0,0 +1,276 @@ +/* + * Copyright 2013-2017 Red Hat, Inc. + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This Program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this Program; if not, write to the + * + * Free Software Foundation, Inc. + * 59 Temple Place, Suite 330 + * Boston, MA 02111-1307 USA + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "back_extdom.h" + +struct nss_ops_ctx { + void *dl_handle; + long int initgroups_start; + + enum nss_status (*getpwnam_r)(const char *name, struct passwd *result, + char *buffer, size_t buflen, int *errnop); + enum nss_status (*getpwuid_r)(uid_t uid, struct passwd *result, + char *buffer, size_t buflen, int *errnop); + enum nss_status (*getgrnam_r)(const char *name, struct group *result, + char *buffer, size_t buflen, int *errnop); + enum nss_status (*getgrgid_r)(gid_t gid, struct group *result, + char *buffer, size_t buflen, int *errnop); + enum nss_status (*initgroups_dyn)(const char *user, gid_t group, + long int *start, long int *size, + gid_t **groups, long int limit, + int *errnop); +}; + +void back_extdom_free_context(struct nss_ops_ctx **nss_context) +{ + if ((nss_context == NULL) || (*nss_context == NULL)) { + return; + } + + if ((*nss_context)->dl_handle != NULL) { + dlclose((*nss_context)->dl_handle); + } + + free((*nss_context)); + *nss_context = NULL; +} + +int back_extdom_init_context(struct nss_ops_ctx **nss_context) +{ + struct nss_ops_ctx *ctx = NULL; + + if (nss_context == NULL) { + return EINVAL; + } + + ctx = calloc(1, sizeof(struct nss_ops_ctx)); + if (ctx == NULL) { + return ENOMEM; + } + *nss_context = ctx; + + ctx->dl_handle = dlopen("libnss_sss.so.2", RTLD_NOW); + if (ctx->dl_handle == NULL) { + goto fail; + } + + ctx->getpwnam_r = dlsym(ctx->dl_handle, "_nss_sss_getpwnam_r"); + if (ctx->getpwnam_r == NULL) { + goto fail; + } + + ctx->getpwuid_r = dlsym(ctx->dl_handle, "_nss_sss_getpwuid_r"); + if (ctx->getpwuid_r == NULL) { + goto fail; + } + + ctx->getgrnam_r = dlsym(ctx->dl_handle, "_nss_sss_getgrnam_r"); + if (ctx->getgrnam_r == NULL) { + goto fail; + } + + ctx->getgrgid_r = dlsym(ctx->dl_handle, "_nss_sss_getgrgid_r"); + if (ctx->getgrgid_r == NULL) { + goto fail; + } + + ctx->initgroups_dyn = dlsym(ctx->dl_handle, "_nss_sss_initgroups_dyn"); + if (ctx->initgroups_dyn == NULL) { + goto fail; + } + + return 0; + +fail: + back_extdom_free_context(nss_context); + + return EINVAL; +} + + +/* Following three functions cannot be implemented with nss_sss.so.2 + * As result, we simply do nothing here */ + +void back_extdom_set_timeout(struct nss_ops_ctx *nss_context, + unsigned int timeout) { + /* no operation */ +} + +void back_extdom_evict_user(struct nss_ops_ctx *nss_context, + const char *name) { + /* no operation */ +} + +void back_extdom_evict_group(struct nss_ops_ctx *nss_context, + const char *name) { + /* no operation */ +} + +enum nss_status back_extdom_getpwnam(struct nss_ops_ctx *nss_context, + const char *name, struct passwd *pwd, + char *buffer, size_t buflen, + struct passwd **result, + int *lerrno) { + enum nss_status ret; + + if (nss_context == NULL) { + return NSS_STATUS_UNAVAIL; + } + + ret = nss_context->getpwnam_r(name, pwd, + buffer, buflen, + lerrno); + + if ((ret == NSS_STATUS_SUCCESS) && (result != NULL)) { + *result = pwd; + *lerrno = 0; + } + + return ret; +} + +enum nss_status back_extdom_getpwuid(struct nss_ops_ctx *nss_context, + uid_t uid, struct passwd *pwd, + char *buffer, size_t buflen, + struct passwd **result, + int *lerrno) { + enum nss_status ret; + + if (nss_context == NULL) { + return NSS_STATUS_UNAVAIL; + } + + ret = nss_context->getpwuid_r(uid, pwd, + buffer, buflen, + lerrno); + + if ((ret == NSS_STATUS_SUCCESS) && (result != NULL)) { + *result = pwd; + *lerrno = 0; + } + + return ret; +} + +enum nss_status back_extdom_getgrnam(struct nss_ops_ctx *nss_context, + const char *name, struct group *grp, + char *buffer, size_t buflen, + struct group **result, + int *lerrno) { + enum nss_status ret; + + if (nss_context == NULL) { + return NSS_STATUS_UNAVAIL; + } + + ret = nss_context->getgrnam_r(name, grp, + buffer, buflen, + lerrno); + + if ((ret == NSS_STATUS_SUCCESS) && (result != NULL)) { + *result = grp; + *lerrno = 0; + } + + return ret; +} + +enum nss_status back_extdom_getgrgid(struct nss_ops_ctx *nss_context, + gid_t gid, struct group *grp, + char *buffer, size_t buflen, + struct group **result, + int *lerrno) { + + enum nss_status ret; + + if (nss_context == NULL) { + return NSS_STATUS_UNAVAIL; + } + + ret = nss_context->getgrgid_r(gid, grp, + buffer, buflen, + lerrno); + + if ((ret == NSS_STATUS_SUCCESS) && (result != NULL)) { + *result = grp; + *lerrno = 0; + } + + return ret; +} + +enum nss_status back_extdom_getgrouplist(struct nss_ops_ctx *nss_context, + const char *name, gid_t group, + gid_t *groups, int *ngroups, + int *lerrno) { + + enum nss_status ret = NSS_STATUS_UNAVAIL; + long int tsize = MAX (1, *ngroups); + gid_t *newgroups = NULL; + + if (nss_context == NULL) { + return NSS_STATUS_UNAVAIL; + } + + newgroups = (gid_t *) calloc (tsize, sizeof (gid_t)); + if (newgroups == NULL) { + *lerrno = ENOMEM; + return NSS_STATUS_TRYAGAIN; + } + + newgroups[0] = group; + nss_context->initgroups_start = 1; + + ret = nss_context->initgroups_dyn(name, group, + &nss_context->initgroups_start, + &tsize, &newgroups, + -1, lerrno); + + (void) memcpy(groups, newgroups, + MIN(*ngroups, nss_context->initgroups_start) * sizeof(gid_t)); + free(newgroups); + + if (*ngroups < nss_context->initgroups_start) { + ret = NSS_STATUS_TRYAGAIN; + *lerrno = ERANGE; + } + + *ngroups = (int) nss_context->initgroups_start; + + nss_context->initgroups_start = 0; + + return ret; +} + diff --git a/daemons/ipa-slapi-plugins/ipa-extdom-extop/back_extdom_sss_idmap.c b/daemons/ipa-slapi-plugins/ipa-extdom-extop/back_extdom_sss_idmap.c new file mode 100644 index 000000000..89c58ca2d --- /dev/null +++ b/daemons/ipa-slapi-plugins/ipa-extdom-extop/back_extdom_sss_idmap.c @@ -0,0 +1,260 @@ +/* + * Copyright 2013-2017 Red Hat, Inc. + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This Program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this Program; if not, write to the + * + * Free Software Foundation, Inc. + * 59 Temple Place, Suite 330 + * Boston, MA 02111-1307 USA + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include "back_extdom.h" + +/* SSSD only exposes *_timeout() variants if the following symbol is defined */ +#define IPA_389DS_PLUGIN_HELPER_CALLS +#include + +struct nss_ops_ctx { + unsigned int timeout; +}; + +static enum nss_status __convert_sss_nss2nss_status(int errcode) { + switch(errcode) { + case 0: + return NSS_STATUS_SUCCESS; + case ENOENT: + return NSS_STATUS_NOTFOUND; + case ETIME: + /* fall-through */ + case ERANGE: + return NSS_STATUS_TRYAGAIN; + case ETIMEDOUT: + /* fall-through */ + default: + return NSS_STATUS_UNAVAIL; + } + return NSS_STATUS_UNAVAIL; +} + +int back_extdom_init_context(struct nss_ops_ctx **nss_context) +{ + struct nss_ops_ctx *ctx = NULL; + + if (nss_context == NULL) { + return EINVAL; + } + + ctx = calloc(1, sizeof(struct nss_ops_ctx)); + + if (ctx == NULL) { + return ENOMEM; + } + *nss_context = ctx; + return 0; +} + +void back_extdom_free_context(struct nss_ops_ctx **nss_context) +{ + if ((nss_context == NULL) || (*nss_context == NULL)) { + return; + } + + free((*nss_context)); + *nss_context = NULL; +} + + +void back_extdom_set_timeout(struct nss_ops_ctx *nss_context, + unsigned int timeout) { + if (nss_context == NULL) { + return; + } + + nss_context->timeout = timeout; +} + +void back_extdom_evict_user(struct nss_ops_ctx *nss_context, + const char *name) { + if (nss_context == NULL) { + return; + } + + (void) sss_nss_getpwnam_timeout(name, NULL, + NULL, 0, + NULL, + SSS_NSS_EX_FLAG_INVALIDATE_CACHE, + nss_context->timeout); +} + +void back_extdom_evict_group(struct nss_ops_ctx *nss_context, + const char *name) { + if (nss_context == NULL) { + return; + } + + (void) sss_nss_getgrnam_timeout(name, NULL, + NULL, 0, + NULL, + SSS_NSS_EX_FLAG_INVALIDATE_CACHE, + nss_context->timeout); +} + +enum nss_status back_extdom_getpwnam(struct nss_ops_ctx *nss_context, + const char *name, struct passwd *pwd, + char *buffer, size_t buflen, + struct passwd **result, + int *lerrno) { + int ret = 0; + + if (nss_context == NULL) { + return NSS_STATUS_UNAVAIL; + } + + ret = sss_nss_getpwnam_timeout(name, pwd, + buffer, buflen, + result, + SSS_NSS_EX_FLAG_NO_FLAGS, + nss_context->timeout); + + /* SSSD uses the same infrastructure to handle sss_nss_get* calls + * as nss_sss.so.2 module where 'int *errno' is passed to the helper + * but writes down errno into return code so we propagate it in case + * of error and translate the return code */ + if (lerrno != NULL) { + *lerrno = ret; + } + return __convert_sss_nss2nss_status(ret); +} + +enum nss_status back_extdom_getpwuid(struct nss_ops_ctx *nss_context, + uid_t uid, struct passwd *pwd, + char *buffer, size_t buflen, + struct passwd **result, + int *lerrno) { + + int ret = 0; + + if (nss_context == NULL) { + return NSS_STATUS_UNAVAIL; + } + + ret = sss_nss_getpwuid_timeout(uid, pwd, + buffer, buflen, + result, + SSS_NSS_EX_FLAG_NO_FLAGS, + nss_context->timeout); + + /* SSSD uses the same infrastructure to handle sss_nss_get* calls + * as nss_sss.so.2 module where 'int *errno' is passed to the helper + * but writes down errno into return code so we propagate it in case + * of error and translate the return code */ + if (lerrno != NULL) { + *lerrno = ret; + } + return __convert_sss_nss2nss_status(ret); +} + +enum nss_status back_extdom_getgrnam(struct nss_ops_ctx *nss_context, + const char *name, struct group *grp, + char *buffer, size_t buflen, + struct group **result, + int *lerrno) { + + int ret = 0; + + if (nss_context == NULL) { + return NSS_STATUS_UNAVAIL; + } + + ret = sss_nss_getgrnam_timeout(name, grp, + buffer, buflen, + result, + SSS_NSS_EX_FLAG_NO_FLAGS, + nss_context->timeout); + + /* SSSD uses the same infrastructure to handle sss_nss_get* calls + * as nss_sss.so.2 module where 'int *errno' is passed to the helper + * but writes down errno into return code so we propagate it in case + * of error and translate the return code */ + if (lerrno != NULL) { + *lerrno = ret; + } + return __convert_sss_nss2nss_status(ret); +} + +enum nss_status back_extdom_getgrgid(struct nss_ops_ctx *nss_context, + gid_t gid, struct group *grp, + char *buffer, size_t buflen, + struct group **result, + int *lerrno) { + + int ret = 0; + + if (nss_context == NULL) { + return NSS_STATUS_UNAVAIL; + } + + ret = sss_nss_getgrgid_timeout(gid, grp, + buffer, buflen, + result, + SSS_NSS_EX_FLAG_NO_FLAGS, + nss_context->timeout); + + /* SSSD uses the same infrastructure to handle sss_nss_get* calls + * as nss_sss.so.2 module where 'int *errno' is passed to the helper + * but writes down errno into return code so we propagate it in case + * of error and translate the return code */ + if (lerrno != NULL) { + *lerrno = ret; + } + return __convert_sss_nss2nss_status(ret); +} + +enum nss_status back_extdom_getgrouplist(struct nss_ops_ctx *nss_context, + const char *name, gid_t group, + gid_t *groups, int *ngroups, + int *lerrno) { + int ret = 0; + + if (nss_context == NULL) { + return NSS_STATUS_UNAVAIL; + } + + ret = sss_nss_getgrouplist_timeout(name, group, + groups, ngroups, + SSS_NSS_EX_FLAG_NO_FLAGS, + nss_context->timeout); + + /* SSSD uses the same infrastructure to handle sss_nss_get* calls + * as nss_sss.so.2 module where 'int *errno' is passed to the helper + * but writes down errno into return code so we propagate it in case + * of error and translate the return code */ + if (lerrno != NULL) { + *lerrno = ret; + } + return __convert_sss_nss2nss_status(ret); +} + diff --git a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom.h b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom.h index bc29f0698..bbc574747 100644 --- a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom.h +++ b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom.h @@ -150,10 +150,13 @@ struct extdom_res { } data; }; +struct nss_ops_ctx; + struct ipa_extdom_ctx { Slapi_ComponentId *plugin_id; char *base_dn; size_t max_nss_buf_size; + struct nss_ops_ctx *nss_ctx; }; struct domain_info { @@ -179,15 +182,15 @@ int handle_request(struct ipa_extdom_ctx *ctx, struct extdom_req *req, struct berval **berval); int pack_response(struct extdom_res *res, struct berval **ret_val); int get_buffer(size_t *_buf_len, char **_buf); -int getpwnam_r_wrapper(size_t buf_max, const char *name, +int getpwnam_r_wrapper(struct ipa_extdom_ctx *ctx, const char *name, struct passwd *pwd, char **_buf, size_t *_buf_len); -int getpwuid_r_wrapper(size_t buf_max, uid_t uid, +int getpwuid_r_wrapper(struct ipa_extdom_ctx *ctx, uid_t uid, struct passwd *pwd, char **_buf, size_t *_buf_len); -int getgrnam_r_wrapper(size_t buf_max, const char *name, +int getgrnam_r_wrapper(struct ipa_extdom_ctx *ctx, const char *name, struct group *grp, char **_buf, size_t *_buf_len); -int getgrgid_r_wrapper(size_t buf_max, gid_t gid, +int getgrgid_r_wrapper(struct ipa_extdom_ctx *ctx, gid_t gid, struct group *grp, char **_buf, size_t *_buf_len); -int get_user_grouplist(const char *name, gid_t gid, +int get_user_grouplist(struct ipa_extdom_ctx *ctx, const char *name, gid_t gid, size_t *_ngroups, gid_t **_groups); int pack_ber_sid(const char *sid, struct berval **berval); int pack_ber_name(const char *domain_name, const char *name, diff --git a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_cmocka_tests.c b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_cmocka_tests.c index 526f903d2..29699cfa3 100644 --- a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_cmocka_tests.c +++ b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_cmocka_tests.c @@ -19,6 +19,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ +#define _GNU_SOURCE #include #include @@ -31,24 +32,166 @@ #include "ipa_extdom.h" +#include "back_extdom.h" +#include +#include #define MAX_BUF (1024*1024*1024) +struct test_data { + struct extdom_req *req; + struct ipa_extdom_ctx *ctx; +}; + +/* + * redefine logging for mocks + */ +#ifdef __GNUC__ + __attribute__((format(printf, 3, 4))) +#endif +int slapi_log_error(int loglevel, char *subsystem, char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + vprint_error(fmt, ap); + va_end(ap); + return 0; +} + + +/* + * We cannot run cmocka tests against SSSD as that would require to set up SSSD + * and the rest of environment. Instead, we compile cmocka tests against + * back_extdom_nss_sss.c and re-define context initialization to use + * nsswrapper with our test data. + * + * This means we have to keep struct nss_ops_ctx definition in sync with tests! + */ + +struct nss_ops_ctx { + void *dl_handle; + long int initgroups_start; + + enum nss_status (*getpwnam_r)(const char *name, struct passwd *result, + char *buffer, size_t buflen, int *errnop); + enum nss_status (*getpwuid_r)(uid_t uid, struct passwd *result, + char *buffer, size_t buflen, int *errnop); + enum nss_status (*getgrnam_r)(const char *name, struct group *result, + char *buffer, size_t buflen, int *errnop); + enum nss_status (*getgrgid_r)(gid_t gid, struct group *result, + char *buffer, size_t buflen, int *errnop); + enum nss_status (*initgroups_dyn)(const char *user, gid_t group, + long int *start, long int *size, + gid_t **groups, long int limit, + int *errnop); +}; + +int cmocka_extdom_init_context(struct nss_ops_ctx **nss_context) +{ + struct nss_ops_ctx *ctx = NULL; + + if (nss_context == NULL) { + return -1; + } + + ctx = calloc(1, sizeof(struct nss_ops_ctx)); + + if (ctx == NULL) { + return ENOMEM; + } + *nss_context = ctx; + + ctx->dl_handle = dlopen("libnss_files.so.2", RTLD_NOW); + if (ctx->dl_handle == NULL) { + goto fail; + } + + ctx->getpwnam_r = dlsym(ctx->dl_handle, "_nss_files_getpwnam_r"); + if (ctx->getpwnam_r == NULL) { + goto fail; + } + + ctx->getpwuid_r = dlsym(ctx->dl_handle, "_nss_files_getpwuid_r"); + if (ctx->getpwuid_r == NULL) { + goto fail; + } + + ctx->getgrnam_r = dlsym(ctx->dl_handle, "_nss_files_getgrnam_r"); + if (ctx->getgrnam_r == NULL) { + goto fail; + } + + ctx->getgrgid_r = dlsym(ctx->dl_handle, "_nss_files_getgrgid_r"); + if (ctx->getgrgid_r == NULL) { + goto fail; + } + + ctx->initgroups_dyn = dlsym(ctx->dl_handle, "_nss_files_initgroups_dyn"); + if (ctx->initgroups_dyn == NULL) { + goto fail; + } + + return 0; + +fail: + back_extdom_free_context(nss_context); + + return -1; +} + +struct { + const char *o, *n; +} path_table[] = { + { .o = "/etc/passwd", .n = "./test_data/passwd"}, + { .o = "/etc/group", .n = "./test_data/group"}, + { .o = NULL, .n = NULL}}; + +FILE *(*original_fopen)(const char*, const char*) = NULL; + +FILE *fopen(const char *path, const char *mode) { + const char *_path = NULL; + + /* Do not handle before-main() cases */ + if (original_fopen == NULL) { + return NULL; + } + for(int i=0; path_table[i].o != NULL; i++) { + if (strcmp(path, path_table[i].o) == 0) { + _path = path_table[i].n; + break; + } + } + return (*original_fopen)(_path ? _path : path, mode); +} + +/* Attempt to initialize original_fopen before main() + * There is no explicit order when all initializers are called, + * so we might still be late here compared to a code in a shared + * library initializer, like libselinux */ +void redefined_fopen_ctor (void) __attribute__ ((constructor)); +void redefined_fopen_ctor(void) { + original_fopen = dlsym(RTLD_NEXT, "fopen"); +} void test_getpwnam_r_wrapper(void **state) { int ret; struct passwd pwd; char *buf; - size_t buf_len; + size_t buf_len, max_big_buf_len; + struct test_data *test_data; + + test_data = (struct test_data *) *state; ret = get_buffer(&buf_len, &buf); assert_int_equal(ret, 0); - ret = getpwnam_r_wrapper(MAX_BUF, "non_exisiting_user", &pwd, &buf, - &buf_len); + ret = getpwnam_r_wrapper(test_data->ctx, + "non_exisiting_user", &pwd, + &buf, &buf_len); assert_int_equal(ret, ENOENT); - ret = getpwnam_r_wrapper(MAX_BUF, "user", &pwd, &buf, &buf_len); + ret = getpwnam_r_wrapper(test_data->ctx, + "user", &pwd, &buf, &buf_len); assert_int_equal(ret, 0); assert_string_equal(pwd.pw_name, "user"); assert_string_equal(pwd.pw_passwd, "x"); @@ -62,7 +205,8 @@ void test_getpwnam_r_wrapper(void **state) ret = get_buffer(&buf_len, &buf); assert_int_equal(ret, 0); - ret = getpwnam_r_wrapper(MAX_BUF, "user_big", &pwd, &buf, &buf_len); + ret = getpwnam_r_wrapper(test_data->ctx, + "user_big", &pwd, &buf, &buf_len); assert_int_equal(ret, 0); assert_string_equal(pwd.pw_name, "user_big"); assert_string_equal(pwd.pw_passwd, "x"); @@ -76,7 +220,11 @@ void test_getpwnam_r_wrapper(void **state) ret = get_buffer(&buf_len, &buf); assert_int_equal(ret, 0); - ret = getpwnam_r_wrapper(1024, "user_big", &pwd, &buf, &buf_len); + max_big_buf_len = test_data->ctx->max_nss_buf_size; + test_data->ctx->max_nss_buf_size = 1024; + ret = getpwnam_r_wrapper(test_data->ctx, + "user_big", &pwd, &buf, &buf_len); + test_data->ctx->max_nss_buf_size = max_big_buf_len; assert_int_equal(ret, ERANGE); free(buf); } @@ -86,15 +234,18 @@ void test_getpwuid_r_wrapper(void **state) int ret; struct passwd pwd; char *buf; - size_t buf_len; + size_t buf_len, max_big_buf_len; + struct test_data *test_data; + + test_data = (struct test_data *) *state; ret = get_buffer(&buf_len, &buf); assert_int_equal(ret, 0); - ret = getpwuid_r_wrapper(MAX_BUF, 99999, &pwd, &buf, &buf_len); + ret = getpwuid_r_wrapper(test_data->ctx, 99999, &pwd, &buf, &buf_len); assert_int_equal(ret, ENOENT); - ret = getpwuid_r_wrapper(MAX_BUF, 12345, &pwd, &buf, &buf_len); + ret = getpwuid_r_wrapper(test_data->ctx, 12345, &pwd, &buf, &buf_len); assert_int_equal(ret, 0); assert_string_equal(pwd.pw_name, "user"); assert_string_equal(pwd.pw_passwd, "x"); @@ -108,7 +259,7 @@ void test_getpwuid_r_wrapper(void **state) ret = get_buffer(&buf_len, &buf); assert_int_equal(ret, 0); - ret = getpwuid_r_wrapper(MAX_BUF, 12346, &pwd, &buf, &buf_len); + ret = getpwuid_r_wrapper(test_data->ctx, 12346, &pwd, &buf, &buf_len); assert_int_equal(ret, 0); assert_string_equal(pwd.pw_name, "user_big"); assert_string_equal(pwd.pw_passwd, "x"); @@ -122,7 +273,10 @@ void test_getpwuid_r_wrapper(void **state) ret = get_buffer(&buf_len, &buf); assert_int_equal(ret, 0); - ret = getpwuid_r_wrapper(1024, 12346, &pwd, &buf, &buf_len); + max_big_buf_len = test_data->ctx->max_nss_buf_size; + test_data->ctx->max_nss_buf_size = 1024; + ret = getpwuid_r_wrapper(test_data->ctx, 12346, &pwd, &buf, &buf_len); + test_data->ctx->max_nss_buf_size = max_big_buf_len; assert_int_equal(ret, ERANGE); free(buf); } @@ -132,15 +286,19 @@ void test_getgrnam_r_wrapper(void **state) int ret; struct group grp; char *buf; - size_t buf_len; + size_t buf_len, max_big_buf_len; + struct test_data *test_data; + + test_data = (struct test_data *) *state; ret = get_buffer(&buf_len, &buf); assert_int_equal(ret, 0); - ret = getgrnam_r_wrapper(MAX_BUF, "non_exisiting_group", &grp, &buf, &buf_len); + ret = getgrnam_r_wrapper(test_data->ctx, + "non_exisiting_group", &grp, &buf, &buf_len); assert_int_equal(ret, ENOENT); - ret = getgrnam_r_wrapper(MAX_BUF, "group", &grp, &buf, &buf_len); + ret = getgrnam_r_wrapper(test_data->ctx, "group", &grp, &buf, &buf_len); assert_int_equal(ret, 0); assert_string_equal(grp.gr_name, "group"); assert_string_equal(grp.gr_passwd, "x"); @@ -153,7 +311,7 @@ void test_getgrnam_r_wrapper(void **state) ret = get_buffer(&buf_len, &buf); assert_int_equal(ret, 0); - ret = getgrnam_r_wrapper(MAX_BUF, "group_big", &grp, &buf, &buf_len); + ret = getgrnam_r_wrapper(test_data->ctx, "group_big", &grp, &buf, &buf_len); assert_int_equal(ret, 0); assert_string_equal(grp.gr_name, "group_big"); assert_string_equal(grp.gr_passwd, "x"); @@ -165,7 +323,10 @@ void test_getgrnam_r_wrapper(void **state) ret = get_buffer(&buf_len, &buf); assert_int_equal(ret, 0); - ret = getgrnam_r_wrapper(1024, "group_big", &grp, &buf, &buf_len); + max_big_buf_len = test_data->ctx->max_nss_buf_size; + test_data->ctx->max_nss_buf_size = 1024; + ret = getgrnam_r_wrapper(test_data->ctx, "group_big", &grp, &buf, &buf_len); + test_data->ctx->max_nss_buf_size = max_big_buf_len; assert_int_equal(ret, ERANGE); free(buf); } @@ -175,15 +336,18 @@ void test_getgrgid_r_wrapper(void **state) int ret; struct group grp; char *buf; - size_t buf_len; + size_t buf_len, max_big_buf_len; + struct test_data *test_data; + + test_data = (struct test_data *) *state; ret = get_buffer(&buf_len, &buf); assert_int_equal(ret, 0); - ret = getgrgid_r_wrapper(MAX_BUF, 99999, &grp, &buf, &buf_len); + ret = getgrgid_r_wrapper(test_data->ctx, 99999, &grp, &buf, &buf_len); assert_int_equal(ret, ENOENT); - ret = getgrgid_r_wrapper(MAX_BUF, 11111, &grp, &buf, &buf_len); + ret = getgrgid_r_wrapper(test_data->ctx, 11111, &grp, &buf, &buf_len); assert_int_equal(ret, 0); assert_string_equal(grp.gr_name, "group"); assert_string_equal(grp.gr_passwd, "x"); @@ -196,7 +360,7 @@ void test_getgrgid_r_wrapper(void **state) ret = get_buffer(&buf_len, &buf); assert_int_equal(ret, 0); - ret = getgrgid_r_wrapper(MAX_BUF, 22222, &grp, &buf, &buf_len); + ret = getgrgid_r_wrapper(test_data->ctx, 22222, &grp, &buf, &buf_len); assert_int_equal(ret, 0); assert_string_equal(grp.gr_name, "group_big"); assert_string_equal(grp.gr_passwd, "x"); @@ -208,7 +372,10 @@ void test_getgrgid_r_wrapper(void **state) ret = get_buffer(&buf_len, &buf); assert_int_equal(ret, 0); - ret = getgrgid_r_wrapper(1024, 22222, &grp, &buf, &buf_len); + max_big_buf_len = test_data->ctx->max_nss_buf_size; + test_data->ctx->max_nss_buf_size = 1024; + ret = getgrgid_r_wrapper(test_data->ctx, 22222, &grp, &buf, &buf_len); + test_data->ctx->max_nss_buf_size = max_big_buf_len; assert_int_equal(ret, ERANGE); free(buf); } @@ -219,16 +386,21 @@ void test_get_user_grouplist(void **state) size_t ngroups; gid_t *groups; size_t c; + struct test_data *test_data; + + test_data = (struct test_data *) *state; /* This is a bit odd behaviour of getgrouplist() it does not check if the * user exists, only if memberships of the user can be found. */ - ret = get_user_grouplist("non_exisiting_user", 23456, &ngroups, &groups); + ret = get_user_grouplist(test_data->ctx, + "non_exisiting_user", 23456, &ngroups, &groups); assert_int_equal(ret, LDAP_SUCCESS); assert_int_equal(ngroups, 1); assert_int_equal(groups[0], 23456); free(groups); - ret = get_user_grouplist("member0001", 23456, &ngroups, &groups); + ret = get_user_grouplist(test_data->ctx, + "member0001", 23456, &ngroups, &groups); assert_int_equal(ret, LDAP_SUCCESS); assert_int_equal(ngroups, 3); assert_int_equal(groups[0], 23456); @@ -236,14 +408,16 @@ void test_get_user_grouplist(void **state) assert_int_equal(groups[2], 22222); free(groups); - ret = get_user_grouplist("member0003", 23456, &ngroups, &groups); + ret = get_user_grouplist(test_data->ctx, + "member0003", 23456, &ngroups, &groups); assert_int_equal(ret, LDAP_SUCCESS); assert_int_equal(ngroups, 2); assert_int_equal(groups[0], 23456); assert_int_equal(groups[1], 22222); free(groups); - ret = get_user_grouplist("user_big", 23456, &ngroups, &groups); + ret = get_user_grouplist(test_data->ctx, + "user_big", 23456, &ngroups, &groups); assert_int_equal(ret, LDAP_SUCCESS); assert_int_equal(ngroups, 1001); assert_int_equal(groups[0], 23456); @@ -253,11 +427,6 @@ void test_get_user_grouplist(void **state) free(groups); } -struct test_data { - struct extdom_req *req; - struct ipa_extdom_ctx *ctx; -}; - static int extdom_req_setup(void **state) { struct test_data *test_data; @@ -269,8 +438,14 @@ static int extdom_req_setup(void **state) assert_non_null(test_data->req); test_data->ctx = calloc(sizeof(struct ipa_extdom_ctx), 1); - assert_non_null(test_data->req); + assert_non_null(test_data->ctx); + test_data->ctx->max_nss_buf_size = MAX_BUF; + + assert_int_equal(cmocka_extdom_init_context(&test_data->ctx->nss_ctx), 0); + assert_non_null(test_data->ctx->nss_ctx); + + back_extdom_set_timeout(test_data->ctx->nss_ctx, 10000); *state = test_data; return 0; @@ -283,6 +458,7 @@ static int extdom_req_teardown(void **state) test_data = (struct test_data *) *state; free_req_data(test_data->req); + back_extdom_free_context(&test_data->ctx->nss_ctx); free(test_data->ctx); free(test_data); @@ -450,5 +626,6 @@ int main(int argc, const char *argv[]) cmocka_unit_test(test_decode), }; - return cmocka_run_group_tests(tests, NULL, NULL); + assert_non_null(original_fopen); + return cmocka_run_group_tests(tests, extdom_req_setup, extdom_req_teardown); } diff --git a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_common.c b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_common.c index 750f1ec7d..1b93dce18 100644 --- a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_common.c +++ b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_common.c @@ -43,11 +43,12 @@ #include #include +#include #include "ipa_extdom.h" +#include "back_extdom.h" #include "util.h" -#define MAX(a,b) (((a)>(b))?(a):(b)) #define SSSD_DOMAIN_SEPARATOR '@' int get_buffer(size_t *_buf_len, char **_buf) @@ -97,134 +98,137 @@ static int inc_buffer(size_t buf_max, size_t *_buf_len, char **_buf) return 0; } -int getpwnam_r_wrapper(size_t buf_max, const char *name, - struct passwd *pwd, char **_buf, size_t *_buf_len) +int __nss_to_err(enum nss_status errcode) { - char *buf = NULL; - size_t buf_len = 0; - int ret; + switch(errcode) { + case NSS_STATUS_SUCCESS: + return 0; + case NSS_STATUS_NOTFOUND: + return ENOENT; + case NSS_STATUS_TRYAGAIN: + return ERANGE; + case NSS_STATUS_UNAVAIL: + return ETIMEDOUT; + } + + return -1; +} + +int getpwnam_r_wrapper(struct ipa_extdom_ctx *ctx, const char *name, + struct passwd *pwd, char **buf, size_t *buf_len) +{ + int ret, lerrno = 0; struct passwd *result = NULL; + enum nss_status rc; - buf = *_buf; - buf_len = *_buf_len; - - while (buf != NULL - && (ret = getpwnam_r(name, pwd, buf, buf_len, &result)) == ERANGE) { - ret = inc_buffer(buf_max, &buf_len, &buf); - if (ret != 0) { - if (ret == ERANGE) { - LOG("Buffer too small, increase ipaExtdomMaxNssBufSize.\n"); - } - goto done; + for(rc = NSS_STATUS_TRYAGAIN; rc == NSS_STATUS_TRYAGAIN;) { + rc = back_extdom_getpwnam(ctx->nss_ctx, name, pwd, *buf, *buf_len, &result, &lerrno); + ret = __nss_to_err(rc); + if (ret == ERANGE) { + ret = inc_buffer(ctx->max_nss_buf_size, buf_len, buf); + if (ret != 0) goto done; } } - if (ret == 0 && result == NULL) { - ret = ENOENT; - } - done: - *_buf = buf; - *_buf_len = buf_len; - + switch(ret) { + case 0: + if (result == NULL) ret = ENOENT; + break; + case ERANGE: + LOG("Buffer too small, increase ipaExtdomMaxNssBufSize.\n"); + default: + break; + } return ret; } -int getpwuid_r_wrapper(size_t buf_max, uid_t uid, - struct passwd *pwd, char **_buf, size_t *_buf_len) +int getpwuid_r_wrapper(struct ipa_extdom_ctx *ctx, uid_t uid, + struct passwd *pwd, char **buf, size_t *buf_len) { - char *buf = NULL; - size_t buf_len = 0; - int ret; + int ret, lerrno; struct passwd *result = NULL; + enum nss_status rc; - buf = *_buf; - buf_len = *_buf_len; - - while (buf != NULL - && (ret = getpwuid_r(uid, pwd, buf, buf_len, &result)) == ERANGE) { - ret = inc_buffer(buf_max, &buf_len, &buf); - if (ret != 0) { - if (ret == ERANGE) { - LOG("Buffer too small, increase ipaExtdomMaxNssBufSize.\n"); - } - goto done; + for(rc = NSS_STATUS_TRYAGAIN; rc == NSS_STATUS_TRYAGAIN;) { + rc = back_extdom_getpwuid(ctx->nss_ctx, uid, pwd, *buf, *buf_len, &result, &lerrno); + ret = __nss_to_err(rc); + if (ret == ERANGE) { + ret = inc_buffer(ctx->max_nss_buf_size, buf_len, buf); + if (ret != 0) goto done; } } - if (ret == 0 && result == NULL) { - ret = ENOENT; - } - done: - *_buf = buf; - *_buf_len = buf_len; + switch(ret) { + case 0: + if (result == NULL) ret = ENOENT; + break; + case ERANGE: + LOG("Buffer too small, increase ipaExtdomMaxNssBufSize.\n"); + default: + break; + } return ret; } -int getgrnam_r_wrapper(size_t buf_max, const char *name, - struct group *grp, char **_buf, size_t *_buf_len) +int getgrnam_r_wrapper(struct ipa_extdom_ctx *ctx, const char *name, + struct group *grp, char **buf, size_t *buf_len) { - char *buf = NULL; - size_t buf_len = 0; - int ret; + int ret, lerrno; struct group *result = NULL; + enum nss_status rc; - buf = *_buf; - buf_len = *_buf_len; - - while (buf != NULL - && (ret = getgrnam_r(name, grp, buf, buf_len, &result)) == ERANGE) { - ret = inc_buffer(buf_max, &buf_len, &buf); - if (ret != 0) { - if (ret == ERANGE) { - LOG("Buffer too small, increase ipaExtdomMaxNssBufSize.\n"); - } - goto done; + for(rc = NSS_STATUS_TRYAGAIN; rc == NSS_STATUS_TRYAGAIN;) { + rc = back_extdom_getgrnam(ctx->nss_ctx, name, grp, *buf, *buf_len, &result, &lerrno); + ret = __nss_to_err(rc); + if (ret == ERANGE) { + ret = inc_buffer(ctx->max_nss_buf_size, buf_len, buf); + if (ret != 0) goto done; } } - if (ret == 0 && result == NULL) { - ret = ENOENT; - } - done: - *_buf = buf; - *_buf_len = buf_len; + switch(ret) { + case 0: + if (result == NULL) ret = ENOENT; + break; + case ERANGE: + LOG("Buffer too small, increase ipaExtdomMaxNssBufSize.\n"); + default: + break; + } return ret; } -int getgrgid_r_wrapper(size_t buf_max, gid_t gid, - struct group *grp, char **_buf, size_t *_buf_len) +int getgrgid_r_wrapper(struct ipa_extdom_ctx *ctx, gid_t gid, + struct group *grp, char **buf, size_t *buf_len) { - char *buf = NULL; - size_t buf_len = 0; - int ret; + int ret, lerrno; struct group *result = NULL; + enum nss_status rc; - buf = *_buf; - buf_len = *_buf_len; - - while (buf != NULL - && (ret = getgrgid_r(gid, grp, buf, buf_len, &result)) == ERANGE) { - ret = inc_buffer(buf_max, &buf_len, &buf); - if (ret != 0) { - if (ret == ERANGE) { - LOG("Buffer too small, increase ipaExtdomMaxNssBufSize.\n"); - } - goto done; + for(rc = NSS_STATUS_TRYAGAIN; rc == NSS_STATUS_TRYAGAIN;) { + rc = back_extdom_getgrgid(ctx->nss_ctx, gid, grp, *buf, *buf_len, &result, &lerrno); + ret = __nss_to_err(rc); + if (ret == ERANGE) { + ret = inc_buffer(ctx->max_nss_buf_size, buf_len, buf); + if (ret != 0) goto done; } } - if (ret == 0 && result == NULL) { - ret = ENOENT; - } - done: - *_buf = buf; - *_buf_len = buf_len; + switch(ret) { + case 0: + if (result == NULL) ret = ENOENT; + break; + case ERANGE: + LOG("Buffer too small, increase ipaExtdomMaxNssBufSize.\n"); + default: + break; + } return ret; } @@ -406,13 +410,14 @@ int check_request(struct extdom_req *req, enum extdom_version version) return LDAP_SUCCESS; } -int get_user_grouplist(const char *name, gid_t gid, +int get_user_grouplist(struct ipa_extdom_ctx *ctx, const char *name, gid_t gid, size_t *_ngroups, gid_t **_groups) { - int ret; + int lerrno; int ngroups; gid_t *groups; gid_t *new_groups; + enum nss_status rc; ngroups = 128; groups = malloc(ngroups * sizeof(gid_t)); @@ -420,19 +425,18 @@ int get_user_grouplist(const char *name, gid_t gid, return LDAP_OPERATIONS_ERROR; } - ret = getgrouplist(name, gid, groups, &ngroups); - if (ret == -1) { - new_groups = realloc(groups, ngroups * sizeof(gid_t)); - if (new_groups == NULL) { - free(groups); - return LDAP_OPERATIONS_ERROR; - } - groups = new_groups; - - ret = getgrouplist(name, gid, groups, &ngroups); - if (ret == -1) { - free(groups); - return LDAP_OPERATIONS_ERROR; + for(rc = NSS_STATUS_TRYAGAIN; rc == NSS_STATUS_TRYAGAIN;) { + rc = back_extdom_getgrouplist(ctx->nss_ctx, name, gid, groups, &ngroups, &lerrno); + if (rc == NSS_STATUS_TRYAGAIN) { + new_groups = NULL; + if (lerrno == ERANGE) { + new_groups = realloc(groups, ngroups * sizeof(gid_t)); + } + if ((new_groups == NULL) || (lerrno == ENOMEM)) { + free(groups); + return LDAP_OPERATIONS_ERROR; + } + groups = new_groups; } } @@ -538,7 +542,7 @@ int pack_ber_user(struct ipa_extdom_ctx *ctx, } if (response_type == RESP_USER_GROUPLIST) { - ret = get_user_grouplist(user_name, gid, &ngroups, &groups); + ret = get_user_grouplist(ctx, user_name, gid, &ngroups, &groups); if (ret != LDAP_SUCCESS) { goto done; } @@ -561,7 +565,7 @@ int pack_ber_user(struct ipa_extdom_ctx *ctx, } for (c = 0; c < ngroups; c++) { - ret = getgrgid_r_wrapper(ctx->max_nss_buf_size, + ret = getgrgid_r_wrapper(ctx, groups[c], &grp, &buf, &buf_len); if (ret != 0) { if (ret == ENOMEM || ret == ERANGE) { @@ -841,8 +845,7 @@ static int handle_uid_request(struct ipa_extdom_ctx *ctx, ret = pack_ber_sid(sid_str, berval); } else { - ret = getpwuid_r_wrapper(ctx->max_nss_buf_size, uid, &pwd, &buf, - &buf_len); + ret = getpwuid_r_wrapper(ctx, uid, &pwd, &buf, &buf_len); if (ret != 0) { if (ret == ENOMEM || ret == ERANGE) { ret = LDAP_OPERATIONS_ERROR; @@ -913,8 +916,7 @@ static int handle_gid_request(struct ipa_extdom_ctx *ctx, ret = pack_ber_sid(sid_str, berval); } else { - ret = getgrgid_r_wrapper(ctx->max_nss_buf_size, gid, &grp, &buf, - &buf_len); + ret = getgrgid_r_wrapper(ctx, gid, &grp, &buf, &buf_len); if (ret != 0) { if (ret == ENOMEM || ret == ERANGE) { ret = LDAP_OPERATIONS_ERROR; @@ -1053,8 +1055,7 @@ static int handle_sid_request(struct ipa_extdom_ctx *ctx, switch(id_type) { case SSS_ID_TYPE_UID: case SSS_ID_TYPE_BOTH: - ret = getpwnam_r_wrapper(ctx->max_nss_buf_size, fq_name, &pwd, &buf, - &buf_len); + ret = getpwnam_r_wrapper(ctx, fq_name, &pwd, &buf, &buf_len); if (ret != 0) { if (ret == ENOMEM || ret == ERANGE) { ret = LDAP_OPERATIONS_ERROR; @@ -1086,8 +1087,7 @@ static int handle_sid_request(struct ipa_extdom_ctx *ctx, pwd.pw_shell, kv_list, berval); break; case SSS_ID_TYPE_GID: - ret = getgrnam_r_wrapper(ctx->max_nss_buf_size, fq_name, &grp, &buf, - &buf_len); + ret = getgrnam_r_wrapper(ctx, fq_name, &grp, &buf, &buf_len); if (ret != 0) { if (ret == ENOMEM || ret == ERANGE) { ret = LDAP_OPERATIONS_ERROR; @@ -1181,8 +1181,7 @@ static int handle_name_request(struct ipa_extdom_ctx *ctx, goto done; } - ret = getpwnam_r_wrapper(ctx->max_nss_buf_size, fq_name, &pwd, &buf, - &buf_len); + ret = getpwnam_r_wrapper(ctx, fq_name, &pwd, &buf, &buf_len); if (ret == 0) { if (request_type == REQ_FULL_WITH_GROUPS) { ret = sss_nss_getorigbyname(pwd.pw_name, &kv_list, &id_type); @@ -1211,8 +1210,7 @@ static int handle_name_request(struct ipa_extdom_ctx *ctx, * error codes which can indicate that the user was not found. To * be on the safe side we fail back to the group lookup on all * errors. */ - ret = getgrnam_r_wrapper(ctx->max_nss_buf_size, fq_name, &grp, &buf, - &buf_len); + ret = getgrnam_r_wrapper(ctx, fq_name, &grp, &buf, &buf_len); if (ret != 0) { if (ret == ENOMEM || ret == ERANGE) { ret = LDAP_OPERATIONS_ERROR; diff --git a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_extop.c b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_extop.c index 5bc8c2f57..83c30e7e6 100644 --- a/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_extop.c +++ b/daemons/ipa-slapi-plugins/ipa-extdom-extop/ipa_extdom_extop.c @@ -38,9 +38,11 @@ * END COPYRIGHT BLOCK **/ #include "ipa_extdom.h" +#include "back_extdom.h" #include "util.h" #define DEFAULT_MAX_NSS_BUFFER (128*1024*1024) +#define DEFAULT_MAX_NSS_TIMEOUT (10*1000) Slapi_PluginDesc ipa_extdom_plugin_desc = { IPA_EXTDOM_FEATURE_DESC, @@ -166,6 +168,7 @@ static int ipa_extdom_init_ctx(Slapi_PBlock *pb, struct ipa_extdom_ctx **_ctx) struct ipa_extdom_ctx *ctx; Slapi_Entry *e; int ret; + unsigned int timeout; ctx = calloc(1, sizeof(struct ipa_extdom_ctx)); if (!ctx) { @@ -202,6 +205,20 @@ static int ipa_extdom_init_ctx(Slapi_PBlock *pb, struct ipa_extdom_ctx **_ctx) } LOG("Maximal nss buffer size set to [%zu]!\n", ctx->max_nss_buf_size); + + ret = back_extdom_init_context(&ctx->nss_ctx); + if (ret != 0) { + LOG("Unable to initialize nss interface: returned [%d]!\n", ret); + goto done; + } + + timeout = slapi_entry_attr_get_uint(e, "ipaExtdomMaxNssTimeout"); + if (timeout == 0) { + timeout = DEFAULT_MAX_NSS_TIMEOUT; + } + back_extdom_set_timeout(ctx->nss_ctx, timeout); + LOG("Maximal nss timeout (in ms) set to [%u]!\n", timeout); + ret = 0; done: diff --git a/daemons/ipa-slapi-plugins/ipa-extdom-extop/test_data/test_setup.sh b/daemons/ipa-slapi-plugins/ipa-extdom-extop/test_data/test_setup.sh deleted file mode 100644 index ad839f340..000000000 --- a/daemons/ipa-slapi-plugins/ipa-extdom-extop/test_data/test_setup.sh +++ /dev/null @@ -1,3 +0,0 @@ -export LD_PRELOAD=$(pkg-config --libs nss_wrapper) -export NSS_WRAPPER_PASSWD=./test_data/passwd -export NSS_WRAPPER_GROUP=./test_data/group diff --git a/daemons/ipa-slapi-plugins/ipa-uuid/ipa_uuid.c b/daemons/ipa-slapi-plugins/ipa-uuid/ipa_uuid.c index ffade1467..87d8be2d8 100644 --- a/daemons/ipa-slapi-plugins/ipa-uuid/ipa_uuid.c +++ b/daemons/ipa-slapi-plugins/ipa-uuid/ipa_uuid.c @@ -911,6 +911,7 @@ static int ipauuid_pre_op(Slapi_PBlock *pb, int modtype) list != ipauuid_global_config; list = PR_NEXT_LINK(list)) { cfgentry = (struct configEntry *) list; + char *current_dn = NULL; generate = false; set_attr = false; @@ -920,16 +921,21 @@ static int ipauuid_pre_op(Slapi_PBlock *pb, int modtype) cfgentry->attr)) { continue; } + /* Current DN may have been reset by + * slapi_pblock_set(pb, SLAPI_ADD_TARGET,..) see below + * need to reread it + */ + current_dn = ipauuid_get_dn(pb); /* is the entry in scope? */ if (cfgentry->scope) { - if (!slapi_dn_issuffix(dn, cfgentry->scope)) { + if (!slapi_dn_issuffix(current_dn, cfgentry->scope)) { continue; } } if (cfgentry->exclude_subtree) { - if (slapi_dn_issuffix(dn, cfgentry->exclude_subtree)) { + if (slapi_dn_issuffix(current_dn, cfgentry->exclude_subtree)) { continue; } } @@ -1108,7 +1114,7 @@ static int ipauuid_pre_op(Slapi_PBlock *pb, int modtype) ret = LDAP_OPERATIONS_ERROR; goto done; } - sdn = slapi_sdn_new_dn_byval(dn); + sdn = slapi_sdn_new_dn_byval(current_dn); if (!sdn) { LOG_OOM(); ret = LDAP_OPERATIONS_ERROR; diff --git a/daemons/ipa-slapi-plugins/libotp/Makefile.am b/daemons/ipa-slapi-plugins/libotp/Makefile.am index e7525f307..eb4494d7a 100644 --- a/daemons/ipa-slapi-plugins/libotp/Makefile.am +++ b/daemons/ipa-slapi-plugins/libotp/Makefile.am @@ -15,4 +15,4 @@ libotp_la_LIBADD = libhotp.la check_PROGRAMS = t_hotp TESTS = $(check_PROGRAMS) -t_hotp_LDADD = $(NSPR_LIBS) $(NSS_LIBS) libhotp.la +t_hotp_LDADD = libhotp.la $(NSPR_LIBS) $(NSS_LIBS) diff --git a/freeipa.spec.in b/freeipa.spec.in index d04ff4ec8..520fc351c 100644 --- a/freeipa.spec.in +++ b/freeipa.spec.in @@ -25,6 +25,12 @@ %endif %endif +%if 0%{?with_python3} +%global python %{__python3} +%else +%global python %{__python2} +%endif + # lint is not executed during rpmbuild # %%global with_lint 1 %if 0%{?with_lint} @@ -39,21 +45,24 @@ %global krb5_version 1.15.1-4 # 0.7.16: https://github.com/drkjam/netaddr/issues/71 %global python_netaddr_version 0.7.5-8 -# Require 4.6.0-4 which brings RC4 for FIPS + trust fixes to priv. separation -%global samba_version 4.6.0-4 +# Require 4.7.0 which brings Python 3 bindings +%global samba_version 4.7.0 %global selinux_policy_version 3.12.1-153 %global slapi_nis_version 0.56.0-4 +%global python_ldap_version 2.4.15 %else # 1.15.1-7: certauth (http://krbdev.mit.edu/rt/Ticket/Display.html?id=8561) %global krb5_version 1.15.1-7 # 0.7.16: https://github.com/drkjam/netaddr/issues/71 %global python_netaddr_version 0.7.16 -# Require 4.6.0-4 which brings RC4 for FIPS + trust fixes to priv. separation -%global samba_version 2:4.6.0-4 +# Require 4.7.0 which brings Python 3 bindings +%global samba_version 2:4.7.0 %global selinux_policy_version 3.13.1-158.4 %global slapi_nis_version 0.56.1 +%global python_ldap_version 3.0.0 %endif + %define krb5_base_version %(LC_ALL=C rpm -q --qf '%%{VERSION}' krb5-devel | grep -Eo '^[^.]+\.[^.]+') %global plugin_dir %{_libdir}/dirsrv/plugins @@ -98,8 +107,8 @@ BuildRequires: automake BuildRequires: libtool BuildRequires: gettext BuildRequires: gettext-devel -BuildRequires: python-devel -BuildRequires: python-setuptools +BuildRequires: python2-devel +BuildRequires: python2-setuptools %if 0%{?with_python3} BuildRequires: python3-devel BuildRequires: python3-setuptools @@ -139,12 +148,12 @@ BuildRequires: python-lesscpy # Build dependencies for makeapi/makeaci # makeapi/makeaci is using Python 2 only for now # -BuildRequires: python-ldap -BuildRequires: python-netaddr +BuildRequires: python2-ldap >= %{python_ldap_version} +BuildRequires: python2-netaddr BuildRequires: python2-pyasn1 BuildRequires: python2-pyasn1-modules BuildRequires: python2-dns -BuildRequires: python-six +BuildRequires: python2-six BuildRequires: python2-libsss_nss_idmap BuildRequires: python2-cffi @@ -165,18 +174,20 @@ BuildRequires: python3-wheel %endif # with_wheels # -# Build dependencies for lint +# Build dependencies for lint and fastcheck # %if 0%{?with_lint} -BuildRequires: samba-python +BuildRequires: python2-samba # 1.6: x509.Name.rdns (https://github.com/pyca/cryptography/issues/3199) BuildRequires: python2-cryptography >= 1.6 -BuildRequires: python-gssapi >= 1.2.0-5 +BuildRequires: python2-gssapi >= 1.2.0-5 +BuildRequires: softhsm %if 0%{?fedora} >= 26 BuildRequires: python2-pylint %else -BuildRequires: pylint >= 1.6 +BuildRequires: pylint >= 1.7 %endif +BuildRequires: python2-pycodestyle # workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1096506 BuildRequires: python2-polib BuildRequires: python2-libipa_hbac @@ -188,33 +199,33 @@ BuildRequires: python2-dns >= 1.15 BuildRequires: jsl BuildRequires: python2-yubico # pki Python package -BuildRequires: pki-base-python2 -BuildRequires: python-pytest-multihost -BuildRequires: python-pytest-sourceorder +BuildRequires: pki-base-python2 >= 10.5.1-2 +BuildRequires: python2-pytest-multihost +BuildRequires: python2-pytest-sourceorder # 0.4.2: Py3 fix https://bugzilla.redhat.com/show_bug.cgi?id=1476150 -BuildRequires: python-jwcrypto >= 0.4.2 +BuildRequires: python2-jwcrypto >= 0.4.2 # 0.3: sd_notify (https://pagure.io/freeipa/issue/5825) BuildRequires: python2-custodia >= 0.3.1 -BuildRequires: dbus-python +BuildRequires: python2-dbus BuildRequires: python2-dateutil -BuildRequires: python-enum34 -BuildRequires: python-netifaces +BuildRequires: python2-enum34 +BuildRequires: python2-netifaces BuildRequires: python2-sss BuildRequires: python2-sss-murmur BuildRequires: python2-sssdconfig BuildRequires: python2-nose BuildRequires: python2-paste -BuildRequires: systemd-python +BuildRequires: python2-systemd BuildRequires: python2-jinja2 BuildRequires: python2-augeas %if 0%{?with_python3} -# FIXME: this depedency is missing - server will not work -#BuildRequires: python3-samba +BuildRequires: python3-samba # 1.6: x509.Name.rdns (https://github.com/pyca/cryptography/issues/3199) BuildRequires: python3-cryptography >= 1.6 BuildRequires: python3-gssapi >= 1.2.0 -BuildRequires: python3-pylint >= 1.6 +BuildRequires: python3-pylint >= 1.7 +BuildRequires: python3-pycodestyle # workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1096506 BuildRequires: python3-polib BuildRequires: python3-libipa_hbac @@ -226,7 +237,7 @@ BuildRequires: python3-qrcode-core >= 5.0.0 BuildRequires: python3-dns >= 1.15 BuildRequires: python3-yubico # pki Python package -BuildRequires: pki-base-python3 +BuildRequires: pki-base-python3 >= 10.5.1-2 BuildRequires: python3-pytest-multihost BuildRequires: python3-pytest-sourceorder # 0.4.2: Py3 fix https://bugzilla.redhat.com/show_bug.cgi?id=1476150 @@ -249,7 +260,7 @@ BuildRequires: python3-augeas BuildRequires: python3-netaddr BuildRequires: python3-pyasn1 BuildRequires: python3-pyasn1-modules -BuildRequires: python3-pyldap +BuildRequires: python3-ldap >= %{python_ldap_version} %endif # with_python3 %endif # with_lint @@ -258,7 +269,6 @@ BuildRequires: python3-pyldap # %if ! %{ONLY_CLIENT} BuildRequires: libcmocka-devel -BuildRequires: nss_wrapper # Required by ipa_kdb_tests BuildRequires: %{_libdir}/krb5/plugins/kdb/db2.so %endif # ONLY_CLIENT @@ -281,10 +291,13 @@ Requires: %{name}-client = %{version}-%{release} Requires: %{name}-common = %{version}-%{release} %if 0%{?with_python3} Requires: python3-ipaserver = %{version}-%{release} +Requires: python3-ldap >= %{python_ldap_version} %else Requires: python2-ipaserver = %{version}-%{release} +Requires: python2-ldap >= %{python_ldap_version} %endif -Requires: 389-ds-base >= 1.3.5.14 +# 1.3.7.6-1: https://bugzilla.redhat.com/show_bug.cgi?id=1488295 +Requires: 389-ds-base >= 1.3.7.6-1 Requires: openldap-clients > 2.4.35-4 Requires: nss >= 3.14.3-12.0 Requires: nss-tools >= 3.14.3-12.0 @@ -295,9 +308,19 @@ Requires: cyrus-sasl-gssapi%{?_isa} Requires: ntp Requires: httpd >= 2.4.6-31 %if 0%{with_python3} +Requires(preun): python3 +Requires(postun): python3 +Requires: python3-gssapi >= 1.2.0-5 +Requires: python3-systemd Requires: python3-mod_wsgi +Conflicts: mod_wsgi %else +Requires(preun): python2 +Requires(postun): python2 +Requires: python2-gssapi >= 1.2.0-5 +Requires: python2-systemd Requires: mod_wsgi +Conflicts: python3-mod_wsgi %endif Requires: mod_auth_gssapi >= 1.5.0 # 1.0.14-3: https://bugzilla.redhat.com/show_bug.cgi?id=1431206 @@ -305,8 +328,6 @@ Requires: mod_nss >= 1.0.14-3 Requires: mod_session # 0.9.9: https://github.com/adelton/mod_lookup_identity/pull/3 Requires: mod_lookup_identity >= 0.9.9 -Requires: python-ldap >= 2.4.15 -Requires: python-gssapi >= 1.2.0-5 Requires: acl Requires: systemd-units >= 38 Requires(pre): shadow-utils @@ -315,21 +336,21 @@ Requires(post): systemd-units Requires: selinux-policy >= %{selinux_policy_version} Requires(post): selinux-policy-base >= %{selinux_policy_version} Requires: slapi-nis >= %{slapi_nis_version} -Requires: pki-ca >= 10.4.0-1 -Requires: pki-kra >= 10.4.0-1 -Requires(preun): python systemd-units -Requires(postun): python systemd-units +# 10.5.1-2 contains Python 3 vault fix +Requires: pki-ca >= 10.5.1-2 +Requires: pki-kra >= 10.5.1-2 +Requires(preun): systemd-units +Requires(postun): systemd-units Requires: policycoreutils >= 2.1.12-5 Requires: tar -# certmonger-0.79.4-2 fixes newlines in PEM files -Requires(pre): certmonger >= 0.79.4-2 -Requires(pre): 389-ds-base >= 1.3.5.14 +Requires(pre): certmonger >= 0.79.5-1 +# 1.3.7.6-1: https://bugzilla.redhat.com/show_bug.cgi?id=1488295 +Requires(pre): 389-ds-base >= 1.3.7.6-1 Requires: fontawesome-fonts Requires: open-sans-fonts Requires: openssl Requires: softhsm >= 2.0.0rc1-1 Requires: p11-kit -Requires: systemd-python Requires: %{etc_systemd_dir} Requires: gzip Requires: oddjob @@ -372,16 +393,16 @@ Requires: %{name}-server-common = %{version}-%{release} Requires: %{name}-common = %{version}-%{release} Requires: python2-ipaclient = %{version}-%{release} Requires: python2-custodia >= 0.3.1 -Requires: python-ldap >= 2.4.15 +Requires: python2-ldap >= %{python_ldap_version} Requires: python2-lxml -Requires: python-gssapi >= 1.2.0-5 +Requires: python2-gssapi >= 1.2.0-5 Requires: python2-sssdconfig -Requires: python2-pyasn1 -Requires: dbus-python +Requires: python2-pyasn1 >= 0.3.2-2 +Requires: python2-dbus Requires: python2-dns >= 1.15 -Requires: python-kdcproxy >= 0.3 +Requires: python2-kdcproxy >= 0.3 Requires: rpm-libs -Requires: pki-base-python2 +Requires: pki-base-python2 >= 10.5.1-2 Requires: python2-augeas %description -n python2-ipaserver @@ -405,17 +426,17 @@ Requires: %{name}-common = %{version}-%{release} Requires: python3-ipaclient = %{version}-%{release} Requires: python3-custodia >= 0.3.1 # we need pre-requires since earlier versions may break upgrade -Requires(pre): python3-pyldap >= 2.4.35.1-2 +Requires(pre): python3-ldap >= %{python_ldap_version} Requires: python3-lxml Requires: python3-gssapi >= 1.2.0 Requires: python3-sssdconfig -Requires: python3-pyasn1 +Requires: python3-pyasn1 >= 0.3.2-2 Requires: python3-dbus Requires: python3-dns >= 1.15 Requires: python3-kdcproxy >= 0.3 Requires: python3-augeas Requires: rpm-libs -Requires: pki-base-python3 +Requires: pki-base-python3 >= 10.5.1-2 %description -n python3-ipaserver IPA is an integrated solution to provide centrally managed Identity (users, @@ -483,18 +504,28 @@ Summary: Virtual package to install packages required for Active Directory trust Group: System Environment/Base Requires: %{name}-server = %{version}-%{release} Requires: %{name}-common = %{version}-%{release} -Requires: samba-python + Requires: samba >= %{samba_version} Requires: samba-winbind Requires: libsss_idmap -Requires: python-libsss_nss_idmap -Requires: python-sss + +%if 0%{?with_python3} +Requires(post): python3 +Requires: python3-samba +Requires: python3-libsss_nss_idmap +Requires: python3-sss +%else +Requires(post): python2 +Requires: python2-samba +Requires: python2-libsss_nss_idmap +Requires: python2-sss +%endif # with_python3 + # We use alternatives to divert winbind_krb5_locator.so plugin to libkrb5 # on the installes where server-trust-ad subpackage is installed because # IPA AD trusts cannot be used at the same time with the locator plugin # since Winbindd will be configured in a different mode Requires(post): %{_sbindir}/update-alternatives -Requires(post): python Requires(postun): %{_sbindir}/update-alternatives Requires(preun): %{_sbindir}/update-alternatives @@ -516,11 +547,14 @@ Group: System Environment/Base Requires: %{name}-client-common = %{version}-%{release} Requires: %{name}-common = %{version}-%{release} %if 0%{?with_python3} +Requires: python3-gssapi >= 1.2.0-5 Requires: python3-ipaclient = %{version}-%{release} +Requires: python3-ldap >= %{python_ldap_version} %else +Requires: python2-gssapi >= 1.2.0-5 Requires: python2-ipaclient = %{version}-%{release} +Requires: python2-ldap >= %{python_ldap_version} %endif -Requires: python-ldap Requires: cyrus-sasl-gssapi%{?_isa} Requires: ntp Requires: krb5-workstation >= %{krb5_version} @@ -531,13 +565,11 @@ Requires: initscripts Requires: libcurl >= 7.21.7-2 Requires: xmlrpc-c >= 1.27.4 Requires: sssd >= 1.14.0 -Requires: python-sssdconfig -# certmonger-0.79.4-2 fixes newlines in PEM files -Requires: certmonger >= 0.79.4-2 +Requires: python2-sssdconfig +Requires: certmonger >= 0.79.5-1 Requires: nss-tools Requires: bind-utils Requires: oddjob-mkhomedir -Requires: python-gssapi >= 1.2.0-5 Requires: libsss_autofs Requires: autofs Requires: libnfsidmap @@ -678,31 +710,31 @@ Provides: python2-ipaplatform = %{version}-%{release} %{?python_provide:%python_provide python2-ipaplatform} %{!?python_provide:Provides: python-ipaplatform = %{version}-%{release}} Requires: %{name}-common = %{version}-%{release} -Requires: python-gssapi >= 1.2.0-5 +Requires: python2-gssapi >= 1.2.0-5 Requires: gnupg Requires: keyutils Requires: pyOpenSSL -Requires: python >= 2.7.9 +Requires: python2 >= 2.7.9 Requires: python2-cryptography >= 1.6 -Requires: python-netaddr >= %{python_netaddr_version} +Requires: python2-netaddr >= %{python_netaddr_version} Requires: python2-libipa_hbac Requires: python-qrcode-core >= 5.0.0 -Requires: python2-pyasn1 -Requires: python2-pyasn1-modules +Requires: python2-pyasn1 >= 0.3.2-2 +Requires: python2-pyasn1-modules >= 0.3.2-2 Requires: python2-dateutil Requires: python2-yubico >= 1.2.3 Requires: python2-sss-murmur -Requires: dbus-python +Requires: python2-dbus Requires: python2-setuptools -Requires: python-six +Requires: python2-six # 0.4.2: Py3 fix https://bugzilla.redhat.com/show_bug.cgi?id=1476150 -Requires: python-jwcrypto >= 0.4.2 +Requires: python2-jwcrypto >= 0.4.2 Requires: python2-cffi -Requires: python-ldap >= 2.4.15 +Requires: python2-ldap >= %{python_ldap_version} Requires: python2-requests Requires: python2-dns >= 1.15 -Requires: python-enum34 -Requires: python-netifaces >= 0.10.4 +Requires: python2-enum34 +Requires: python2-netifaces >= 0.10.4 Requires: pyusb Conflicts: %{alt_name}-python < %{version} @@ -736,8 +768,8 @@ Requires: python3-cryptography >= 1.6 Requires: python3-netaddr >= %{python_netaddr_version} Requires: python3-libipa_hbac Requires: python3-qrcode-core >= 5.0.0 -Requires: python3-pyasn1 -Requires: python3-pyasn1-modules +Requires: python3-pyasn1 >= 0.3.2-2 +Requires: python3-pyasn1-modules >= 0.3.2-2 Requires: python3-dateutil # fixes searching for yubikeys in python3 Requires: python3-yubico >= 1.3.2-7 @@ -749,7 +781,7 @@ Requires: python3-six Requires: python3-jwcrypto >= 0.4.2 Requires: python3-cffi # we need pre-requires since earlier versions may break upgrade -Requires(pre): python3-pyldap >= 2.4.35.1-2 +Requires(pre): python3-ldap >= %{python_ldap_version} Requires: python3-requests Requires: python3-dns >= 1.15 Requires: python3-netifaces >= 0.10.4 @@ -806,8 +838,8 @@ Requires: python2-paste Requires: python2-coverage # workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1096506 Requires: python2-polib -Requires: python-pytest-multihost >= 0.5 -Requires: python-pytest-sourceorder +Requires: python2-pytest-multihost >= 0.5 +Requires: python2-pytest-sourceorder Requires: ldns-utils Requires: python2-sssdconfig Requires: python2-cryptography >= 1.6 @@ -911,6 +943,7 @@ install/tools/ipa-cacert-manage install/tools/ipa-compat-manage install/tools/ipa-csreplica-manage install/tools/ipa-custodia +install/tools/ipa-custodia-check install/tools/ipa-dns-install install/tools/ipa-httpd-kdcproxy install/tools/ipa-kra-install @@ -1019,10 +1052,21 @@ mv %{buildroot}%{_bindir}/ipa-test-task %{buildroot}%{_bindir}/ipa-test-task-%{p ln -s %{_bindir}/ipa-run-tests-%{python2_version} %{buildroot}%{_bindir}/ipa-run-tests-2 ln -s %{_bindir}/ipa-test-config-%{python2_version} %{buildroot}%{_bindir}/ipa-test-config-2 ln -s %{_bindir}/ipa-test-task-%{python2_version} %{buildroot}%{_bindir}/ipa-test-task-2 -# test framework defaults to Python 2 +%endif # with_ipatests + +# Decide which Python (2 or 3) should be used as default for tests +%if 0%{?with_ipatests} +%if 0%{?with_python3} +# Building with python3 => make it default for tests +ln -s %{_bindir}/ipa-run-tests-%{python3_version} %{buildroot}%{_bindir}/ipa-run-tests +ln -s %{_bindir}/ipa-test-config-%{python3_version} %{buildroot}%{_bindir}/ipa-test-config +ln -s %{_bindir}/ipa-test-task-%{python3_version} %{buildroot}%{_bindir}/ipa-test-task +%else +# Building python2 only => make it default for tests ln -s %{_bindir}/ipa-run-tests-%{python2_version} %{buildroot}%{_bindir}/ipa-run-tests ln -s %{_bindir}/ipa-test-config-%{python2_version} %{buildroot}%{_bindir}/ipa-test-config ln -s %{_bindir}/ipa-test-task-%{python2_version} %{buildroot}%{_bindir}/ipa-test-task +%endif # with_python3 %endif # with_ipatests # remove files which are useful only for make uninstall @@ -1059,9 +1103,7 @@ mkdir -p %{buildroot}%{_sysconfdir}/httpd/conf.d/ /bin/touch %{buildroot}%{_sysconfdir}/httpd/conf.d/ipa-pki-proxy.conf /bin/touch %{buildroot}%{_sysconfdir}/httpd/conf.d/ipa-rewrite.conf /bin/touch %{buildroot}%{_usr}/share/ipa/html/ca.crt -/bin/touch %{buildroot}%{_usr}/share/ipa/html/kerberosauth.xpi /bin/touch %{buildroot}%{_usr}/share/ipa/html/krb.con -/bin/touch %{buildroot}%{_usr}/share/ipa/html/krb.js /bin/touch %{buildroot}%{_usr}/share/ipa/html/krb5.ini /bin/touch %{buildroot}%{_usr}/share/ipa/html/krbrealm.con @@ -1098,24 +1140,21 @@ fi %posttrans server # don't execute upgrade and restart of IPA when server is not installed -python2 -c "import sys; from ipaserver.install import installutils; sys.exit(0 if installutils.is_ipa_configured() else 1);" > /dev/null 2>&1 +%{python} -c "import sys; from ipaserver.install import installutils; sys.exit(0 if installutils.is_ipa_configured() else 1);" > /dev/null 2>&1 if [ $? -eq 0 ]; then # This is necessary for Fedora system upgrades which by default # work with the network being offline /bin/systemctl start network-online.target - # This must be run in posttrans so that updates from previous - # execution that may no longer be shipped are not applied. - /usr/sbin/ipa-server-upgrade --quiet >/dev/null || : - # Restart IPA processes. This must be also run in postrans so that plugins - # and software is in consistent state + # and software is in consistent state. This will also perform the + # system upgrade. # NOTE: systemd specific section /bin/systemctl is-enabled ipa.service >/dev/null 2>&1 if [ $? -eq 0 ]; then - /bin/systemctl restart ipa.service >/dev/null 2>&1 || : + /bin/systemctl restart ipa.service >/dev/null fi fi # END @@ -1167,7 +1206,7 @@ fi %posttrans server-trust-ad -python2 -c "import sys; from ipaserver.install import installutils; sys.exit(0 if installutils.is_ipa_configured() else 1);" > /dev/null 2>&1 +%{python} -c "import sys; from ipaserver.install import installutils; sys.exit(0 if installutils.is_ipa_configured() else 1);" > /dev/null 2>&1 if [ $? -eq 0 ]; then # NOTE: systemd specific section /bin/systemctl try-restart httpd.service >/dev/null 2>&1 || : @@ -1218,7 +1257,7 @@ if [ $1 -gt 1 ] ; then fi if [ $restore -ge 2 ]; then - python2 -c 'from ipaclient.install.client import update_ipa_nssdb; update_ipa_nssdb()' >/var/log/ipaupgrade.log 2>&1 + %{python} -c 'from ipaclient.install.client import update_ipa_nssdb; update_ipa_nssdb()' >/var/log/ipaupgrade.log 2>&1 fi fi @@ -1291,6 +1330,7 @@ fi %{_libexecdir}/certmonger/ipa-server-guard %dir %{_libexecdir}/ipa %{_libexecdir}/ipa/ipa-custodia +%{_libexecdir}/ipa/ipa-custodia-check %{_libexecdir}/ipa/ipa-dnskeysyncd %{_libexecdir}/ipa/ipa-dnskeysync-replica %{_libexecdir}/ipa/ipa-ods-exporter @@ -1399,10 +1439,7 @@ fi %{_usr}/share/ipa/profiles/README %{_usr}/share/ipa/profiles/*.cfg %dir %{_usr}/share/ipa/html -%{_usr}/share/ipa/html/ffconfig.js -%{_usr}/share/ipa/html/ffconfig_page.js %{_usr}/share/ipa/html/ssbrowser.html -%{_usr}/share/ipa/html/browserconfig.html %{_usr}/share/ipa/html/unauthorized.html %dir %{_usr}/share/ipa/migration %{_usr}/share/ipa/migration/error.html @@ -1434,11 +1471,8 @@ fi %{_usr}/share/ipa/wsgi/plugins.py* %dir %{_sysconfdir}/ipa %dir %{_sysconfdir}/ipa/html -%config(noreplace) %{_sysconfdir}/ipa/html/ffconfig.js -%config(noreplace) %{_sysconfdir}/ipa/html/ffconfig_page.js %config(noreplace) %{_sysconfdir}/ipa/html/ssbrowser.html %config(noreplace) %{_sysconfdir}/ipa/html/unauthorized.html -%config(noreplace) %{_sysconfdir}/ipa/html/browserconfig.html %ghost %attr(0644,root,apache) %config(noreplace) %{_sysconfdir}/httpd/conf.d/ipa-rewrite.conf %ghost %attr(0644,root,apache) %config(noreplace) %{_sysconfdir}/httpd/conf.d/ipa.conf %ghost %attr(0644,root,apache) %config(noreplace) %{_sysconfdir}/httpd/conf.d/ipa-kdc-proxy.conf @@ -1449,9 +1483,7 @@ fi %{_usr}/share/ipa/ipa-rewrite.conf %{_usr}/share/ipa/ipa-pki-proxy.conf %ghost %attr(0644,root,apache) %config(noreplace) %{_usr}/share/ipa/html/ca.crt -%ghost %attr(0644,root,apache) %{_usr}/share/ipa/html/kerberosauth.xpi %ghost %attr(0644,root,apache) %{_usr}/share/ipa/html/krb.con -%ghost %attr(0644,root,apache) %{_usr}/share/ipa/html/krb.js %ghost %attr(0644,root,apache) %{_usr}/share/ipa/html/krb5.ini %ghost %attr(0644,root,apache) %{_usr}/share/ipa/html/krbrealm.con %dir %{_usr}/share/ipa/updates/ @@ -1459,7 +1491,7 @@ fi %dir %{_localstatedir}/lib/ipa %attr(700,root,root) %dir %{_localstatedir}/lib/ipa/backup %attr(700,root,root) %dir %{_localstatedir}/lib/ipa/gssproxy -%attr(700,root,root) %dir %{_localstatedir}/lib/ipa/sysrestore +%attr(711,root,root) %dir %{_localstatedir}/lib/ipa/sysrestore %attr(700,root,root) %dir %{_localstatedir}/lib/ipa/sysupgrade %attr(755,root,root) %dir %{_localstatedir}/lib/ipa/pki-ca %ghost %{_localstatedir}/lib/ipa/pki-ca/publish @@ -1614,6 +1646,7 @@ fi %{python_sitelib}/ipapython-*.egg-info %{python_sitelib}/ipalib-*.egg-info %{python_sitelib}/ipaplatform-*.egg-info +%{python_sitelib}/ipaplatform-*-nspkg.pth %files common -f %{gettext_domain}.lang @@ -1635,6 +1668,7 @@ fi %{python3_sitelib}/ipapython-*.egg-info %{python3_sitelib}/ipalib-*.egg-info %{python3_sitelib}/ipaplatform-*.egg-info +%{python3_sitelib}/ipaplatform-*-nspkg.pth %endif # with_python3 diff --git a/ignore_import_errors.py b/ignore_import_errors.py deleted file mode 100644 index 4ee6ee98b..000000000 --- a/ignore_import_errors.py +++ /dev/null @@ -1,87 +0,0 @@ -# -# Copyright (C) 2016 FreeIPA Contributors see COPYING for license -# - -""" -ImportError ignoring import hook. -""" - -from __future__ import print_function - -import imp -import inspect -import os.path -import sys - -DIRNAME = os.path.dirname(os.path.abspath(__file__)) - - -class FailedImport(object): - def __init__(self, loader, name): - self.__file__ = __file__ - self.__name__ = name - self.__path__ = [] - self.__loader__ = loader - self.__package__ = name - - def __repr__(self): - return ''.format(self.__name__) - - -class IgnoringImporter(object): - def find_module(self, fullname, path=None): - parentname, dot, name = fullname.rpartition('.') - assert (not dot and path is None) or (dot and path is not None) - - # check if the module can be found - try: - file, _filename, _description = imp.find_module(name, path) - except ImportError: - pass - else: - if file is not None: - file.close() - # it can be found, do normal import - return None - - # check if the parent module import failed - if dot and isinstance(sys.modules[parentname], FailedImport): - # it did fail, so this import will fail as well - return self - - # find out from where are we importing - if path is None: - path = sys.path - for pathname in path: - pathname = os.path.abspath(pathname) - if not pathname.startswith(DIRNAME): - break - else: - # importing from our source tree, do normal import - return None - - # find out into what .py file are we importing - frame = inspect.currentframe().f_back - filename = frame.f_code.co_filename - if filename.startswith('<'): - # not a file, do normal import - return None - filename = os.path.abspath(filename) - if not filename.startswith(DIRNAME): - # not a file in our source tree, do normal import - return None - - return self - - def load_module(self, fullname): - frame = inspect.currentframe().f_back - print("{}: {}:{}: ignoring ImportError: No module named {}".format( - sys.argv[0], - os.path.relpath(frame.f_code.co_filename), - frame.f_lineno, - fullname)) - - return sys.modules.setdefault(fullname, FailedImport(self, fullname)) - - -sys.meta_path.insert(0, IgnoringImporter()) diff --git a/install/certmonger/dogtag-ipa-ca-renew-agent-submit b/install/certmonger/dogtag-ipa-ca-renew-agent-submit index 992e05d3c..c33404c18 100755 --- a/install/certmonger/dogtag-ipa-ca-renew-agent-submit +++ b/install/certmonger/dogtag-ipa-ca-renew-agent-submit @@ -438,7 +438,7 @@ def renew_ca_cert(reuse_existing, **kwargs): if operation == 'SUBMIT': state = 'retrieve' - if is_self_signed and not reuse_existing and is_renewal_master(): + if not reuse_existing and is_renewal_master(): state = 'request' csr_file = paths.IPA_CA_CSR diff --git a/install/conf/ipa.conf b/install/conf/ipa.conf index 01bf9a4f9..696e5aab1 100644 --- a/install/conf/ipa.conf +++ b/install/conf/ipa.conf @@ -27,10 +27,6 @@ KeepAliveTimeout 30 # ipa-rewrite.conf is loaded separately -# This is required so the auto-configuration works with Firefox 2+ -AddType application/java-archive jar -AddType application/x-xpinstall xpi - # Proper header for .tff fonts AddType application/x-font-ttf ttf @@ -52,7 +48,8 @@ WSGISocketPrefix /run/httpd/wsgi # Configure mod_wsgi handler for /ipa WSGIDaemonProcess ipa processes=2 threads=1 maximum-requests=500 \ - user=ipaapi group=ipaapi display-name=%{GROUP} socket-timeout=2147483647 + user=ipaapi group=ipaapi display-name=%{GROUP} socket-timeout=2147483647 \ + lang=C.UTF-8 locale=C.UTF-8 WSGIImportScript /usr/share/ipa/wsgi.py process-group=ipa application-group=ipa WSGIScriptAlias /ipa /usr/share/ipa/wsgi.py WSGIScriptReloading Off diff --git a/install/html/Makefile.am b/install/html/Makefile.am index 3b7a0646b..49a12fc17 100644 --- a/install/html/Makefile.am +++ b/install/html/Makefile.am @@ -2,10 +2,7 @@ NULL = appdir = $(IPA_SYSCONF_DIR)/html app_DATA = \ - ffconfig.js \ - ffconfig_page.js \ ssbrowser.html \ - browserconfig.html \ unauthorized.html \ $(NULL) diff --git a/install/html/browserconfig.html b/install/html/browserconfig.html deleted file mode 100644 index f1ab764e7..000000000 --- a/install/html/browserconfig.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - IPA: Identity Policy Audit - - - - - - - - -
-
-
-
-

Firefox configuration

- - - -
-

Step 1

-

- Import Certificate Authority certificate -

-

- Make sure you select all three checkboxes. -

-
- - - - - - - -
-

Step 2

-
    -
  1. - In the address bar of Firefox, type about:config and press enter to display the list of current configuration options. -
  2. -
  3. - In the Filter field, type network.negotiate-auth.trusted-uris to restrict the list of options. -
  4. -
  5. - Double-click the entry to display the "Enter string value" dialog box. -
  6. -
  7. - Enter the name of the domain against which you want to authenticate, .example.com as an example. -
  8. -
-
- -
- -

Step 3

-

Return to Web UI

-
-
- -
-
-
- - - - diff --git a/install/html/ffconfig.js b/install/html/ffconfig.js deleted file mode 100644 index ecb1a635f..000000000 --- a/install/html/ffconfig.js +++ /dev/null @@ -1,146 +0,0 @@ -/* Authors: - * Petr Vobornik - * - * Copyright (C) 2012 Red Hat - * see file 'COPYING' for use and warranty information - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -var IPA = IPA || {}; - -IPA.browser_config = { - - configure_firefox: function(domain) { - - var self = this; - - domain = domain || self.get_domain(); - - self.send_message({ - method: 'configure', - predefined: 'ipa', - trusted_uris: domain - }); - }, - - - get_configure_result: function() { - - var self = this; - - var el = self.get_data_element(); - - var answer = el.getAttribute('answer'); - - return answer; - }, - - get_domain: function() { - return "."+IPA_DOMAIN; - }, - - send_message: function(options) { - - options = options || {}; - - var self = this; - - self.clear_data_element(); - var opt_element = self.get_data_element(); - - for (var opt in options) { - opt_element.setAttribute(opt, options[opt]); - } - - var msg_evt = document.createEvent('HTMLEvents'); - msg_evt.initEvent('kerberos-auth-config', true, false); - opt_element.dispatchEvent(msg_evt); - }, - - get_data_element: function() { - - var els = document.getElementsByTagName('kerberosauthdataelement'); - var element; - - if (els.length === 0) { - element = document.createElement('kerberosauthdataelement'); - document.documentElement.appendChild(element); - } else { - element = els[0]; - } - - return element; - }, - - clear_data_element: function() { - - var self = this; - - var el = self.get_data_element(); - var to_remove = []; - - for (var i=0; i - * - * Copyright (C) 2012 Red Hat - * see file 'COPYING' for use and warranty information - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - $(document).ready(function() { - - var set_enabled = function(steps, enabled) { - - for (var i=0; i 15 < 40 - // show krb extension method - $('#step2').show(); - $('#step3').show(); - $('#step4header').show(); - $('#step3bheader').hide(); - $('#step2b').hide(); - } - // else - // Firefox since version 40 has new extension signing policy - // this policy prevents to use self-signed FF extension and - // thus a manual config is needed - which is the default (step2b) - - // else if (compare_version(version, '15') === -1) { -// $('#step2a').show(); -// $('#older-compatible').show(); -// $('#older-required').hide(); -// } - } - }; - - var compare_version = function(a, b) { - - var only_digits =/[^\d.]/g; - - var a_parts = a.replace(only_digits, '').split('.'); - var b_parts = b.replace(only_digits, '').split('.'); - - for (var i=0; i b_num) return 1; - else if (a_num < b_num) return -1; - } - - if (a_parts.length !== b_parts.length) { - return a_parts.length > b_parts.length ? 1 : -1; - } - - return 0; - }; - - var button_handler = function(handler) { - return function(e) { - if ($(this).hasClass('disabled')) { - e.preventDefault(); - return false; - } - return handler.call(this, e); - }; - }; - - $('#install-link').click(button_handler(install)); - $('#reinstall-link').click(button_handler(install)); - $('#configure-link').click(button_handler(configure)); - - check_version(); - show_installed(IPA.browser_config.extension_installed()); -}); \ No newline at end of file diff --git a/install/html/jsl.conf b/install/html/jsl.conf index b9a8a9780..ad52043d7 100644 --- a/install/html/jsl.conf +++ b/install/html/jsl.conf @@ -127,5 +127,3 @@ # To add a set of files, use "+process FileName", "+process Folder\Path\*.js", # or "+process Folder\Path\*.htm". # -+process ffconfig.js -+process ffconfig_page.js \ No newline at end of file diff --git a/install/html/ssbrowser.html b/install/html/ssbrowser.html index 49d8c5be1..5ab871d8e 100644 --- a/install/html/ssbrowser.html +++ b/install/html/ssbrowser.html @@ -6,23 +6,14 @@ @@ -51,7 +42,12 @@
  1. - Import CA certificate. Make sure you checked all three checkboxes. +

    + Import Certificate Authority certificate +

    +

    + Make sure you select all three checkboxes. +

  2. In the address bar of Firefox, type about:config to display the list of current configuration options. @@ -65,7 +61,7 @@
  3. Enter the name of the domain against which you want to authenticate, for example, .example.com.
  4. -
  5. You are all set.
  6. +
  7. Return to Web UI

Chrome

diff --git a/install/html/unauthorized.html b/install/html/unauthorized.html index 0b4414f55..8c57ce822 100644 --- a/install/html/unauthorized.html +++ b/install/html/unauthorized.html @@ -36,9 +36,7 @@

- If this is your first time, please configure your browser. - Use Firefox configuration page for Firefox - or manual configuration page for other browsers. + If this is your first time, please configure your browser.

diff --git a/install/restart_scripts/renew_ra_cert b/install/restart_scripts/renew_ra_cert index 486ee7866..e37d7e525 100644 --- a/install/restart_scripts/renew_ra_cert +++ b/install/restart_scripts/renew_ra_cert @@ -27,8 +27,6 @@ import tempfile import shutil import traceback -from cryptography.hazmat.primitives import serialization - from ipalib.install.kinit import kinit_keytab from ipalib import api, x509 from ipaserver.install import certs, cainstance @@ -67,10 +65,8 @@ def _main(): ) sys.exit(1) - dercert = cert.public_bytes(serialization.Encoding.DER) - # Load it into dogtag - cainstance.update_people_entry(dercert) + cainstance.update_people_entry(cert) finally: if api.Backend.ldap2.isconnected(): api.Backend.ldap2.disconnect() diff --git a/install/share/Makefile.am b/install/share/Makefile.am index 41fdae4ac..b1285854e 100644 --- a/install/share/Makefile.am +++ b/install/share/Makefile.am @@ -30,7 +30,6 @@ dist_app_DATA = \ anon-princ-aci.ldif \ bootstrap-template.ldif \ ca-topology.uldif \ - caJarSigningCert.cfg.template \ custodia.conf.template \ default-aci.ldif \ default-hbac.ldif \ @@ -38,6 +37,7 @@ dist_app_DATA = \ default-trust-view.ldif \ delegation.ldif \ replica-acis.ldif \ + replica-prevent-time-skew.ldif \ ds-nfiles.ldif \ dns.ldif \ dnssec.ldif \ @@ -79,7 +79,6 @@ dist_app_DATA = \ sudobind.ldif \ automember.ldif \ replica-automember.ldif \ - replica-s4u2proxy.ldif \ sasl-mapping-fallback.ldif \ schema-update.ldif \ vault.ldif \ diff --git a/install/share/caJarSigningCert.cfg.template b/install/share/caJarSigningCert.cfg.template deleted file mode 100644 index 9f018553a..000000000 --- a/install/share/caJarSigningCert.cfg.template +++ /dev/null @@ -1,88 +0,0 @@ -desc=Jar Signing certificate to auto-configure Firefox -enable=true -enableBy=admin -lastModified=1239836280692 -name=Manual Jar Signing Certificate Enrollment -visible=true -auth.class_id= -auth.instance_id=raCertAuth -input.list=i1,i2 -input.i1.class_id=certReqInputImpl -input.i2.class_id=submitterInfoInputImpl -output.list=o1 -output.o1.class_id=certOutputImpl -policyset.list=caJarSigningSet -policyset.caJarSigningSet.list=1,2,3,6,7,9 -policyset.caJarSigningSet.1.constraint.class_id=subjectNameConstraintImpl -policyset.caJarSigningSet.1.constraint.name=Subject Name Constraint -policyset.caJarSigningSet.1.constraint.params.accept=true -policyset.caJarSigningSet.1.constraint.params.pattern=.* -policyset.caJarSigningSet.1.default.class_id=userSubjectNameDefaultImpl -policyset.caJarSigningSet.1.default.name=Subject Name Default -policyset.caJarSigningSet.1.default.params.name= -policyset.caJarSigningSet.2.constraint.class_id=validityConstraintImpl -policyset.caJarSigningSet.2.constraint.name=Validity Constraint -policyset.caJarSigningSet.2.constraint.params.notAfterCheck=false -policyset.caJarSigningSet.2.constraint.params.notBeforeCheck=false -policyset.caJarSigningSet.2.constraint.params.range=2922 -policyset.caJarSigningSet.2.default.class_id=validityDefaultImpl -policyset.caJarSigningSet.2.default.name=Validity Default -policyset.caJarSigningSet.2.default.params.range=1461 -policyset.caJarSigningSet.2.default.params.startTime=60 -policyset.caJarSigningSet.3.constraint.class_id=keyConstraintImpl -policyset.caJarSigningSet.3.constraint.name=Key Constraint -policyset.caJarSigningSet.3.constraint.params.keyMaxLength=4096 -policyset.caJarSigningSet.3.constraint.params.keyMinLength=1024 -policyset.caJarSigningSet.3.constraint.params.keyType=- -policyset.caJarSigningSet.3.default.class_id=userKeyDefaultImpl -policyset.caJarSigningSet.3.default.name=Key Default -policyset.caJarSigningSet.6.constraint.class_id=keyUsageExtConstraintImpl -policyset.caJarSigningSet.6.constraint.name=Key Usage Extension Constraint -policyset.caJarSigningSet.6.constraint.params.keyUsageCritical=- -policyset.caJarSigningSet.6.constraint.params.keyUsageCrlSign=- -policyset.caJarSigningSet.6.constraint.params.keyUsageDataEncipherment=- -policyset.caJarSigningSet.6.constraint.params.keyUsageDecipherOnly=- -policyset.caJarSigningSet.6.constraint.params.keyUsageDigitalSignature=- -policyset.caJarSigningSet.6.constraint.params.keyUsageEncipherOnly=- -policyset.caJarSigningSet.6.constraint.params.keyUsageKeyAgreement=- -policyset.caJarSigningSet.6.constraint.params.keyUsageKeyCertSign=- -policyset.caJarSigningSet.6.constraint.params.keyUsageKeyEncipherment=- -policyset.caJarSigningSet.6.constraint.params.keyUsageNonRepudiation=- -policyset.caJarSigningSet.6.default.class_id=keyUsageExtDefaultImpl -policyset.caJarSigningSet.6.default.name=Key Usage Default -policyset.caJarSigningSet.6.default.params.keyUsageCritical=true -policyset.caJarSigningSet.6.default.params.keyUsageCrlSign=false -policyset.caJarSigningSet.6.default.params.keyUsageDataEncipherment=false -policyset.caJarSigningSet.6.default.params.keyUsageDecipherOnly=false -policyset.caJarSigningSet.6.default.params.keyUsageDigitalSignature=true -policyset.caJarSigningSet.6.default.params.keyUsageEncipherOnly=false -policyset.caJarSigningSet.6.default.params.keyUsageKeyAgreement=false -policyset.caJarSigningSet.6.default.params.keyUsageKeyCertSign=true -policyset.caJarSigningSet.6.default.params.keyUsageKeyEncipherment=false -policyset.caJarSigningSet.6.default.params.keyUsageNonRepudiation=false -policyset.caJarSigningSet.7.constraint.class_id=nsCertTypeExtConstraintImpl -policyset.caJarSigningSet.7.constraint.name=Netscape Certificate Type Extension Constraint -policyset.caJarSigningSet.7.constraint.params.nsCertCritical=- -policyset.caJarSigningSet.7.constraint.params.nsCertEmail=- -policyset.caJarSigningSet.7.constraint.params.nsCertEmailCA=- -policyset.caJarSigningSet.7.constraint.params.nsCertObjectSigning=- -policyset.caJarSigningSet.7.constraint.params.nsCertObjectSigningCA=- -policyset.caJarSigningSet.7.constraint.params.nsCertSSLCA=- -policyset.caJarSigningSet.7.constraint.params.nsCertSSLClient=- -policyset.caJarSigningSet.7.constraint.params.nsCertSSLServer=- -policyset.caJarSigningSet.7.default.class_id=nsCertTypeExtDefaultImpl -policyset.caJarSigningSet.7.default.name=Netscape Certificate Type Extension Default -policyset.caJarSigningSet.7.default.params.nsCertCritical=false -policyset.caJarSigningSet.7.default.params.nsCertEmail=false -policyset.caJarSigningSet.7.default.params.nsCertEmailCA=false -policyset.caJarSigningSet.7.default.params.nsCertObjectSigning=true -policyset.caJarSigningSet.7.default.params.nsCertObjectSigningCA=false -policyset.caJarSigningSet.7.default.params.nsCertSSLCA=false -policyset.caJarSigningSet.7.default.params.nsCertSSLClient=false -policyset.caJarSigningSet.7.default.params.nsCertSSLServer=false -policyset.caJarSigningSet.9.constraint.class_id=signingAlgConstraintImpl -policyset.caJarSigningSet.9.constraint.name=No Constraint -policyset.caJarSigningSet.9.constraint.params.signingAlgsAllowed=MD5withRSA,MD2withRSA,SHA1withRSA,SHA256withRSA,SHA512withRSA,SHA1withDSA,SHA1withEC -policyset.caJarSigningSet.9.default.class_id=signingAlgDefaultImpl -policyset.caJarSigningSet.9.default.name=Signing Alg -policyset.caJarSigningSet.9.default.params.signingAlg=- diff --git a/install/share/custodia.conf.template b/install/share/custodia.conf.template index 855a1b3ba..ee3c43ca7 100644 --- a/install/share/custodia.conf.template +++ b/install/share/custodia.conf.template @@ -16,7 +16,7 @@ header = GSS_NAME handler = ipaserver.secrets.kem.IPAKEMKeys paths = /keys store = ipa -server_keys = $IPA_CUSTODIA_CONF_DIR/server.keys +server_keys = $IPA_CUSTODIA_KEYS [store:ipa] handler = ipaserver.secrets.store.IPASecStore diff --git a/install/share/indices.ldif b/install/share/indices.ldif index bc5f485db..e91ef01ed 100644 --- a/install/share/indices.ldif +++ b/install/share/indices.ldif @@ -108,6 +108,7 @@ cn: fqdn nsSystemIndex: false nsIndexType: eq nsIndexType: pres +nsIndexType: sub dn: cn=macAddress,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config changetype: add @@ -287,3 +288,48 @@ objectClass: nsIndex nsSystemIndex: false nsIndexType: eq nsIndexType: sub + +dn: cn=description,cn=index,cn=userroot,cn=ldbm database,cn=plugins,cn=config +changetype: add +cn: description +objectClass: top +objectClass: nsindex +nssystemindex: false +nsindextype: eq +nsindextype: sub + +dn: cn=l,cn=index,cn=userroot,cn=ldbm database,cn=plugins,cn=config +changetype: add +cn: l +objectClass: top +objectClass: nsindex +nssystemindex: false +nsindextype: eq +nsindextype: sub + +dn: cn=nsOsVersion,cn=index,cn=userroot,cn=ldbm database,cn=plugins,cn=config +changetype: add +cn: nsOsVersion +objectClass: top +objectClass: nsindex +nssystemindex: false +nsindextype: eq +nsindextype: sub + +dn: cn=nsHardwarePlatform,cn=index,cn=userroot,cn=ldbm database,cn=plugins,cn=config +changetype: add +cn: nsHardwarePlatform +objectClass: top +objectClass: nsindex +nssystemindex: false +nsindextype: eq +nsindextype: sub + +dn: cn=nsHostLocation,cn=index,cn=userroot,cn=ldbm database,cn=plugins,cn=config +changetype: add +cn: nsHostLocation +objectClass: top +objectClass: nsindex +nssystemindex: false +nsindextype: eq +nsindextype: sub diff --git a/install/share/ipa-httpd.conf.template b/install/share/ipa-httpd.conf.template index 39bcfcca7..210d5d388 100644 --- a/install/share/ipa-httpd.conf.template +++ b/install/share/ipa-httpd.conf.template @@ -4,4 +4,5 @@ Environment=KRB5CCNAME=$KRB5CC_HTTPD Environment=GSS_USE_PROXY=yes Environment=KDCPROXY_CONFIG=$KDCPROXY_CONFIG +Environment=LC_ALL=C.UTF-8 ExecStartPre=$IPA_HTTPD_KDCPROXY diff --git a/install/share/replica-prevent-time-skew.ldif b/install/share/replica-prevent-time-skew.ldif new file mode 100644 index 000000000..5d301fedd --- /dev/null +++ b/install/share/replica-prevent-time-skew.ldif @@ -0,0 +1,4 @@ +dn: cn=config +changetype: modify +replace: nsslapd-ignore-time-skew +nsslapd-ignore-time-skew: $SKEWVALUE diff --git a/install/share/replica-s4u2proxy.ldif b/install/share/replica-s4u2proxy.ldif deleted file mode 100644 index c7ced5ee2..000000000 --- a/install/share/replica-s4u2proxy.ldif +++ /dev/null @@ -1,14 +0,0 @@ -dn: cn=ipa-http-delegation,cn=s4u2proxy,cn=etc,$SUFFIX -changetype: modify -add: memberPrincipal -memberPrincipal: HTTP/$FQDN@$REALM - -# ipa-cifs-delegation-targets needs to be an ipaAllowedTarget for HTTP -# delegation but we don't add it here as an LDIF because this entry may -# already exist from another replica, or previous install. If it is missing -# then it will be caught by the update file 61-trusts-s4u2proxy.update - -dn: cn=ipa-ldap-delegation-targets,cn=s4u2proxy,cn=etc,$SUFFIX -changetype: modify -add: memberPrincipal -memberPrincipal: ldap/$FQDN@$REALM diff --git a/install/share/wsgi.py b/install/share/wsgi.py index e263b8117..e5cabc065 100644 --- a/install/share/wsgi.py +++ b/install/share/wsgi.py @@ -25,6 +25,18 @@ WSGI appliction for IPA server. """ import logging import os +import sys + +# Some dependencies like Dogtag's pki.client library and custodia use +# python-requsts to make HTTPS connection. python-requests prefers +# PyOpenSSL over Python's stdlib ssl module. PyOpenSSL is build on top +# of python-cryptography which trigger a execmem SELinux violation +# in the context of Apache HTTPD (httpd_execmem). +# When requests is imported, it always tries to import pyopenssl glue +# code from urllib3's contrib directory. The import of PyOpenSSL is +# enough to trigger the SELinux denial. +# Block any import of PyOpenSSL's SSL module by raising an ImportError +sys.modules['OpenSSL.SSL'] = None from ipaplatform.paths import paths from ipalib import api diff --git a/install/tools/Makefile.am b/install/tools/Makefile.am index 47ecc14d7..6b9a64a3d 100644 --- a/install/tools/Makefile.am +++ b/install/tools/Makefile.am @@ -34,6 +34,7 @@ dist_sbin_SCRIPTS = \ appdir = $(libexecdir)/ipa/ dist_app_SCRIPTS = \ ipa-custodia \ + ipa-custodia-check \ ipa-httpd-kdcproxy \ ipa-pki-retrieve-key \ $(NULL) diff --git a/install/tools/ipa-ca-install b/install/tools/ipa-ca-install index fc485c595..c01e7f71e 100755 --- a/install/tools/ipa-ca-install +++ b/install/tools/ipa-ca-install @@ -27,6 +27,7 @@ import tempfile from ipalib.install.kinit import kinit_keytab from ipapython import ipautil +from ipaclient.install import ipa_certupdate from ipaserver.install import installutils from ipaserver.install.installutils import create_replica_config from ipaserver.install.installutils import check_creds, ReplicaConfig @@ -45,7 +46,7 @@ log_file_name = paths.IPAREPLICA_CA_INSTALL_LOG REPLICA_INFO_TOP_DIR = None def parse_options(): - usage = "%prog [options] REPLICA_FILE" + usage = "%prog [options] [REPLICA_FILE]" parser = IPAOptionParser(usage=usage, version=version.VERSION) parser.add_option("-d", "--debug", dest="debug", action="store_true", default=False, help="gather extra debugging information") @@ -64,11 +65,16 @@ def parse_options(): default=False, help="unattended installation never prompts the user") parser.add_option("--external-ca", dest="external_ca", action="store_true", default=False, help="Generate a CSR to be signed by an external CA") - ext_cas = ("generic", "ms-cs") + ext_cas = tuple(x.value for x in cainstance.ExternalCAType) parser.add_option("--external-ca-type", dest="external_ca_type", type="choice", choices=ext_cas, metavar="{{{0}}}".format(",".join(ext_cas)), help="Type of the external CA. Default: generic") + parser.add_option("--external-ca-profile", dest="external_ca_profile", + type='constructor', constructor=cainstance.ExternalCAProfile, + default=None, metavar="PROFILE-SPEC", + help="Specify the certificate profile/template to use " + "at the external CA") parser.add_option("--external-cert-file", dest="external_cert_files", action="append", metavar="FILE", help="File containing the IPA CA certificate and the external CA certificate chain") @@ -116,6 +122,11 @@ def parse_options(): parser.error( "You cannot specify --external-ca-type without --external-ca") + if options.external_ca_profile and not options.external_ca: + parser.error( + "You cannot specify --external-ca-profile " + "without --external-ca") + return safe_options, options, filename @@ -149,7 +160,7 @@ def install_replica(safe_options, options, filename): else: if filename is None: sys.exit("A replica file is required") - if not ipautil.file_exists(filename): + if not os.path.isfile(filename): sys.exit("Replica file %s does not exist" % filename) if not options.promote: @@ -164,6 +175,16 @@ def install_replica(safe_options, options, filename): not options.skip_conncheck and options.unattended): sys.exit('admin password required') + # Run ipa-certupdate to ensure we have the CA cert. This is + # necessary if the admin has just promoted the topology from + # CA-less to CA-ful, and ipa-certupdate has not been run yet. + ipa_certupdate.run_with_args(api) + + # CertUpdate restarts DS causing broken pipe on the original + # connection, so reconnect the backend. + api.Backend.ldap2.disconnect() + api.Backend.ldap2.connect() + if options.promote: config = ReplicaConfig() config.ca_host_name = None @@ -233,6 +254,10 @@ def install_master(safe_options, options): ca.install_check(True, None, options) ca.install(True, None, options) + # Run ipa-certupdate to add the new CA certificate to + # certificate databases on this server. + logger.info("Updating certificate databases.") + ipa_certupdate.run_with_args(api) def install(safe_options, options, filename): options.promote = False diff --git a/install/tools/ipa-custodia-check b/install/tools/ipa-custodia-check new file mode 100755 index 000000000..4e46b7dc2 --- /dev/null +++ b/install/tools/ipa-custodia-check @@ -0,0 +1,286 @@ +#!/usr/bin/python2 +"""Test client for ipa-custodia + +The test script is expected to be executed on an IPA server with existing +Custodia server keys. +""" +from __future__ import print_function +import argparse +import logging +import os +import platform +import socket +import warnings + +from custodia.message.kem import KEY_USAGE_SIG, KEY_USAGE_ENC, KEY_USAGE_MAP + +from jwcrypto.common import json_decode +from jwcrypto.jwk import JWK + +from ipalib import api +from ipaplatform.paths import paths +import ipapython.version +from ipaserver.install.installutils import is_ipa_configured + +try: + # FreeIPA >= 4.5 + from ipaserver.secrets.client import CustodiaClient +except ImportError: + # FreeIPA <= 4.4 + from ipapython.secrets.client import CustodiaClient + +# Ignore security warning from vendored and non-vendored urllib3 +try: + from urllib3.exceptions import SecurityWarning +except ImportError: + SecurityWarning = None +else: + warnings.simplefilter("ignore", SecurityWarning) + +try: + from requests.packages.urllib3.exceptions import SecurityWarning +except ImportError: + SecurityWarning = None +else: + warnings.simplefilter("ignore", SecurityWarning) + + +KEYS = [ + 'dm/DMHash', + 'ra/ipaCert', + 'ca/auditSigningCert cert-pki-ca', + 'ca/caSigningCert cert-pki-ca', + 'ca/ocspSigningCert cert-pki-ca', + 'ca/subsystemCert cert-pki-ca', +] + +IPA_CUSTODIA_KEYFILE = os.path.join(paths.IPA_CUSTODIA_CONF_DIR, + 'server.keys') + + +logger = logging.getLogger('ipa-custodia-tester') + + +parser = argparse.ArgumentParser( + "IPA Custodia check", +) +# --store is dangerous and therefore hidden! Don't use it unless you really +# know what you are doing! Keep in mind that it might destroy your NSSDB +# unless it uses sqlite format. +parser.add_argument( + "--store", action='store_true', dest='store', + help=argparse.SUPPRESS +) +parser.add_argument( + "--debug", action='store_true', + help="Debug mode" +) +parser.add_argument( + "--verbose", action='store_true', + help='Verbose mode' +) +parser.add_argument( + "server", + help="FQDN of a IPA server (can be own FQDN for self-test)" +) +parser.add_argument( + 'keys', nargs='*', default=KEYS, + help="Remote key ({})".format(', '.join(KEYS)) +) + + +class IPACustodiaTester(object): + files = [ + paths.IPA_DEFAULT_CONF, + paths.KRB5_KEYTAB, + paths.IPA_CUSTODIA_CONF, + IPA_CUSTODIA_KEYFILE + ] + + def __init__(self, parser, args): + self.parser = parser + self.args = args + if not api.isdone('bootstrap'): + # bootstrap to initialize api.env + api.bootstrap() + self.debug("IPA API bootstrapped") + self.realm = api.env.realm + self.host = api.env.host + self.host_spn = 'host/{}@{}'.format(self.host, self.realm) + self.server_spn = 'host/{}@{}'.format(self.args.server, self.realm) + self.client = None + self._errors = [] + + def error(self, msg, fatal=False): + self._errors.append(msg) + logger.error(msg, exc_info=self.args.verbose) + if fatal: + self.exit() + + def exit(self): + if self._errors: + self.parser.exit(1, "[ERROR] One or more tests have failed.\n") + else: + self.parser.exit(0, "All tests have passed successfully.\n") + + def warning(self, msg): + logger.warning(msg) + + def info(self, msg): + logger.info(msg) + + def debug(self, msg): + logger.debug(msg) + + def check(self): + self.status() + self.check_fqdn() + self.check_files() + self.check_client() + self.check_jwk() + self.check_keys() + + def status(self): + self.info("Platform: {}".format(platform.platform())) + self.info("IPA version: {}".format( + ipapython.version.VERSION + )) + self.info("IPA vendor version: {}".format( + ipapython.version.VENDOR_VERSION + )) + self.info("Realm: {}".format(self.realm)) + self.info("Host: {}".format(self.host)) + self.info("Remote server: {}".format(self.args.server)) + if self.host == self.args.server: + self.warning("Performing self-test only.") + + def check_fqdn(self): + fqdn = socket.getfqdn() + if self.host != fqdn: + self.warning( + "socket.getfqdn() reports hostname '{}'".format(fqdn) + ) + + def check_files(self): + for filename in self.files: + if not os.path.isfile(filename): + self.error("File '{0}' is missing.".format(filename)) + else: + self.info("File '{0}' exists.".format(filename)) + + def check_client(self): + try: + self.client = CustodiaClient( + server=self.args.server, + client_service='host@{}'.format(self.host), + keyfile=IPA_CUSTODIA_KEYFILE, + keytab=paths.KRB5_KEYTAB, + realm=self.realm, + ) + except Exception as e: + self.error("Failed to create client: {}".format(e), fatal=True) + else: + self.info("Custodia client created.") + + def _check_jwk_single(self, usage_id): + usage = KEY_USAGE_MAP[usage_id] + with open(IPA_CUSTODIA_KEYFILE) as f: + dictkeys = json_decode(f.read()) + + try: + pkey = JWK(**dictkeys[usage_id]) + local_pubkey = json_decode(pkey.export_public()) + except Exception: + self.error("Failed to load and parse local JWK.", fatal=True) + else: + self.info("Loaded key for usage '{}' from '{}'.".format( + usage, IPA_CUSTODIA_KEYFILE + )) + + if pkey.key_id != self.host_spn: + self.error( + "KID '{}' != host service principal name '{}' " + "(usage: {})".format(pkey.key_id, self.host_spn, usage), + fatal=True + ) + else: + self.info( + "JWK KID matches host's service principal name '{}'.".format( + self.host_spn + )) + + # LDAP doesn't contain KID + local_pubkey.pop("kid", None) + find_key = self.client.ikk.find_key + try: + host_pubkey = json_decode(find_key(self.host_spn, usage_id)) + except Exception: + self.error("Fetching host keys {} (usage: {}) failed.".format( + self.host_spn, usage), fatal=True) + else: + self.info("Checked host LDAP keys '{}' for usage {}.".format( + self.host_spn, usage + )) + + if host_pubkey != local_pubkey: + self.debug("LDAP: '{}'".format(host_pubkey)) + self.debug("Local: '{}'".format(local_pubkey)) + self.error( + "Host key in LDAP does not match local key.", fatal=True) + else: + self.info( + "Local key for usage '{}' matches key in LDAP.".format(usage) + ) + + try: + server_pubkey = json_decode(find_key(self.server_spn, usage_id)) + except Exception: + self.error("Fetching server keys {} (usage: {}) failed.".format( + self.server_spn, usage), fatal=True) + else: + self.info("Checked server LDAP keys '{}' for usage {}.".format( + self.server_spn, usage + )) + + return local_pubkey, host_pubkey, server_pubkey + + def check_jwk(self): + self._check_jwk_single(KEY_USAGE_SIG) + self._check_jwk_single(KEY_USAGE_ENC) + + def check_keys(self): + for key in self.args.keys: + try: + result = self.client.fetch_key(key, store=self.args.store) + except Exception as e: + self.error("Failed to retrieve key '{}': {}.".format( + key, e + )) + else: + self.info("Successfully retrieved '{}'.".format(key)) + if not self.args.store: + self.debug(result) + + +def main(): + args = parser.parse_args() + if args.debug: + args.verbose = True + + logging.basicConfig( + level=logging.DEBUG if args.debug else logging.INFO, + format='[%(asctime)s %(name)s] <%(levelname)s>: %(message)s', + datefmt='%Y-%m-%dT%H:%M:%S', + ) + if not is_ipa_configured(): + parser.error("IPA is not configured on this system.\n") + if os.geteuid() != 0: + parser.error("Script must be executed as root.\n") + + tester = IPACustodiaTester(parser, args) + tester.check() + tester.exit() + + +if __name__ == '__main__': + main() diff --git a/install/tools/ipa-dns-install b/install/tools/ipa-dns-install index 099d16560..a7f136b16 100755 --- a/install/tools/ipa-dns-install +++ b/install/tools/ipa-dns-install @@ -54,7 +54,7 @@ def parse_options(): help="Master Server IP Address. This option can be used " "multiple times") parser.add_option("--forwarder", dest="forwarders", action="append", - type="ip", help="Add a DNS forwarder. This option can be used multiple times") + type="ip_with_loopback", help="Add a DNS forwarder. This option can be used multiple times") parser.add_option("--no-forwarders", dest="no_forwarders", action="store_true", default=False, help="Do not add any DNS forwarders, use root servers instead") parser.add_option("--auto-forwarders", dest="auto_forwarders", @@ -113,7 +113,7 @@ def parse_options(): parser.error("You must specify at least one option: " "--forwarder or --no-forwarders or --auto-forwarders") - if options.kasp_db_file and not ipautil.file_exists(options.kasp_db_file): + if options.kasp_db_file and not os.path.isfile(options.kasp_db_file): parser.error("File %s does not exist" % options.kasp_db_file) if options.dm_password: diff --git a/install/tools/ipa-pki-retrieve-key b/install/tools/ipa-pki-retrieve-key index 505ed238e..5056682c3 100755 --- a/install/tools/ipa-pki-retrieve-key +++ b/install/tools/ipa-pki-retrieve-key @@ -4,29 +4,39 @@ from __future__ import print_function import os import sys +import traceback from ipalib import constants from ipalib.config import Env from ipaplatform.paths import paths from ipaserver.secrets.client import CustodiaClient -env = Env() -env._finalize() -keyname = "ca_wrapped/" + sys.argv[1] -servername = sys.argv[2] +def main(): + env = Env() + env._finalize() -service = constants.PKI_GSSAPI_SERVICE_NAME -client_keyfile = os.path.join(paths.PKI_TOMCAT, service + '.keys') -client_keytab = os.path.join(paths.PKI_TOMCAT, service + '.keytab') + keyname = "ca_wrapped/" + sys.argv[1] + servername = sys.argv[2] -# pylint: disable=no-member -client = CustodiaClient( - client_service='%s@%s' % (service, env.host), server=servername, - realm=env.realm, ldap_uri="ldaps://" + env.host, - keyfile=client_keyfile, keytab=client_keytab, - ) + service = constants.PKI_GSSAPI_SERVICE_NAME + client_keyfile = os.path.join(paths.PKI_TOMCAT, service + '.keys') + client_keytab = os.path.join(paths.PKI_TOMCAT, service + '.keytab') -# Print the response JSON to stdout; it is already in the format -# that Dogtag's ExternalProcessKeyRetriever expects -print(client.fetch_key(keyname, store=False)) + # pylint: disable=no-member + client = CustodiaClient( + client_service='%s@%s' % (service, env.host), server=servername, + realm=env.realm, ldap_uri="ldaps://" + env.host, + keyfile=client_keyfile, keytab=client_keytab, + ) + + # Print the response JSON to stdout; it is already in the format + # that Dogtag's ExternalProcessKeyRetriever expects + print(client.fetch_key(keyname, store=False)) + + +try: + main() +except BaseException: + traceback.print_exc() + sys.exit(1) diff --git a/install/tools/ipa-replica-conncheck b/install/tools/ipa-replica-conncheck index 3db2e02cd..067e47bcb 100755 --- a/install/tools/ipa-replica-conncheck +++ b/install/tools/ipa-replica-conncheck @@ -290,7 +290,7 @@ class PortResponder(threading.Thread): self._sockets = [] self._close = False self._close_lock = threading.Lock() - self.responder_data = 'FreeIPA' + self.responder_data = b'FreeIPA' self.ports_opened = False self.ports_open_cond = threading.Condition() @@ -318,7 +318,7 @@ class PortResponder(threading.Thread): logger.debug('%d %s: Stopped listening', port, proto) def _is_closing(self): - with self._close_lock: + with self._close_lock: # pylint: disable=not-context-manager return self._close def _bind_to_port(self, port, socket_type): @@ -369,7 +369,7 @@ class PortResponder(threading.Thread): def stop(self): logger.debug('Stopping listening thread.') - with self._close_lock: + with self._close_lock: # pylint: disable=not-context-manager self._close = True @@ -530,6 +530,9 @@ def main(): if result.returncode != 0: raise RuntimeError("Could not get ticket for master server: %s" % result.error_output) + # Now that the cred cache file is initialized, + # use it for the IPA API calls + os.environ['KRB5CCNAME'] = CCACHE_FILE try: logger.info("Check RPC connection to remote master") diff --git a/install/tools/ipa-replica-manage b/install/tools/ipa-replica-manage index 102addbdb..4ae8818e7 100755 --- a/install/tools/ipa-replica-manage +++ b/install/tools/ipa-replica-manage @@ -86,6 +86,8 @@ def parse_options(): parser.add_option("-p", "--password", dest="dirman_passwd", help="Directory Manager password") parser.add_option("-v", "--verbose", dest="verbose", action="store_true", default=False, help="provide additional information") + parser.add_option("-d", "--debug", dest="debug", action="store_true", default=False, + help="provide additional debug information") parser.add_option("-f", "--force", dest="force", action="store_true", default=False, help="ignore some types of errors") parser.add_option("-c", "--cleanup", dest="cleanup", action="store_true", default=False, @@ -1235,8 +1237,14 @@ def force_sync(realm, thishost, fromhost, dirman_passwd, nolookup=False): repl = replication.ReplicationManager(realm, thishost, dirman_passwd) repl.force_sync(repl.conn, fromhost) else: + ds = dsinstance.DsInstance(realm_name=realm) + ds.ldapi = os.getegid() == 0 + ds.replica_manage_time_skew(prevent=False) repl = replication.ReplicationManager(realm, fromhost, dirman_passwd) repl.force_sync(repl.conn, thishost) + agreement = repl.get_replication_agreement(thishost) + repl.wait_for_repl_init(repl.conn, agreement.dn) + ds.replica_manage_time_skew(prevent=True) def show_DNA_ranges(hostname, master, realm, dirman_passwd, nextrange=False, nolookup=False): @@ -1503,18 +1511,9 @@ def main(options, args): elif not os.path.exists(paths.IPA_DEFAULT_CONF): sys.exit("IPA is not configured on this system.") - # Just initialize the environment. This is so the installer can have - # access to the plugin environment - api_env = {'in_server' : True, - 'verbose' : options.verbose, - } - - if os.getegid() != 0: - api_env['log'] = None # turn off logging for non-root - api.bootstrap( context='cli', confdir=paths.ETC_IPA, - in_server=True, verbose=options.verbose + in_server=True, verbose=options.verbose, debug=options.debug ) api.finalize() diff --git a/install/tools/ipactl b/install/tools/ipactl index 03f41e567..ade91f7f7 100755 --- a/install/tools/ipactl +++ b/install/tools/ipactl @@ -32,6 +32,7 @@ from ipaserver.install.installutils import is_ipa_configured, ScriptError from ipalib import api, errors from ipapython.ipaldap import LDAPClient from ipapython.ipautil import wait_for_open_ports, wait_for_open_socket +from ipapython.ipautil import run from ipapython import config from ipaplatform.tasks import tasks from ipapython.dn import DN @@ -140,10 +141,22 @@ def version_check(): except (installutils.UpgradeMissingVersionError, installutils.UpgradeDataOlderVersionError) as exc: emit_err("IPA version error: %s" % exc) - emit_err("Upgrade required: please run ipa-server-upgrade command") - raise IpactlError("Aborting ipactl") except installutils.UpgradeVersionError as e: emit_err("IPA version error: %s" % e) + else: + return + + emit_err("Automatically running upgrade, for details see {}".format( + paths.IPAUPGRADE_LOG)) + emit_err("Be patient, this may take a few minutes.") + + # Fork out to call ipa-server-upgrade so that logging is sane. + result = run([paths.IPA_SERVER_UPGRADE], raiseonerr=False, + capture_error=True) + if result.returncode != 0: + emit_err("Automatic upgrade failed: %s" % result.error_output) + emit_err("See the upgrade log for more details and/or run {} again". + format(paths.IPA_SERVER_UPGRADE)) raise IpactlError("Aborting ipactl") @@ -366,7 +379,16 @@ def ipa_stop(options): def ipa_restart(options): if not options.skip_version_check: - version_check() + try: + version_check() + except Exception as e: + try: + ipa_stop(options) + except Exception: + # We don't care about errors that happened while stopping. + # We need to raise the upgrade error. + pass + raise e else: print("Skipping version check") diff --git a/install/tools/man/ipa-ca-install.1 b/install/tools/man/ipa-ca-install.1 index 79703a47c..99ff91878 100644 --- a/install/tools/man/ipa-ca-install.1 +++ b/install/tools/man/ipa-ca-install.1 @@ -48,7 +48,26 @@ Admin user Kerberos password used for connection check Generate a CSR for the IPA CA certificate to be signed by an external CA. .TP \fB\-\-external\-ca\-type\fR=\fITYPE\fR -Type of the external CA. Possible values are "generic", "ms-cs". Default value is "generic". Use "ms-cs" to include template name required by Microsoft Certificate Services (MS CS) in the generated CSR. +Type of the external CA. Possible values are "generic", "ms-cs". Default value is "generic". Use "ms-cs" to include the template name required by Microsoft Certificate Services (MS CS) in the generated CSR (see \fB\-\-external\-ca\-profile\fR for full details). + +.TP +\fB\-\-external\-ca\-profile\fR=\fIPROFILE_SPEC\fR +Specify the certificate profile or template to use at the external CA. + +When \fB\-\-external\-ca\-type\fR is "ms-cs" the following specifiers may be used: + +.RS +.TP +\fB:[:]\fR +Specify a certificate template by OID and major version, optionally also specifying minor version. +.TP +\fB\fR +Specify a certificate template by name. The name cannot contain any \fI:\fR characters and cannot be an OID (otherwise the OID-based template specifier syntax takes precedence). +.TP +\fBdefault\fR +If no template is specified, the template name "SubCA" is used. +.RE + .TP \fB\-\-external\-cert\-file\fR=\fIFILE\fR File containing the IPA CA certificate and the external CA certificate chain. The file is accepted in PEM and DER certificate and PKCS#7 certificate chain formats. This option may be used multiple times. diff --git a/install/tools/man/ipa-cacert-manage.1 b/install/tools/man/ipa-cacert-manage.1 index 03172814f..bacd56b5a 100644 --- a/install/tools/man/ipa-cacert-manage.1 +++ b/install/tools/man/ipa-cacert-manage.1 @@ -79,7 +79,26 @@ Sign the renewed certificate by itself. Sign the renewed certificate by external CA. .TP \fB\-\-external\-ca\-type\fR=\fITYPE\fR -Type of the external CA. Possible values are "generic", "ms-cs". Default value is "generic". Use "ms-cs" to include template name required by Microsoft Certificate Services (MS CS) in the generated CSR. +Type of the external CA. Possible values are "generic", "ms-cs". Default value is "generic". Use "ms-cs" to include the template name required by Microsoft Certificate Services (MS CS) in the generated CSR (see \fB\-\-external\-ca\-profile\fR for full details). + +.TP +\fB\-\-external\-ca\-profile\fR=\fIPROFILE_SPEC\fR +Specify the certificate profile or template to use at the external CA. + +When \fB\-\-external\-ca\-type\fR is "ms-cs" the following specifiers may be used: + +.RS +.TP +\fB:[:]\fR +Specify a certificate template by OID and major version, optionally also specifying minor version. +.TP +\fB\fR +Specify a certificate template by name. The name cannot contain any \fI:\fR characters and cannot be an OID (otherwise the OID-based template specifier syntax takes precedence). +.TP +\fBdefault\fR +If no template is specified, the template name "SubCA" is used. +.RE + .TP \fB\-\-external\-cert\-file\fR=\fIFILE\fR File containing the IPA CA certificate and the external CA certificate chain. The file is accepted in PEM and DER certificate and PKCS#7 certificate chain formats. This option may be used multiple times. diff --git a/install/tools/man/ipa-replica-conncheck.1 b/install/tools/man/ipa-replica-conncheck.1 index 4fc55e8bf..6451f3545 100644 --- a/install/tools/man/ipa-replica-conncheck.1 +++ b/install/tools/man/ipa-replica-conncheck.1 @@ -40,7 +40,7 @@ Automatically log in to master machine and execute the master machine part of th The Kerberos realm name for the IPA server .TP \fB\-k\fR \fIKDC\fR, \fB\-\-kdc\fR=\fIKDC\fR -KDC server address. Defaults t \fIMASTER\fR +KDC server address. Defaults to \fIMASTER\fR .TP \fB\-p\fR \fIPRINCIPAL\fR, \fB\-\-principal\fR=\fIPRINCIPAL\fR Authorized Kerberos principal to use to log in to master machine. Defaults to \fIadmin\fR diff --git a/install/tools/man/ipa-server-certinstall.1 b/install/tools/man/ipa-server-certinstall.1 index 35cd8c6c7..00fd03b6b 100644 --- a/install/tools/man/ipa-server-certinstall.1 +++ b/install/tools/man/ipa-server-certinstall.1 @@ -28,7 +28,8 @@ PKCS#12 is a file format used to safely transport SSL certificates and public/pr They may be generated and managed using the NSS pk12util command or the OpenSSL pkcs12 command. -The service(s) are not automatically restarted. In order to use the newly installed certificate(s) you will need to manually restart the Directory and/or Apache servers. +The service(s) are not automatically restarted. In order to use the newly installed certificate(s) you will need to manually restart the Directory, Apache and/or Krb5kdc servers. + .SH "OPTIONS" .TP \fB\-d\fR, \fB\-\-dirsrv\fR diff --git a/install/tools/man/ipa-server-install.1 b/install/tools/man/ipa-server-install.1 index 3f46eba0f..ca1857d1d 100644 --- a/install/tools/man/ipa-server-install.1 +++ b/install/tools/man/ipa-server-install.1 @@ -87,7 +87,26 @@ The path to LDIF file that will be used to modify configuration of dse.ldif duri Generate a CSR for the IPA CA certificate to be signed by an external CA. .TP \fB\-\-external\-ca\-type\fR=\fITYPE\fR -Type of the external CA. Possible values are "generic", "ms-cs". Default value is "generic". Use "ms-cs" to include template name required by Microsoft Certificate Services (MS CS) in the generated CSR. +Type of the external CA. Possible values are "generic", "ms-cs". Default value is "generic". Use "ms-cs" to include the template name required by Microsoft Certificate Services (MS CS) in the generated CSR (see \fB\-\-external\-ca\-profile\fR for full details). + +.TP +\fB\-\-external\-ca\-profile\fR=\fIPROFILE_SPEC\fR +Specify the certificate profile or template to use at the external CA. + +When \fB\-\-external\-ca\-type\fR is "ms-cs" the following specifiers may be used: + +.RS +.TP +\fB:[:]\fR +Specify a certificate template by OID and major version, optionally also specifying minor version. +.TP +\fB\fR +Specify a certificate template by name. The name cannot contain any \fI:\fR characters and cannot be an OID (otherwise the OID-based template specifier syntax takes precedence). +.TP +\fBdefault\fR +If no template is specified, the template name "SubCA" is used. +.RE + .TP \fB\-\-external\-cert\-file\fR=\fIFILE\fR File containing the IPA CA certificate and the external CA certificate chain. The file is accepted in PEM and DER certificate and PKCS#7 certificate chain formats. This option may be used multiple times. diff --git a/install/ui/src/freeipa/idviews.js b/install/ui/src/freeipa/idviews.js index d9133a13c..0511820e2 100644 --- a/install/ui/src/freeipa/idviews.js +++ b/install/ui/src/freeipa/idviews.js @@ -101,6 +101,7 @@ return { 'cn', { name: 'ipadomainresolutionorder', + flags: ['w_if_no_aci'], tooltip: '@mc-opt:idview_mod:ipadomainresolutionorder:doc' }, { diff --git a/install/ui/src/freeipa/ipa.js b/install/ui/src/freeipa/ipa.js index 2538001c9..138ca031b 100644 --- a/install/ui/src/freeipa/ipa.js +++ b/install/ui/src/freeipa/ipa.js @@ -191,7 +191,7 @@ var IPA = function () { } })); - batch.add_command(that.get_whoami_command(true)); + batch.add_command(that.get_whoami_command()); batch.add_command(rpc.command({ method: 'env', @@ -259,25 +259,24 @@ var IPA = function () { /** * Prepares `user-find --whoami` command * @protected - * @param {boolean} batch - Specifies if it will be used as single command or - * in a batch. */ - that.get_whoami_command = function(batch) { + that.get_whoami_command = function() { return rpc.command({ method: 'whoami', on_success: function(data, text_status, xhr) { - that.whoami.metadata = data; + that.whoami.metadata = data.result || data; + var wa_data = that.whoami.metadata; rpc.command({ - method: data.details || data.command, - args: data.arguments, + method: wa_data.details || wa_data.command, + args: wa_data.arguments, options: function() { - var options = data.options || []; + var options = wa_data.options || []; $.extend(options, {all: true}); return options; }(), on_success: function(data, text_status, xhr) { - that.whoami.data = false ? data.result[0] : data.result.result; + that.whoami.data = data.result.result; var entity = that.whoami.metadata.object; if (entity === 'user') { diff --git a/install/ui/src/freeipa/widgets/LoginScreen.js b/install/ui/src/freeipa/widgets/LoginScreen.js index 66d672e7b..d7c53d4f7 100644 --- a/install/ui/src/freeipa/widgets/LoginScreen.js +++ b/install/ui/src/freeipa/widgets/LoginScreen.js @@ -55,7 +55,7 @@ define(['dojo/_base/declare', kerberos_msg: " To login with Kerberos, please make sure you" + " have valid tickets (obtainable via kinit) and " + - "configured" + + "configured" + " the browser correctly, then click Login. ", cert_msg: " To login with certificate," + " please make sure you have valid personal certificate. ", diff --git a/install/updates/20-indices.update b/install/updates/20-indices.update index cb1fc6506..d1704adfc 100644 --- a/install/updates/20-indices.update +++ b/install/updates/20-indices.update @@ -70,8 +70,9 @@ default:cn: fqdn default:ObjectClass: top default:ObjectClass: nsIndex default:nsSystemIndex: false -default:nsIndexType: eq -default:nsIndexType: pres +only:nsIndexType: eq +only:nsIndexType: pres +only:nsIndexType: sub dn: cn=macAddress,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config default:cn: macAddress @@ -267,3 +268,43 @@ default: objectClass: nsIndex only: nsSystemIndex: false only: nsIndexType: eq only: nsIndexType: sub + +dn: cn=description,cn=index,cn=userroot,cn=ldbm database,cn=plugins,cn=config +default: cn: description +default: objectclass: top +default: objectclass: nsindex +default: nssystemindex: false +default: nsindextype: eq +default: nsindextype: sub + +dn: cn=l,cn=index,cn=userroot,cn=ldbm database,cn=plugins,cn=config +default: cn: l +default: objectclass: top +default: objectclass: nsindex +default: nssystemindex: false +default: nsindextype: eq +default: nsindextype: sub + +dn: cn=nsOsVersion,cn=index,cn=userroot,cn=ldbm database,cn=plugins,cn=config +default: cn: nsOsVersion +default: objectclass: top +default: objectclass: nsindex +default: nssystemindex: false +default: nsindextype: eq +default: nsindextype: sub + +dn: cn=nsHardwarePlatform,cn=index,cn=userroot,cn=ldbm database,cn=plugins,cn=config +default: cn: nsHardwarePlatform +default: objectclass: top +default: objectclass: nsindex +default: nssystemindex: false +default: nsindextype: eq +default: nsindextype: sub + +dn: cn=nsHostLocation,cn=index,cn=userroot,cn=ldbm database,cn=plugins,cn=config +default: cn: nsHostLocation +default: objectclass: top +default: objectclass: nsindex +default: nssystemindex: false +default: nsindextype: eq +default: nsindextype: sub diff --git a/install/updates/20-syncrepl.update b/install/updates/20-syncrepl.update index faa13f645..318eda168 100644 --- a/install/updates/20-syncrepl.update +++ b/install/updates/20-syncrepl.update @@ -4,7 +4,7 @@ only:nsslapd-pluginEnabled: on # Remember original nsuniqueid for objects referenced from cn=changelog add:nsslapd-attribute: nsuniqueid:targetUniqueId add:nsslapd-changelogmaxage: 2d -add:nsslapd-exclude-suffix: o=ipaca +add:nsslapd-include-suffix: cn=dns,$SUFFIX # Keep memberOf and referential integrity plugins away from cn=changelog. # It is necessary for performance reasons because we don't have appropriate diff --git a/install/updates/20-whoami.update b/install/updates/20-whoami.update new file mode 100644 index 000000000..ed2c6cbd7 --- /dev/null +++ b/install/updates/20-whoami.update @@ -0,0 +1,14 @@ +dn: cn=whoami,cn=plugins,cn=config +default:objectClass: top +default:objectClass: nsSlapdPlugin +default:objectClass: extensibleObject +default:cn: whoami +default:nsslapd-plugin-depends-on-type: database +default:nsslapd-pluginDescription: whoami extended operation plugin +default:nsslapd-pluginEnabled: on +default:nsslapd-pluginId: whoami-plugin +default:nsslapd-pluginInitfunc: whoami_init +default:nsslapd-pluginPath: libwhoami-plugin +default:nsslapd-pluginType: extendedop +default:nsslapd-pluginVendor: 389 Project +default:nsslapd-pluginVersion: 1.0 diff --git a/install/updates/Makefile.am b/install/updates/Makefile.am index e18d01127..ae3d3e052 100644 --- a/install/updates/Makefile.am +++ b/install/updates/Makefile.am @@ -24,6 +24,7 @@ app_DATA = \ 20-idoverride_index.update \ 20-uuid.update \ 20-default_password_policy.update \ + 20-whoami.update \ 21-replicas_container.update \ 21-ca_renewal_container.update \ 21-certstore_container.update \ diff --git a/ipaclient/csrgen.py b/ipaclient/csrgen.py index ac3d33116..0d170b8d7 100644 --- a/ipaclient/csrgen.py +++ b/ipaclient/csrgen.py @@ -12,6 +12,7 @@ import os.path import pipes import subprocess import traceback +import codecs import pkg_resources @@ -395,7 +396,7 @@ class CSRLibraryAdaptor(object): def sign_csr(self, certification_request_info): """Sign a CertificationRequestInfo. - Returns: str, a DER-encoded signed CSR. + :returns: bytes, a DER-encoded signed CSR. """ raise NotImplementedError('Use a subclass of CSRLibraryAdaptor') @@ -406,11 +407,11 @@ class OpenSSLAdaptor(object): self.password_filename = password_filename def key(self): - with open(self.key_filename, 'r') as key_file: + with open(self.key_filename, 'rb') as key_file: key_bytes = key_file.read() password = None if self.password_filename is not None: - with open(self.password_filename, 'r') as password_file: + with open(self.password_filename, 'rb') as password_file: password = password_file.read().strip() key = load_pem_private_key(key_bytes, password, default_backend()) @@ -438,7 +439,10 @@ class OpenSSLAdaptor(object): padding.PKCS1v15(), hashes.SHA256() ) - asn1sig = univ.BitString("'%s'H" % signature.encode('hex')) + asn1sig = univ.BitString("'{sig}'H".format( + sig=codecs.encode(signature, 'hex') + .decode('ascii')) + ) csr.setComponentByName('signature', asn1sig) return encoder.encode(csr) @@ -450,7 +454,7 @@ class NSSAdaptor(object): self.nickname = base64.b32encode(os.urandom(40)) def get_subject_public_key_info(self): - temp_cn = base64.b32encode(os.urandom(40)) + temp_cn = base64.b32encode(os.urandom(40)).decode('ascii') password_args = [] if self.password_filename is not None: diff --git a/ipaclient/csrgen_ffi.py b/ipaclient/csrgen_ffi.py index 2d9b78294..577fdeefb 100644 --- a/ipaclient/csrgen_ffi.py +++ b/ipaclient/csrgen_ffi.py @@ -196,17 +196,18 @@ def _parse_dn_section(subj, dn_sk): # Skip past any leading X. X: X, etc to allow for multiple instances for idx, c in enumerate(rdn_type): - if c in ':,.': + if c in b':,.': if idx+1 < len(rdn_type): rdn_type = rdn_type[idx+1:] break - if rdn_type.startswith('+'): + if rdn_type.startswith(b'+'): rdn_type = rdn_type[1:] mval = -1 else: mval = 0 if not X509_NAME_add_entry_by_txt( - subj, rdn_type, MBSTRING_UTF8, v.value, -1, -1, mval): + subj, rdn_type, MBSTRING_UTF8, + _ffi.cast("unsigned char *", v.value), -1, -1, mval): _raise_openssl_errors() if not X509_NAME_entry_count(subj): @@ -236,7 +237,7 @@ def build_requestinfo(config, public_key_info): raise errors.CSRTemplateError( reason='Error on line %d of config file' % errorline[0]) - dn_sect = NCONF_get_string(reqdata, 'req', 'distinguished_name') + dn_sect = NCONF_get_string(reqdata, b'req', b'distinguished_name') if dn_sect == NULL: raise errors.CSRTemplateError( reason='Unable to find "distinguished_name" key in config') @@ -267,7 +268,7 @@ def build_requestinfo(config, public_key_info): X509V3_set_ctx(ext_ctx, NULL, NULL, req, NULL, 0) X509V3_set_nconf(ext_ctx, reqdata) - extn_section = NCONF_get_string(reqdata, "req", "req_extensions") + extn_section = NCONF_get_string(reqdata, b"req", b"req_extensions") if extn_section != NULL: if not X509V3_EXT_REQ_add_nconf( reqdata, ext_ctx, extn_section, req): diff --git a/ipaclient/install/client.py b/ipaclient/install/client.py index b7293bb29..2f89e7eae 100644 --- a/ipaclient/install/client.py +++ b/ipaclient/install/client.py @@ -54,8 +54,6 @@ from ipapython.install.core import group, knob, extend_knob from ipapython.install.common import step from ipapython.ipautil import ( CalledProcessError, - dir_exists, - file_exists, realm_to_suffix, run, user_input, @@ -192,7 +190,7 @@ def nssldap_exists(): for file_type in ['mandatory', 'optional']: try: for filename in function[file_type]: - if file_exists(filename): + if os.path.isfile(filename): files_found[function['function']].append(filename) if file_type == 'mandatory': retval = True @@ -605,7 +603,7 @@ def hardcode_ldap_server(cli_server): DNS Discovery didn't return a valid IPA server, hardcode a value into the file instead. """ - if not file_exists(paths.LDAP_CONF): + if not os.path.isfile(paths.LDAP_CONF): return ldapconf = IPAChangeConf("IPA Installer") @@ -859,8 +857,8 @@ def configure_sssd_conf( sssd_enable_service(sssdconfig, 'ifp') if ( - (options.conf_ssh and file_exists(paths.SSH_CONFIG)) or - (options.conf_sshd and file_exists(paths.SSHD_CONFIG)) + (options.conf_ssh and os.path.isfile(paths.SSH_CONFIG)) or + (options.conf_sshd and os.path.isfile(paths.SSHD_CONFIG)) ): try: sssdconfig.new_service('ssh') @@ -1032,7 +1030,7 @@ def change_ssh_config(filename, changes, sections): def configure_ssh_config(fstore, options): - if not file_exists(paths.SSH_CONFIG): + if not os.path.isfile(paths.SSH_CONFIG): logger.info("%s not found, skipping configuration", paths.SSH_CONFIG) return @@ -1040,7 +1038,7 @@ def configure_ssh_config(fstore, options): changes = {'PubkeyAuthentication': 'yes'} - if options.sssd and file_exists(paths.SSS_SSH_KNOWNHOSTSPROXY): + if options.sssd and os.path.isfile(paths.SSS_SSH_KNOWNHOSTSPROXY): changes[ 'ProxyCommand'] = '%s -p %%p %%h' % paths.SSS_SSH_KNOWNHOSTSPROXY changes['GlobalKnownHostsFile'] = paths.SSSD_PUBCONF_KNOWN_HOSTS @@ -1055,7 +1053,7 @@ def configure_ssh_config(fstore, options): def configure_sshd_config(fstore, options): sshd = services.knownservices.sshd - if not file_exists(paths.SSHD_CONFIG): + if not os.path.isfile(paths.SSHD_CONFIG): logger.info("%s not found, skipping configuration", paths.SSHD_CONFIG) return @@ -1069,7 +1067,7 @@ def configure_sshd_config(fstore, options): 'ChallengeResponseAuthentication': 'yes', } - if options.sssd and file_exists(paths.SSS_SSH_AUTHORIZEDKEYS): + if options.sssd and os.path.isfile(paths.SSS_SSH_AUTHORIZEDKEYS): authorized_keys_changes = None candidates = ( @@ -1615,7 +1613,7 @@ def get_ca_certs_from_http(url, warn=True): result = run([paths.BIN_CURL, "-o", "-", url], capture_output=True) except CalledProcessError: raise errors.NoCertificateError(entry=url) - stdout = result.output + stdout = result.raw_output try: certs = x509.load_certificate_list(stdout) @@ -1875,19 +1873,19 @@ def configure_firefox(options, statestore, domain): if options.firefox_dir is not None: pref_path = os.path.join(options.firefox_dir, FIREFOX_PREFERENCES_REL_PATH) - if dir_exists(pref_path): + if os.path.isdir(pref_path): preferences_dir = pref_path else: logger.error("Directory '%s' does not exists.", pref_path) else: # test if firefox is installed - if file_exists(paths.FIREFOX): + if os.path.isfile(paths.FIREFOX): # find valid preferences path for path in [paths.LIB_FIREFOX, paths.LIB64_FIREFOX]: pref_path = os.path.join(path, FIREFOX_PREFERENCES_REL_PATH) - if dir_exists(pref_path): + if os.path.isdir(pref_path): preferences_dir = pref_path break else: @@ -3105,9 +3103,7 @@ def uninstall(options): "Removing Kerberos service principals from /etc/krb5.keytab") try: parser = RawConfigParser() - fp = open(paths.IPA_DEFAULT_CONF, 'r') - parser.readfp(fp) - fp.close() + parser.read(paths.IPA_DEFAULT_CONF) realm = parser.get('global', 'realm') run([paths.IPA_RMKEYTAB, "-k", paths.KRB5_KEYTAB, "-r", realm]) except CalledProcessError as err: @@ -3287,7 +3283,7 @@ def uninstall(options): preferences_fname = statestore.restore_state( 'firefox', 'preferences_fname') if preferences_fname is not None: - if file_exists(preferences_fname): + if os.path.isfile(preferences_fname): try: os.remove(preferences_fname) except Exception as e: diff --git a/ipaclient/install/ipa_certupdate.py b/ipaclient/install/ipa_certupdate.py index 06fd07922..e854b173a 100644 --- a/ipaclient/install/ipa_certupdate.py +++ b/ipaclient/install/ipa_certupdate.py @@ -56,137 +56,148 @@ class CertUpdate(admintool.AdminTool): api.bootstrap(context='cli_installer', confdir=paths.ETC_IPA) api.finalize() - server = urlsplit(api.env.jsonrpc_uri).hostname - ldap_uri = ipaldap.get_ldap_uri(server) - ldap = ipaldap.LDAPClient(ldap_uri) + api.Backend.rpcclient.connect() + run_with_args(api) + api.Backend.rpcclient.disconnect() + + +def run_with_args(api): + """ + Run the certupdate procedure with the given API object. + + :param api: API object with ldap2/rpcclient backend connected + (such that Commands can be invoked) + + """ + server = urlsplit(api.env.jsonrpc_uri).hostname + ldap_uri = ipaldap.get_ldap_uri(server) + ldap = ipaldap.LDAPClient(ldap_uri) + + tmpdir = tempfile.mkdtemp(prefix="tmp-") + ccache_name = os.path.join(tmpdir, 'ccache') + old_krb5ccname = os.environ.get('KRB5CCNAME') + try: + principal = str('host/%s@%s' % (api.env.host, api.env.realm)) + kinit_keytab(principal, paths.KRB5_KEYTAB, ccache_name) + os.environ['KRB5CCNAME'] = ccache_name - tmpdir = tempfile.mkdtemp(prefix="tmp-") - ccache_name = os.path.join(tmpdir, 'ccache') try: - principal = str('host/%s@%s' % (api.env.host, api.env.realm)) - kinit_keytab(principal, paths.KRB5_KEYTAB, ccache_name) - os.environ['KRB5CCNAME'] = ccache_name + result = api.Command.ca_is_enabled(version=u'2.107') + ca_enabled = result['result'] + except (errors.CommandError, errors.NetworkError): + result = api.Command.env(server=True, version=u'2.0') + ca_enabled = result['result']['enable_ra'] - api.Backend.rpcclient.connect() - try: - result = api.Backend.rpcclient.forward( - 'ca_is_enabled', - version=u'2.107', - ) - ca_enabled = result['result'] - except (errors.CommandError, errors.NetworkError): - result = api.Backend.rpcclient.forward( - 'env', - server=True, - version=u'2.0', - ) - ca_enabled = result['result']['enable_ra'] + ldap.gssapi_bind() - ldap.gssapi_bind() + certs = certstore.get_ca_certs( + ldap, api.env.basedn, api.env.realm, ca_enabled) - certs = certstore.get_ca_certs(ldap, api.env.basedn, - api.env.realm, ca_enabled) + if ca_enabled: + lwcas = api.Command.ca_find()['result'] + else: + lwcas = [] - if ca_enabled: - lwcas = api.Command.ca_find()['result'] - else: - lwcas = [] + finally: + if old_krb5ccname is None: + del os.environ['KRB5CCNAME'] + else: + os.environ['KRB5CCNAME'] = old_krb5ccname + shutil.rmtree(tmpdir) - api.Backend.rpcclient.disconnect() - finally: - shutil.rmtree(tmpdir) - - server_fstore = sysrestore.FileStore(paths.SYSRESTORE) - if server_fstore.has_files(): - self.update_server(certs) - try: - # pylint: disable=import-error,ipa-forbidden-import - from ipaserver.install import cainstance - # pylint: enable=import-error,ipa-forbidden-import - cainstance.add_lightweight_ca_tracking_requests(lwcas) - except Exception: - logger.exception( - "Failed to add lightweight CA tracking requests") - - self.update_client(certs) - - def update_client(self, certs): - self.update_file(paths.IPA_CA_CRT, certs) - self.update_file(paths.KDC_CA_BUNDLE_PEM, certs) - self.update_file(paths.CA_BUNDLE_PEM, certs) - - ipa_db = certdb.NSSDatabase(api.env.nss_dir) - - # Remove old IPA certs from /etc/ipa/nssdb - for nickname in ('IPA CA', 'External CA cert'): - while ipa_db.has_nickname(nickname): - try: - ipa_db.delete_cert(nickname) - except ipautil.CalledProcessError as e: - logger.error("Failed to remove %s from %s: %s", - nickname, ipa_db.secdir, e) - break - - self.update_db(ipa_db.secdir, certs) - - tasks.remove_ca_certs_from_systemwide_ca_store() - tasks.insert_ca_certs_into_systemwide_ca_store(certs) - - def update_server(self, certs): - instance = '-'.join(api.env.realm.split('.')) - self.update_db( - paths.ETC_DIRSRV_SLAPD_INSTANCE_TEMPLATE % instance, certs) - if services.knownservices.dirsrv.is_running(): - services.knownservices.dirsrv.restart(instance) - - self.update_db(paths.HTTPD_ALIAS_DIR, certs) - if services.knownservices.httpd.is_running(): - services.knownservices.httpd.restart() - - criteria = { - 'cert-database': paths.PKI_TOMCAT_ALIAS_DIR, - 'cert-nickname': IPA_CA_NICKNAME, - 'ca-name': RENEWAL_CA_NAME - } - request_id = certmonger.get_request_id(criteria) - if request_id is not None: - timeout = api.env.startup_timeout + 60 - - logger.debug("resubmitting certmonger request '%s'", request_id) - certmonger.resubmit_request( - request_id, ca='dogtag-ipa-ca-renew-agent-reuse', profile='') - try: - state = certmonger.wait_for_request(request_id, timeout) - except RuntimeError: - raise admintool.ScriptError( - "Resubmitting certmonger request '%s' timed out, " - "please check the request manually" % request_id) - ca_error = certmonger.get_request_value(request_id, 'ca-error') - if state != 'MONITORING' or ca_error: - raise admintool.ScriptError( - "Error resubmitting certmonger request '%s', " - "please check the request manually" % request_id) - - logger.debug("modifying certmonger request '%s'", request_id) - certmonger.modify(request_id, ca='dogtag-ipa-ca-renew-agent') - - self.update_file(paths.CA_CRT, certs) - self.update_file(paths.CACERT_PEM, certs) - - def update_file(self, filename, certs, mode=0o444): - certs = (c[0] for c in certs if c[2] is not False) + server_fstore = sysrestore.FileStore(paths.SYSRESTORE) + if server_fstore.has_files(): + update_server(certs) try: - x509.write_certificate_list(certs, filename) - except Exception as e: - logger.error("failed to update %s: %s", filename, e) + # pylint: disable=import-error,ipa-forbidden-import + from ipaserver.install import cainstance + # pylint: enable=import-error,ipa-forbidden-import + cainstance.add_lightweight_ca_tracking_requests(lwcas) + except Exception: + logger.exception( + "Failed to add lightweight CA tracking requests") - def update_db(self, path, certs): - db = certdb.NSSDatabase(path) - for cert, nickname, trusted, eku in certs: - trust_flags = certstore.key_policy_to_trust_flags( - trusted, True, eku) + update_client(certs) + + +def update_client(certs): + update_file(paths.IPA_CA_CRT, certs) + update_file(paths.KDC_CA_BUNDLE_PEM, certs) + update_file(paths.CA_BUNDLE_PEM, certs) + + ipa_db = certdb.NSSDatabase(api.env.nss_dir) + + # Remove old IPA certs from /etc/ipa/nssdb + for nickname in ('IPA CA', 'External CA cert'): + while ipa_db.has_nickname(nickname): try: - db.add_cert(cert, nickname, trust_flags) + ipa_db.delete_cert(nickname) except ipautil.CalledProcessError as e: logger.error( - "failed to update %s in %s: %s", nickname, path, e) + "Failed to remove %s from %s: %s", + nickname, ipa_db.secdir, e) + break + + update_db(ipa_db.secdir, certs) + + tasks.remove_ca_certs_from_systemwide_ca_store() + tasks.insert_ca_certs_into_systemwide_ca_store(certs) + + +def update_server(certs): + instance = '-'.join(api.env.realm.split('.')) + update_db(paths.ETC_DIRSRV_SLAPD_INSTANCE_TEMPLATE % instance, certs) + if services.knownservices.dirsrv.is_running(): + services.knownservices.dirsrv.restart(instance) + + update_db(paths.HTTPD_ALIAS_DIR, certs) + if services.knownservices.httpd.is_running(): + services.knownservices.httpd.restart() + + criteria = { + 'cert-database': paths.PKI_TOMCAT_ALIAS_DIR, + 'cert-nickname': IPA_CA_NICKNAME, + 'ca-name': RENEWAL_CA_NAME, + } + request_id = certmonger.get_request_id(criteria) + if request_id is not None: + timeout = api.env.startup_timeout + 60 + + logger.debug("resubmitting certmonger request '%s'", request_id) + certmonger.resubmit_request( + request_id, ca='dogtag-ipa-ca-renew-agent-reuse', profile='') + try: + state = certmonger.wait_for_request(request_id, timeout) + except RuntimeError: + raise admintool.ScriptError( + "Resubmitting certmonger request '%s' timed out, " + "please check the request manually" % request_id) + ca_error = certmonger.get_request_value(request_id, 'ca-error') + if state != 'MONITORING' or ca_error: + raise admintool.ScriptError( + "Error resubmitting certmonger request '%s', " + "please check the request manually" % request_id) + + logger.debug("modifying certmonger request '%s'", request_id) + certmonger.modify(request_id, ca='dogtag-ipa-ca-renew-agent') + + update_file(paths.CA_CRT, certs) + update_file(paths.CACERT_PEM, certs) + + +def update_file(filename, certs, mode=0o444): + certs = (c[0] for c in certs if c[2] is not False) + try: + x509.write_certificate_list(certs, filename) + except Exception as e: + logger.error("failed to update %s: %s", filename, e) + + +def update_db(path, certs): + db = certdb.NSSDatabase(path) + for cert, nickname, trusted, eku in certs: + trust_flags = certstore.key_policy_to_trust_flags(trusted, True, eku) + try: + db.add_cert(cert, nickname, trust_flags) + except ipautil.CalledProcessError as e: + logger.error("failed to update %s in %s: %s", nickname, path, e) diff --git a/ipaclient/plugins/cert.py b/ipaclient/plugins/cert.py index d5daaf3a1..50549cf59 100644 --- a/ipaclient/plugins/cert.py +++ b/ipaclient/plugins/cert.py @@ -132,7 +132,7 @@ class cert_request(CertRetrieveOverride): response = self.api.Command.cert_get_requestdata( profile_id=profile_id, principal=options.get('principal'), - public_key_info=unicode(pubkey_info_b64)) + public_key_info=pubkey_info_b64) req_info_b64 = response['result']['request_info'] req_info = base64.b64decode(req_info_b64) @@ -143,9 +143,6 @@ class cert_request(CertRetrieveOverride): raise errors.CertificateOperationError( error=(_('Generated CSR was empty'))) - # cert_request requires the CSR to be base64-encoded (but PEM - # header and footer are not required) - csr = unicode(base64.b64encode(csr)) else: if database is not None or private_key is not None: raise errors.MutuallyExclusiveError(reason=_( @@ -209,6 +206,7 @@ class cert_find(MethodOverride): raise errors.MutuallyExclusiveError( reason=_("cannot specify both raw certificate and file")) if 'certificate' not in options and 'file' in options: - options['certificate'] = x509.strip_header(options.pop('file')) + options['certificate'] = x509.load_unknown_x509_certificate( + options.pop('file')) return super(cert_find, self).forward(*args, **options) diff --git a/ipaclient/plugins/certmap.py b/ipaclient/plugins/certmap.py index 50a594f39..981ba292f 100644 --- a/ipaclient/plugins/certmap.py +++ b/ipaclient/plugins/certmap.py @@ -40,7 +40,7 @@ class certmap_match(MethodOverride): raise errors.MutuallyExclusiveError( reason=_("cannot specify both raw certificate and file")) if args: - args = [x509.strip_header(args[0])] + args = [x509.load_unknown_x509_certificate(args[0])] elif 'certificate' in options: args = [options.pop('certificate')] else: diff --git a/ipaclient/plugins/csrgen.py b/ipaclient/plugins/csrgen.py index d18a90c21..01c75f4bc 100644 --- a/ipaclient/plugins/csrgen.py +++ b/ipaclient/plugins/csrgen.py @@ -11,7 +11,7 @@ from ipalib import errors from ipalib import output from ipalib import util from ipalib.frontend import Local, Str -from ipalib.parameters import File, Principal +from ipalib.parameters import Bytes, Principal from ipalib.plugable import Registry from ipalib.text import _ from ipapython import dogtag @@ -52,7 +52,7 @@ class cert_get_requestdata(Local): label=_('Profile ID'), doc=_('CSR Generation Profile to use'), ), - File( + Bytes( 'public_key_info', label=_('Subject Public Key Info'), doc=_('DER-encoded SubjectPublicKeyInfo structure'), diff --git a/ipaclient/plugins/dns.py b/ipaclient/plugins/dns.py index f67189757..fdbbdefca 100644 --- a/ipaclient/plugins/dns.py +++ b/ipaclient/plugins/dns.py @@ -62,7 +62,7 @@ def __get_part_param(rrtype, cmd, part, output_kw, default=None): def prompt_parts(rrtype, cmd, mod_dnsvalue=None): mod_parts = None if mod_dnsvalue is not None: - name = record_name_format % rrtype.lower() + name = record_name_format % unicode(rrtype.lower()) mod_parts = cmd.api.Command.dnsrecord_split_parts( name, mod_dnsvalue)['result'] diff --git a/ipaclient/remote_plugins/schema.py b/ipaclient/remote_plugins/schema.py index eb12d678b..863d8f199 100644 --- a/ipaclient/remote_plugins/schema.py +++ b/ipaclient/remote_plugins/schema.py @@ -586,7 +586,7 @@ def get_package(server_info, client): for plugin_cls in (_SchemaCommandPlugin, _SchemaObjectPlugin): for full_name in schema[plugin_cls.schema_key]: plugin = plugin_cls(schema, str(full_name)) - plugin = module.register()(plugin) + plugin = module.register()(plugin) # pylint: disable=no-member sys.modules[module_name] = module for full_name, topic in six.iteritems(schema['topics']): diff --git a/ipalib/aci.py b/ipalib/aci.py index 73ddc7115..38cc12642 100755 --- a/ipalib/aci.py +++ b/ipalib/aci.py @@ -46,6 +46,8 @@ class ACI(object): entry in LDAP. Has methods to parse an ACI string and export to an ACI String. """ + __hash__ = None + def __init__(self,acistr=None): self.name = None self.source_group = None diff --git a/ipalib/cli.py b/ipalib/cli.py index 3196687f0..6abc348d9 100644 --- a/ipalib/cli.py +++ b/ipalib/cli.py @@ -38,6 +38,10 @@ import traceback import six from six.moves import input +from ipalib.util import ( + check_client_configuration, get_terminal_height, open_in_pager +) + if six.PY3: unicode = str @@ -55,7 +59,6 @@ from ipalib.constants import CLI_TAB, LDAP_GENERALIZED_TIME_FORMAT from ipalib.parameters import File, Str, Enum, Any, Flag from ipalib.text import _ from ipalib import api # pylint: disable=unused-import -from ipalib.util import check_client_configuration from ipapython.dnsutil import DNSName from ipapython.admintool import ScriptError @@ -680,10 +683,39 @@ class textui(backend.Backend): self.print_line('') return selection + class help(frontend.Local): """ Display help for a command or topic. """ + class Writer(object): + """ + Writer abstraction + """ + def __init__(self, outfile): + self.outfile = outfile + self.buffer = [] + + @property + def buffer_length(self): + length = 0 + for line in self.buffer: + length += len(line.split("\n")) + return length + + def append(self, string=u""): + self.buffer.append(unicode(string)) + + def write(self): + if self.buffer_length > get_terminal_height(): + data = "\n".join(self.buffer).encode("utf-8") + open_in_pager(data) + else: + try: + for line in self.buffer: + print(line, file=self.outfile) + except IOError: + pass takes_args = ( Str('command?', cli_name='topic', label=_('Topic or Command'), @@ -702,7 +734,7 @@ class help(frontend.Local): parent_topic = None for package in self.api.packages: - module_name = '%s.%s' % (package.__name__, topic) + module_name = '{0}.{1}'.format(package.__name__, topic) try: module = sys.modules[module_name] except KeyError: @@ -725,7 +757,8 @@ class help(frontend.Local): self._topics[topic_name][1] = mcl def _on_finalize(self): - # {topic: ["description", mcl, {"subtopic": ["description", mcl, [commands]]}]} + # {topic: ["description", mcl, { + # "subtopic": ["description", mcl, [commands]]}]} # {topic: ["description", mcl, [commands]]} self._topics = {} # [builtin_commands] @@ -749,22 +782,26 @@ class help(frontend.Local): self._topics[topic_name] = [doc, 0, [c]] mcl = max((self._topics[topic_name][1], len(c.name))) self._topics[topic_name][1] = mcl - else: # a module grouped in a topic + else: # a module grouped in a topic topic = self._get_topic(topic_name) mod_name = c.topic if topic_name in self._topics: if mod_name in self._topics[topic_name][2]: self._topics[topic_name][2][mod_name][2].append(c) else: - self._topics[topic_name][2][mod_name] = [doc, 0, [c]] + self._topics[topic_name][2][mod_name] = [ + doc, 0, [c]] self._count_topic_mcl(topic_name, mod_name) # count mcl for for the subtopic - mcl = max((self._topics[topic_name][2][mod_name][1], len(c.name))) + mcl = max(( + self._topics[topic_name][2][mod_name][1], + len(c.name))) self._topics[topic_name][2][mod_name][1] = mcl else: - self._topics[topic_name] = [topic[0].split('\n', 1)[0], - 0, - {mod_name: [doc, 0, [c]]}] + self._topics[topic_name] = [ + topic[0].split('\n', 1)[0], + 0, + {mod_name: [doc, 0, [c]]}] self._count_topic_mcl(topic_name, mod_name) else: self._builtins.append(c) @@ -778,8 +815,10 @@ class help(frontend.Local): def run(self, key=None, outfile=None, **options): if outfile is None: outfile = sys.stdout - writer = self._writer(outfile) + + writer = self.Writer(outfile) name = from_cli(key) + if key is None: self.api.parser.print_help(outfile) return @@ -804,33 +843,30 @@ class help(frontend.Local): if cmd_plugin.NO_CLI: continue mcl = max(mcl, len(cmd_plugin.name)) - writer('%s %s' % (to_cli(cmd_plugin.name).ljust(mcl), - cmd_plugin.summary)) + writer.append('{0} {1}'.format( + to_cli(cmd_plugin.name).ljust(mcl), cmd_plugin.summary)) else: raise HelpError(topic=name) - - def _writer(self, outfile): - def writer(string=''): - try: - print(unicode(string), file=outfile) - except IOError: - pass - return writer + writer.write() def print_topics(self, outfile): - writer = self._writer(outfile) + writer = self.Writer(outfile) for t, topic in sorted(self._topics.items()): - writer('%s %s' % (to_cli(t).ljust(self._mtl), topic[0])) + writer.append('{0} {1}'.format( + to_cli(t).ljust(self._mtl), topic[0])) + writer.write() def print_commands(self, topic, outfile): - writer = self._writer(outfile) + writer = self.Writer(outfile) + if topic in self._topics and type(self._topics[topic][2]) is dict: # we want to display topic which has subtopics for subtopic in self._topics[topic][2]: doc = self._topics[topic][2][subtopic][0] mcl = self._topics[topic][1] - writer(' %s %s' % (to_cli(subtopic).ljust(mcl), doc)) + writer.append(' {0} {1}'.format( + to_cli(subtopic).ljust(mcl), doc)) else: # we want to display subtopic or a topic which has no subtopics if topic in self._topics: @@ -852,17 +888,20 @@ class help(frontend.Local): if topic not in self.Command and len(commands) == 0: raise HelpError(topic=topic) - writer(doc) + writer.append(doc) if commands: - writer() - writer(_('Topic commands:')) + writer.append() + writer.append(_('Topic commands:')) for c in commands: - writer( - ' %s %s' % (to_cli(c.name).ljust(mcl), c.summary)) - writer() - writer(_('To get command help, use:')) - writer(_(' ipa --help')) - writer() + writer.append( + ' {0} {1}'.format( + to_cli(c.name).ljust(mcl), c.summary)) + writer.append() + writer.append(_('To get command help, use:')) + writer.append(_(' ipa --help')) + writer.append() + writer.write() + class show_mappings(frontend.Command): """ @@ -999,7 +1038,9 @@ class Collector(object): value = v + (value,) else: value = (v, value) + # pylint: disable=unsupported-assignment-operation self.__options[name] = value + # pylint: enable=unsupported-assignment-operation object.__setattr__(self, name, value) def __todict__(self): diff --git a/ipalib/config.py b/ipalib/config.py index 134772c40..b6c17fa1b 100644 --- a/ipalib/config.py +++ b/ipalib/config.py @@ -28,6 +28,7 @@ of the process. For the per-request thread-local information, see `ipalib.request`. """ +from __future__ import absolute_import import os from os import path @@ -39,6 +40,7 @@ from six.moves.urllib.parse import urlparse, urlunparse from six.moves.configparser import RawConfigParser, ParsingError # pylint: enable=import-error +from ipaplatform.tasks import tasks from ipapython.dn import DN from ipalib.base import check_name from ipalib.constants import ( @@ -47,12 +49,6 @@ from ipalib.constants import ( TLS_VERSIONS ) from ipalib import errors -try: - # pylint: disable=ipa-forbidden-import - from ipaplatform.tasks import tasks - # pylint: enable=ipa-forbidden-import -except ImportError: - tasks = None if six.PY3: unicode = str @@ -273,7 +269,9 @@ class Env(object): if type(value) not in (unicode, int, float, bool, type(None), DN): raise TypeError(key, value) object.__setattr__(self, key, value) + # pylint: disable=unsupported-assignment-operation self.__d[key] = value + # pylint: enable=unsupported-assignment-operation def __getitem__(self, key): """ @@ -449,10 +447,7 @@ class Env(object): self.script = path.abspath(sys.argv[0]) self.bin = path.dirname(self.script) self.home = os.environ.get('HOME', None) - - # Set fips_mode only if ipaplatform module was loaded - if tasks is not None: - self.fips_mode = tasks.is_fips_enabled() + self.fips_mode = tasks.is_fips_enabled() # Merge in overrides: self._merge(**overrides) diff --git a/ipalib/constants.py b/ipalib/constants.py index bc511d937..7e1c72d58 100644 --- a/ipalib/constants.py +++ b/ipalib/constants.py @@ -286,6 +286,9 @@ IPA_CA_CN = u'ipa' IPA_CA_RECORD = "ipa-ca" IPA_CA_NICKNAME = 'caSigningCert cert-pki-ca' RENEWAL_CA_NAME = 'dogtag-ipa-ca-renew-agent' +RENEWAL_REUSE_CA_NAME = 'dogtag-ipa-ca-renew-agent-reuse' +# How long dbus clients should wait for CA certificate RPCs [seconds] +CA_DBUS_TIMEOUT = 120 # regexp definitions PATTERN_GROUPUSER_NAME = '^[a-zA-Z0-9_.][a-zA-Z0-9_.-]*[a-zA-Z0-9_.$-]?$' diff --git a/ipalib/errors.py b/ipalib/errors.py index 6aaca708a..3a40fa28d 100644 --- a/ipalib/errors.py +++ b/ipalib/errors.py @@ -369,7 +369,7 @@ class ServerCommandError(PublicError): For example: >>> e = CommandError(name='foobar') - >>> raise ServerCommandError(error=e.message, server='https://localhost') + >>> raise ServerCommandError(error=str(e), server='https://localhost') Traceback (most recent call last): ... ServerCommandError: error on server 'https://localhost': unknown command 'foobar' @@ -452,6 +452,18 @@ class EnvironmentError(PublicError): errno = 912 + +class SystemEncodingError(PublicError): + """ + **913** Raised when system encoding is not UTF-8 + """ + + errno = 913 + format = _( + "System encoding must be UTF-8, '%(encoding)s' is not supported. " + "Set LC_ALL=\"C.UTF-8\", or LC_ALL=\"\" and LC_CTYPE=\"C.UTF-8\"." + ) + ############################################################################## # 1000 - 1999: Authentication errors class AuthenticationError(PublicError): diff --git a/ipalib/install/certmonger.py b/ipalib/install/certmonger.py index 7ceeee3f1..8179da6e7 100644 --- a/ipalib/install/certmonger.py +++ b/ipalib/install/certmonger.py @@ -32,6 +32,7 @@ import shlex import subprocess import tempfile from ipalib import api +from ipalib.constants import CA_DBUS_TIMEOUT from ipapython.dn import DN from ipaplatform.paths import paths from ipaplatform import services @@ -507,37 +508,53 @@ def stop_tracking(secdir=None, request_id=None, nickname=None, certfile=None): request.parent.obj_if.remove_request(request.path) -def modify(request_id, ca=None, profile=None): - if ca or profile: +def modify(request_id, ca=None, profile=None, template_v2=None): + update = {} + if ca is not None: + cm = _certmonger() + update['CA'] = cm.obj_if.find_ca_by_nickname(ca) + if profile is not None: + update['template-profile'] = profile + if template_v2 is not None: + update['template-ms-certificate-template'] = template_v2 + + if len(update) > 0: request = _get_request({'nickname': request_id}) + request.obj_if.modify(update) + + +def resubmit_request( + request_id, + ca=None, + profile=None, + template_v2=None, + is_ca=False): + """ + :param request_id: the certmonger numeric request ID + :param ca: the nickname for the certmonger CA, e.g. IPA or SelfSign + :param profile: the profile to use, e.g. SubCA. For requests using the + Dogtag CA, this is the profile to use. This also causes + the Microsoft certificate tempalte name extension to the + CSR (for telling AD CS what template to use). + :param template_v2: Microsoft V2 template specifier extension value. + Format: :[:] + :param is_ca: boolean that if True adds the CA basic constraint + """ + request = _get_request({'nickname': request_id}) + if request: update = {} if ca is not None: cm = _certmonger() update['CA'] = cm.obj_if.find_ca_by_nickname(ca) if profile is not None: update['template-profile'] = profile - request.obj_if.modify(update) + if template_v2 is not None: + update['template-ms-certificate-template'] = template_v2 + if is_ca: + update['template-is-ca'] = True + update['template-ca-path-length'] = -1 # no path length - -def resubmit_request(request_id, ca=None, profile=None, is_ca=False): - """ - :param request_id: the certmonger numeric request ID - :param ca: the nickname for the certmonger CA, e.g. IPA or SelfSign - :param profile: the dogtag template profile to use, e.g. SubCA - :param is_ca: boolean that if True adds the CA basic constraint - """ - request = _get_request({'nickname': request_id}) - if request: - if ca or profile or is_ca: - update = {} - if ca is not None: - cm = _certmonger() - update['CA'] = cm.obj_if.find_ca_by_nickname(ca) - if profile is not None: - update['template-profile'] = profile - if is_ca: - update['template-is-ca'] = True - update['template-ca-path-length'] = -1 # no path length + if len(update) > 0: request.obj_if.modify(update) request.obj_if.resubmit() @@ -604,7 +621,9 @@ def modify_ca_helper(ca_name, helper): old_helper = ca_iface.Get('org.fedorahosted.certmonger.ca', 'external-helper') ca_iface.Set('org.fedorahosted.certmonger.ca', - 'external-helper', helper) + 'external-helper', helper, + # Give dogtag extra time to generate cert + timeout=CA_DBUS_TIMEOUT) return old_helper diff --git a/ipalib/messages.py b/ipalib/messages.py index 02b0a0e10..fd458a175 100644 --- a/ipalib/messages.py +++ b/ipalib/messages.py @@ -129,11 +129,6 @@ class PublicMessage(UserWarning): data=self.kw, ) - if six.PY3: - @property - def message(self): - return str(self) - class VersionMissing(PublicMessage): """ diff --git a/ipalib/parameters.py b/ipalib/parameters.py index 462e6e35e..7ee80212a 100644 --- a/ipalib/parameters.py +++ b/ipalib/parameters.py @@ -115,12 +115,15 @@ from ipalib.base import check_name from ipalib.plugable import ReadOnly, lock from ipalib.errors import ConversionError, RequirementError, ValidationError from ipalib.errors import ( - PasswordMismatch, Base64DecodeError, CertificateFormatError + PasswordMismatch, Base64DecodeError, CertificateFormatError, + CertificateOperationError ) from ipalib.constants import TYPE_ERROR, CALLABLE_ERROR, LDAP_GENERALIZED_TIME_FORMAT from ipalib.text import Gettext, FixMe from ipalib.util import json_serialize, validate_idna_domain -from ipalib.x509 import load_der_x509_certificate, IPACertificate +from ipalib.x509 import ( + load_der_x509_certificate, IPACertificate, default_backend) +from ipalib.util import strip_csr_header from ipapython import kerberos from ipapython.dn import DN from ipapython.dnsutil import DNSName @@ -848,8 +851,10 @@ class Param(ReadOnly): """ Convert a single scalar value. """ - if type(value) in self.allowed_types: - return value + for t in self.allowed_types: + if isinstance(value, t): + return value + raise ConversionError(name=self.name, error=ugettext(self.type_error)) def validate(self, value, supplied=None): @@ -879,7 +884,10 @@ class Param(ReadOnly): self._validate_scalar(value) def _validate_scalar(self, value, index=None): - if type(value) not in self.allowed_types: + for t in self.allowed_types: + if isinstance(value, t): + break + else: raise TypeError( TYPE_ERROR % (self.name, self.type, value, type(value)) ) @@ -1227,7 +1235,7 @@ class Decimal(Number): def _enforce_precision(self, value): assert type(value) is decimal.Decimal if self.precision is not None: - quantize_exp = decimal.Decimal(10) ** -self.precision + quantize_exp = decimal.Decimal(10) ** -int(self.precision) try: value = value.quantize(quantize_exp) except decimal.DecimalException as e: @@ -1447,6 +1455,60 @@ class Certificate(Param): return super(Certificate, self)._convert_scalar(value) +class CertificateSigningRequest(Param): + type = crypto_x509.CertificateSigningRequest + type_error = _('must be a certificate signing request') + allowed_types = (crypto_x509.CertificateSigningRequest, bytes, unicode) + + def __extract_der_from_input(self, value): + """ + Tries to get the DER representation of whatever we receive as an input + + :param value: + bytes instance containing something we hope is a certificate + signing request + :returns: + base64-decoded representation of whatever we found in case input + had been something else than DER or something which resembles + DER, in which case we would just return input + """ + try: + value.decode('utf-8') + except UnicodeDecodeError: + # possibly DER-encoded CSR or something similar + return value + + value = strip_csr_header(value) + return base64.b64decode(value) + + def _convert_scalar(self, value, index=None): + """ + :param value: + either DER csr, base64-encoded csr or an object implementing the + cryptography.CertificateSigningRequest interface + :returns: + an object with the cryptography.CertificateSigningRequest interface + """ + if isinstance(value, unicode): + try: + value = value.encode('ascii') + except UnicodeDecodeError: + raise CertificateOperationError('not a valid CSR') + + if isinstance(value, bytes): + # try to extract DER from whatever we got + value = self.__extract_der_from_input(value) + try: + value = crypto_x509.load_der_x509_csr( + value, backend=default_backend()) + except ValueError as e: + raise CertificateOperationError( + error=_("Failure decoding Certificate Signing Request:" + " %s") % e) + + return super(CertificateSigningRequest, self)._convert_scalar(value) + + class Str(Data): """ A parameter for Unicode text (stored in the ``unicode`` type). diff --git a/ipalib/pkcs10.py b/ipalib/pkcs10.py index 39ec95c68..2756c8568 100644 --- a/ipalib/pkcs10.py +++ b/ipalib/pkcs10.py @@ -1,56 +1,8 @@ -# Authors: -# Rob Crittenden -# -# Copyright (C) 2010 Red Hat -# see file 'COPYING' for use and warranty information -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - from __future__ import print_function +import sys -import binascii -from cryptography.hazmat.backends import default_backend -import cryptography.x509 - - -def strip_header(csr): - """ - Remove the header and footer (and surrounding material) from a CSR. - """ - headerlen = 40 - s = csr.find("-----BEGIN NEW CERTIFICATE REQUEST-----") - if s == -1: - headerlen = 36 - s = csr.find("-----BEGIN CERTIFICATE REQUEST-----") - if s >= 0: - e = csr.find("-----END") - csr = csr[s+headerlen:e] - - return csr - - -def load_certificate_request(data): - """ - Load a PEM or base64-encoded PKCS #10 certificate request. - - :return: a python-cryptography ``Certificate`` object. - :raises: ``ValueError`` if unable to load the request - - """ - data = strip_header(data) - try: - data = binascii.a2b_base64(data) - except binascii.Error as e: - raise ValueError(e) - return cryptography.x509.load_der_x509_csr(data, default_backend()) +print( + "ipalib.pkcs10 module is deprecated and will be removed in FreeIPA 4.6. " + "To load CSRs, please, use python-cryptography instead.", + file=sys.stderr +) diff --git a/ipalib/plugable.py b/ipalib/plugable.py index 13efe331a..b1fba368d 100644 --- a/ipalib/plugable.py +++ b/ipalib/plugable.py @@ -485,6 +485,11 @@ class API(ReadOnly): handler.setFormatter(ipa_log_manager.Formatter(LOGGING_FORMAT_STDERR)) root_logger.addHandler(handler) + # check after logging is set up but before we create files. + fse = sys.getfilesystemencoding() + if fse.lower() not in {'utf-8', 'utf8'}: + raise errors.SystemEncodingError(encoding=fse) + # Add file handler: if self.env.mode in ('dummy', 'unit_test'): return # But not if in unit-test mode @@ -515,7 +520,7 @@ class API(ReadOnly): Add global options to an optparse.OptionParser instance. """ def config_file_callback(option, opt, value, parser): - if not ipautil.file_exists(value): + if not os.path.isfile(value): parser.error( _("%(filename)s: file not found") % dict(filename=value)) diff --git a/ipalib/rpc.py b/ipalib/rpc.py index 4b81e8997..8689aadff 100644 --- a/ipalib/rpc.py +++ b/ipalib/rpc.py @@ -197,6 +197,10 @@ def xml_wrap(value, version): return base64.b64encode( value.public_bytes(x509_Encoding.DER)).decode('ascii') + if isinstance(value, crypto_x509.CertificateSigningRequest): + return base64.b64encode( + value.public_bytes(x509_Encoding.DER)).decode('ascii') + assert type(value) in (unicode, float, bool, type(None)) + six.integer_types return value @@ -325,6 +329,7 @@ class _JSONPrimer(dict): tuple: self._enc_list, dict: self._enc_dict, crypto_x509.Certificate: self._enc_certificate, + crypto_x509.CertificateSigningRequest: self._enc_certificate, }) # int, long for t in six.integer_types: @@ -556,7 +561,7 @@ class SSLTransport(LanguageAwareTransport): conn = create_https_connection( host, 443, - api.env.tls_ca_cert, + getattr(context, 'ca_certfile', None), tls_version_min=api.env.tls_version_min, tls_version_max=api.env.tls_version_max) diff --git a/ipalib/setup.py b/ipalib/setup.py index cdbd61c01..722fcebd3 100644 --- a/ipalib/setup.py +++ b/ipalib/setup.py @@ -37,6 +37,7 @@ if __name__ == '__main__': "ipalib.install", ], install_requires=[ + "ipaplatform", "ipapython", "netaddr", "pyasn1", diff --git a/ipalib/text.py b/ipalib/text.py index f4f810c28..c67479aa4 100644 --- a/ipalib/text.py +++ b/ipalib/text.py @@ -146,6 +146,7 @@ class LazyText(object): """ __slots__ = ('domain', 'localedir', 'key', 'args') + __hash__ = None def __init__(self, domain=None, localedir=None): """ diff --git a/ipalib/util.py b/ipalib/util.py index 91d6e469a..7a5dc19e7 100644 --- a/ipalib/util.py +++ b/ipalib/util.py @@ -35,6 +35,10 @@ import dns import encodings import sys import ssl +import termios +import fcntl +import struct +import subprocess import netaddr from dns import resolver, rdatatype @@ -55,10 +59,7 @@ from ipalib.constants import ( TLS_VERSIONS, TLS_VERSION_MINIMAL, TLS_HIGH_CIPHERS ) from ipalib.text import _ -# pylint: disable=ipa-forbidden-import -from ipalib.install import sysrestore from ipaplatform.paths import paths -# pylint: enable=ipa-forbidden-import from ipapython.ssh import SSHPublicKey from ipapython.dn import DN, RDN from ipapython.dnsutil import DNSName @@ -68,6 +69,9 @@ from ipapython.admintool import ScriptError if six.PY3: unicode = str +_IPA_CLIENT_SYSRESTORE = "/var/lib/ipa-client/sysrestore" +_IPA_DEFAULT_CONF = "/etc/ipa/default.conf" + logger = logging.getLogger(__name__) @@ -154,6 +158,23 @@ def isvalid_base64(data): else: return True + +def strip_csr_header(csr): + """ + Remove the header and footer (and surrounding material) from a CSR. + """ + headerlen = 40 + s = csr.find(b"-----BEGIN NEW CERTIFICATE REQUEST-----") + if s == -1: + headerlen = 36 + s = csr.find(b"-----BEGIN CERTIFICATE REQUEST-----") + if s >= 0: + e = csr.find(b"-----END") + csr = csr[s + headerlen:e] + + return csr + + def validate_ipaddr(ipaddr): """ Check to see if the given IP address is a valid IPv4 or IPv6 address. @@ -292,6 +313,10 @@ def create_https_connection( raise RuntimeError("cafile argument is required to perform server " "certificate verification") + if not os.path.isfile(cafile) or not os.access(cafile, os.R_OK): + raise RuntimeError("cafile \'{file}\' doesn't exist or is unreadable". + format(file=cafile)) + # remove the slice of negating protocol options according to options tls_span = get_proper_tls_version_span(tls_version_min, tls_version_max) @@ -1078,8 +1103,9 @@ def check_client_configuration(): """ Check if IPA client is configured on the system. """ - fstore = sysrestore.FileStore(paths.IPA_CLIENT_SYSRESTORE) - if not fstore.has_files() and not os.path.exists(paths.IPA_DEFAULT_CONF): + if (not os.path.isfile(paths.IPA_DEFAULT_CONF) or + not os.path.isdir(paths.IPA_CLIENT_SYSRESTORE) or + not os.listdir(paths.IPA_CLIENT_SYSRESTORE)): raise ScriptError('IPA client is not configured on this system') @@ -1132,3 +1158,40 @@ def no_matching_interface_for_ip_address_warning(addr_list): "{}".format(ip), file=sys.stderr ) + + +def get_terminal_height(fd=1): + """ + Get current terminal height + + Args: + fd (int): file descriptor. Default: 1 (stdout) + + Returns: + int: Terminal height + """ + try: + return struct.unpack( + 'hh', fcntl.ioctl(fd, termios.TIOCGWINSZ, b'1234'))[0] + except (IOError, OSError, struct.error): + return os.environ.get("LINES", 25) + + +def open_in_pager(data): + """ + Open text data in pager + + Args: + data (bytes): data to view in pager + + Returns: + None + """ + pager = os.environ.get("PAGER", "less") + pager_process = subprocess.Popen([pager], stdin=subprocess.PIPE) + + try: + pager_process.stdin.write(data) + pager_process.communicate() + except IOError: + pass diff --git a/ipalib/x509.py b/ipalib/x509.py index 857245aa3..05782f485 100644 --- a/ipalib/x509.py +++ b/ipalib/x509.py @@ -51,7 +51,6 @@ from pyasn1_modules import rfc2315, rfc2459 import six from ipalib import errors -from ipapython.dn import DN from ipapython.dnsutil import DNSName if six.PY3: @@ -76,33 +75,6 @@ EKU_PLACEHOLDER = '1.3.6.1.4.1.3319.6.10.16' SAN_UPN = '1.3.6.1.4.1.311.20.2.3' SAN_KRB5PRINCIPALNAME = '1.3.6.1.5.2.2' -_subject_base = None - -def subject_base(): - from ipalib import api - global _subject_base - - if _subject_base is None: - config = api.Command['config_show']()['result'] - _subject_base = DN(config['ipacertificatesubjectbase'][0]) - - return _subject_base - -def strip_header(pem): - """ - Remove the header and footer from a certificate. - """ - regexp = ( - u"^-----BEGIN CERTIFICATE-----(.*?)-----END CERTIFICATE-----" - ) - if isinstance(pem, bytes): - regexp = regexp.encode('ascii') - s = re.search(regexp, pem, re.MULTILINE | re.DOTALL) - if s is not None: - return s.group(1) - else: - return pem - @crypto_utils.register_interface(crypto_x509.Certificate) class IPACertificate(object): @@ -123,18 +95,21 @@ class IPACertificate(object): # some field types encode-decoding is not strongly defined self._subject = self.__get_der_field('subject') self._issuer = self.__get_der_field('issuer') + self._serial_number = self.__get_der_field('serialNumber') def __getstate__(self): state = { '_cert': self.public_bytes(Encoding.DER), '_subject': self.subject_bytes, '_issuer': self.issuer_bytes, + '_serial_number': self._serial_number, } return state def __setstate__(self, state): self._subject = state['_subject'] self._issuer = state['_issuer'] + self._issuer = state['_serial_number'] self._cert = crypto_x509.load_der_x509_certificate( state['_cert'], backend=default_backend()) @@ -215,6 +190,10 @@ class IPACertificate(object): def serial_number(self): return self._cert.serial_number + @property + def serial_number_bytes(self): + return self._serial_number + @property def version(self): return self._cert.version @@ -295,8 +274,11 @@ class IPACertificate(object): @property def extended_key_usage_bytes(self): + eku = self.extended_key_usage + if eku is None: + return + ekurfc = rfc2459.ExtKeyUsageSyntax() - eku = self.extended_key_usage or {EKU_PLACEHOLDER} for i, oid in enumerate(eku): ekurfc[i] = univ.ObjectIdentifier(oid) ekurfc = encoder.encode(ekurfc) @@ -472,7 +454,7 @@ def pkcs7_to_certs(data, datatype=PEM): """ if datatype == PEM: match = re.match( - r'-----BEGIN PKCS7-----(.*?)-----END PKCS7-----', + br'-----BEGIN PKCS7-----(.*?)-----END PKCS7-----', data, re.DOTALL) if not match: diff --git a/ipaplatform/Makefile.am b/ipaplatform/Makefile.am index 8be72b25d..ddee56c84 100644 --- a/ipaplatform/Makefile.am +++ b/ipaplatform/Makefile.am @@ -1 +1,12 @@ include $(top_srcdir)/Makefile.python.am + +EXTRA_DIST = override.py.in + +all-local: override.py +dist-hook: override.py +install-exec-local: override.py + +override.py: override.py.in $(top_builddir)/$(CONFIG_STATUS) + $(AM_V_GEN)sed \ + -e 's|@IPAPLATFORM[@]|$(IPAPLATFORM)|g' \ + $< > $@ diff --git a/ipaplatform/__init__.py b/ipaplatform/__init__.py new file mode 100644 index 000000000..06397fda1 --- /dev/null +++ b/ipaplatform/__init__.py @@ -0,0 +1,11 @@ +# +# Copyright (C) 2017 FreeIPA Contributors see COPYING for license +# +"""ipaplatform namespace package + +In the presence of a namespace package, any code in this module will be +ignore. +""" +__import__('pkg_resources').declare_namespace(__name__) + +NAME = None # initialized by IpaMetaImporter diff --git a/ipaplatform/_importhook.py b/ipaplatform/_importhook.py new file mode 100644 index 000000000..8e4e58b7a --- /dev/null +++ b/ipaplatform/_importhook.py @@ -0,0 +1,150 @@ +# +# Copyright (C) 2017 FreeIPA Contributors see COPYING for license +# +"""Meta import hook for ipaplatform. + +Known Linux distros with /etc/os-release +---------------------------------------- + +- alpine +- centos (like rhel, fedora) +- debian +- fedora +- rhel +- ubuntu (like debian) +""" + +import importlib +import io +import re +import sys +import warnings + + +import ipaplatform +try: + from ipaplatform.override import OVERRIDE +except ImportError: + OVERRIDE = None + + +_osrelease_line = re.compile( + u"^(?!#)(?P[a-zA-Z0-9_]+)=" + u"(?P[\"\']?)(?P.+)(?P=quote)$" +) + + +class IpaMetaImporter(object): + """Meta import hook and platform detector. + + The meta import hook uses /etc/os-release to auto-detects the best + matching ipaplatform provider. It is compatible with external namespace + packages, too. + """ + modules = { + 'ipaplatform.constants', + 'ipaplatform.paths', + 'ipaplatform.services', + 'ipaplatform.tasks' + } + + bsd_family = ( + 'freebsd', + 'openbsd', + 'netbsd', + 'dragonfly', + 'gnukfreebsd' + ) + + def __init__(self, override=OVERRIDE): + self.override = override + self.platform_ids = self._get_platform_ids(self.override) + self.platform = self._get_platform(self.platform_ids) + + def _get_platform_ids(self, override): + platforms = [] + # allow RPM and Debian packages to override platform + if override is not None: + platforms.append(override) + + if sys.platform.startswith('linux'): + # Linux, get distribution from /etc/os-release + try: + platforms.extend(self._parse_osrelease()) + except Exception as e: + warnings.warn("Failed to read /etc/os-release: {}".format(e)) + elif sys.platform == 'win32': + # Windows 32 or 64bit platform + platforms.append('win32') + elif sys.platform == 'darwin': + # macOS + platforms.append('macos') + elif sys.platform.startswith(self.bsd_family): + # BSD family, look for e.g. ['freebsd10', 'freebsd'] + platforms.append(sys.platform) + simple = sys.platform.rstrip('0123456789') + if simple != sys.platform: + platforms.append(simple) + + if not platforms: + raise ValueError("Unsupported platform: {}".format(sys.platform)) + + return platforms + + def _parse_osrelease(self, filename='/etc/os-release'): + release = {} + with io.open(filename, encoding='utf-8') as f: + for line in f: + mo = _osrelease_line.match(line) + if mo is not None: + release[mo.group('name')] = mo.group('value') + + platforms = [ + release['ID'], + ] + if "ID_LIKE" in release: + platforms.extend( + v.strip() for v in release['ID_LIKE'].split(' ') if v.strip() + ) + + return platforms + + def _get_platform(self, platform_ids): + for platform in platform_ids: + try: + importlib.import_module('ipaplatform.{}'.format(platform)) + except ImportError: + pass + else: + return platform + raise ImportError('No ipaplatform available for "{}"'.format( + ', '.join(platform_ids))) + + def find_module(self, fullname, path=None): + """Meta importer hook""" + if fullname in self.modules: + return self + return None + + def load_module(self, fullname): + """Meta importer hook""" + suffix = fullname.split('.', 1)[1] + alias = 'ipaplatform.{}.{}'.format(self.platform, suffix) + platform_mod = importlib.import_module(alias) + base_mod = sys.modules.get(fullname) + if base_mod is not None: + # module has been imported before, update its __dict__ + base_mod.__dict__.update(platform_mod.__dict__) + for key in list(base_mod.__dict__): + if not hasattr(platform_mod, key): + delattr(base_mod, key) + else: + sys.modules[fullname] = platform_mod + return platform_mod + + +metaimporter = IpaMetaImporter() +sys.meta_path.insert(0, metaimporter) + +fixup_module = metaimporter.load_module +ipaplatform.NAME = metaimporter.platform diff --git a/ipaplatform/base/constants.py b/ipaplatform/base/constants.py index 6592c63d9..5f52b94f6 100644 --- a/ipaplatform/base/constants.py +++ b/ipaplatform/base/constants.py @@ -37,3 +37,6 @@ class BaseConstantsNamespace(object): 'httpd_dbus_sssd': 'on', } SSSD_USER = "sssd" + + +constants = BaseConstantsNamespace() diff --git a/ipaplatform/base/paths.py b/ipaplatform/base/paths.py index d48ffca08..e1853ad94 100644 --- a/ipaplatform/base/paths.py +++ b/ipaplatform/base/paths.py @@ -171,7 +171,6 @@ class BasePathNamespace(object): ODS_SIGNER = "/usr/sbin/ods-signer" OPENSSL = "/usr/bin/openssl" PK12UTIL = "/usr/bin/pk12util" - SIGNTOOL = "/usr/bin/signtool" SOFTHSM2_UTIL = "/usr/bin/softhsm2-util" SSLGET = "/usr/bin/sslget" SSS_SSH_AUTHORIZEDKEYS = "/usr/bin/sss_ssh_authorizedkeys" @@ -282,8 +281,6 @@ class BasePathNamespace(object): CA_BACKUP_KEYS_P12 = "/var/lib/pki/pki-tomcat/alias/ca_backup_keys.p12" KRA_BACKUP_KEYS_P12 = "/var/lib/pki/pki-tomcat/alias/kra_backup_keys.p12" CA_CS_CFG_PATH = "/var/lib/pki/pki-tomcat/conf/ca/CS.cfg" - CAJARSIGNINGCERT_CFG = ( - "/var/lib/pki/pki-tomcat/ca/profiles/ca/caJarSigningCert.cfg") CASIGNEDLOGCERT_CFG = ( "/var/lib/pki/pki-tomcat/ca/profiles/ca/caSignedLogCert.cfg") KRA_CS_CFG_PATH = "/var/lib/pki/pki-tomcat/conf/kra/CS.cfg" @@ -350,6 +347,7 @@ class BasePathNamespace(object): NETWORK_MANAGER_CONFIG_DIR = '/etc/NetworkManager/conf.d' IPA_CUSTODIA_CONF_DIR = '/etc/ipa/custodia' IPA_CUSTODIA_CONF = '/etc/ipa/custodia/custodia.conf' + IPA_CUSTODIA_KEYS = '/etc/ipa/custodia/server.keys' IPA_CUSTODIA_SOCKET = '/run/httpd/ipa-custodia.sock' IPA_CUSTODIA_AUDIT_LOG = '/var/log/ipa-custodia.audit.log' IPA_GETKEYTAB = '/usr/sbin/ipa-getkeytab' @@ -357,5 +355,8 @@ class BasePathNamespace(object): GSSPROXY_CONF = '/etc/gssproxy/10-ipa.conf' KRB5CC_HTTPD = '/tmp/krb5cc-httpd' IF_INET6 = '/proc/net/if_inet6' + AUTHCONFIG = None + IPA_SERVER_UPGRADE = '/usr/sbin/ipa-server-upgrade' -path_namespace = BasePathNamespace + +paths = BasePathNamespace() diff --git a/ipaplatform/base/services.py b/ipaplatform/base/services.py index fca6298fc..3cd2565ef 100644 --- a/ipaplatform/base/services.py +++ b/ipaplatform/base/services.py @@ -424,7 +424,7 @@ class SystemdService(PlatformService): self.service_instance(instance_name)) try: - if not ipautil.dir_exists(srv_tgt): + if not os.path.isdir(srv_tgt): os.mkdir(srv_tgt) os.chmod(srv_tgt, 0o755) if os.path.exists(srv_lnk): @@ -459,7 +459,7 @@ class SystemdService(PlatformService): self.service_instance(instance_name)) try: - if ipautil.dir_exists(srv_tgt): + if os.path.isdir(srv_tgt): if os.path.islink(srv_lnk): os.unlink(srv_lnk) ipautil.run([paths.SYSTEMCTL, "--system", "daemon-reload"]) @@ -505,8 +505,12 @@ class SystemdService(PlatformService): # Objects below are expected to be exported by platform module -service = None -knownservices = None +def base_service_class_factory(name, api=None): + raise NotImplementedError + + +service = base_service_class_factory +knownservices = KnownServices({}) # System may support more time&date services. FreeIPA supports ntpd only, other # services will be disabled during IPA installation diff --git a/ipaplatform/base/tasks.py b/ipaplatform/base/tasks.py index dc3cacc23..8f73eaddc 100644 --- a/ipaplatform/base/tasks.py +++ b/ipaplatform/base/tasks.py @@ -204,6 +204,9 @@ class BaseTaskNamespace(object): """Configure httpd service to work with IPA""" raise NotImplementedError() + def configure_http_gssproxy_conf(self, ipauser): + raise NotImplementedError() + def remove_httpd_service_ipa_conf(self): """Remove configuration of httpd service of IPA""" raise NotImplementedError() @@ -219,3 +222,6 @@ class BaseTaskNamespace(object): logger.debug('Done adding user to group') except ipautil.CalledProcessError as e: logger.debug('Failed to add user to group: %s', e) + + +tasks = BaseTaskNamespace() diff --git a/ipaplatform/constants.py b/ipaplatform/constants.py new file mode 100644 index 000000000..cc43cfb1d --- /dev/null +++ b/ipaplatform/constants.py @@ -0,0 +1,8 @@ +# +# Copyright (C) 2017 FreeIPA Contributors see COPYING for license +# +"""IpaMetaImporter replaces this module with ipaplatform.$NAME.constants. +""" +import ipaplatform._importhook + +ipaplatform._importhook.fixup_module('ipaplatform.constants') diff --git a/ipaplatform/debian/services.py b/ipaplatform/debian/services.py index 5eef5ff8a..54fc84a57 100644 --- a/ipaplatform/debian/services.py +++ b/ipaplatform/debian/services.py @@ -121,10 +121,6 @@ class DebianSysvService(base_services.PlatformService): def remove(): return True - @staticmethod - def tune_nofile_platform(): - return True - # For services which have no Debian counterpart class DebianNoService(base_services.PlatformService): diff --git a/ipaplatform/override.py.in b/ipaplatform/override.py.in new file mode 100644 index 000000000..1bd363ab2 --- /dev/null +++ b/ipaplatform/override.py.in @@ -0,0 +1 @@ +OVERRIDE = '@IPAPLATFORM@' diff --git a/ipaplatform/paths.py b/ipaplatform/paths.py new file mode 100644 index 000000000..2fcb477d4 --- /dev/null +++ b/ipaplatform/paths.py @@ -0,0 +1,8 @@ +# +# Copyright (C) 2017 FreeIPA Contributors see COPYING for license +# +"""IpaMetaImporter replaces this module with ipaplatform.$NAME.paths. +""" +import ipaplatform._importhook + +ipaplatform._importhook.fixup_module('ipaplatform.paths') diff --git a/ipaplatform/redhat/services.py b/ipaplatform/redhat/services.py index 546886464..7b1529e4f 100644 --- a/ipaplatform/redhat/services.py +++ b/ipaplatform/redhat/services.py @@ -27,7 +27,6 @@ import os import time import contextlib -from ipaplatform.tasks import tasks from ipaplatform.base import services as base_services from ipapython import ipautil, dogtag @@ -93,33 +92,9 @@ class RedHatService(base_services.SystemdService): class RedHatDirectoryService(RedHatService): - def tune_nofile_platform(self, num=8192, fstore=None): - """ - Increase the number of files descriptors available to directory server - from the default 1024 to 8192. This will allow to support a greater - number of clients out of the box. - - This is a part of the implementation that is systemd-specific. - - Returns False if the setting of the nofile limit needs to be skipped. - """ - - if os.path.exists(paths.SYSCONFIG_DIRSRV_SYSTEMD): - # We need to enable LimitNOFILE=8192 in the dirsrv@.service - # Since 389-ds-base-1.2.10-0.8.a7 the configuration of the - # service parameters is performed via - # /etc/sysconfig/dirsrv.systemd file which is imported by systemd - # into dirsrv@.service unit - - replacevars = {'LimitNOFILE': str(num)} - ipautil.inifile_replace_variables(paths.SYSCONFIG_DIRSRV_SYSTEMD, - 'service', - replacevars=replacevars) - tasks.restore_context(paths.SYSCONFIG_DIRSRV_SYSTEMD) - ipautil.run(["/bin/systemctl", "--system", "daemon-reload"], - raiseonerr=False) - - return True + def is_installed(self, instance_name): + file_path = "{}/{}-{}".format(paths.ETC_DIRSRV, "slapd", instance_name) + return os.path.exists(file_path) def restart(self, instance_name="", capture_output=True, wait=True, ldapi=False): diff --git a/ipaplatform/redhat/tasks.py b/ipaplatform/redhat/tasks.py index 99f04353c..0e7810f62 100644 --- a/ipaplatform/redhat/tasks.py +++ b/ipaplatform/redhat/tasks.py @@ -146,9 +146,22 @@ class RedHatTaskNamespace(BaseTaskNamespace): """ if not os.path.exists(paths.IF_INET6): raise RuntimeError( - "IPv6 kernel module has to be enabled. If you do not wish to " - "use IPv6, please disable it on the interfaces in " - "sysctl.conf and enable the IPv6 kernel module.") + "IPv6 stack has to be enabled in the kernel and some " + "interface has to have ::1 address assigned. Typically " + "this is 'lo' interface. If you do not wish to use IPv6 " + "globally, disable it on the specific interfaces in " + "sysctl.conf except 'lo' interface.") + + try: + localhost6 = ipautil.CheckedIPAddress('::1', allow_loopback=True) + if localhost6.get_matching_interface() is None: + raise ValueError("no interface for ::1 address found") + except ValueError: + raise RuntimeError( + "IPv6 stack is enabled in the kernel but there is no " + "interface that has ::1 address assigned. Add ::1 address " + "resolution to 'lo' interface. You might need to enable IPv6 " + "on the interface 'lo' in sysctl.conf.") def restore_pre_ipa_client_configuration(self, fstore, statestore, was_sssd_installed, @@ -257,11 +270,11 @@ class RedHatTaskNamespace(BaseTaskNamespace): "\n") has_eku = set() - for cert, nickname, trusted, ext_key_usage in ca_certs: + for cert, nickname, trusted, _ext_key_usage in ca_certs: try: subject = cert.subject_bytes issuer = cert.issuer_bytes - serial_number = cert.serial_number + serial_number = cert.serial_number_bytes public_key_info = cert.public_key_info_bytes except (PyAsn1Error, ValueError, CertificateError) as e: logger.warning( @@ -271,7 +284,7 @@ class RedHatTaskNamespace(BaseTaskNamespace): label = urllib.parse.quote(nickname) subject = urllib.parse.quote(subject) issuer = urllib.parse.quote(issuer) - serial_number = urllib.parse.quote(str(serial_number)) + serial_number = urllib.parse.quote(serial_number) public_key_info = urllib.parse.quote(public_key_info) obj = ("[p11-kit-object-v1]\n" @@ -296,7 +309,8 @@ class RedHatTaskNamespace(BaseTaskNamespace): pem=cert.public_bytes(x509.Encoding.PEM).decode('ascii')) f.write(obj) - if ext_key_usage is not None and public_key_info not in has_eku: + if (cert.extended_key_usage is not None and + public_key_info not in has_eku): try: ext_key_usage = cert.extended_key_usage_bytes except PyAsn1Error as e: diff --git a/ipaplatform/services.py b/ipaplatform/services.py new file mode 100644 index 000000000..0d40f6443 --- /dev/null +++ b/ipaplatform/services.py @@ -0,0 +1,8 @@ +# +# Copyright (C) 2017 FreeIPA Contributors see COPYING for license +# +"""IpaMetaImporter replaces this module with ipaplatform.$NAME.services. +""" +import ipaplatform._importhook + +ipaplatform._importhook.fixup_module('ipaplatform.services') diff --git a/ipaplatform/setup.py b/ipaplatform/setup.py index 501e2bc56..1098ab6f1 100644 --- a/ipaplatform/setup.py +++ b/ipaplatform/setup.py @@ -32,6 +32,7 @@ if __name__ == '__main__': name="ipaplatform", doc=__doc__, package_dir={'ipaplatform': ''}, + namespace_packages=['ipaplatform'], packages=[ "ipaplatform", "ipaplatform.base", diff --git a/ipaplatform/tasks.py b/ipaplatform/tasks.py new file mode 100644 index 000000000..23c785909 --- /dev/null +++ b/ipaplatform/tasks.py @@ -0,0 +1,8 @@ +# +# Copyright (C) 2017 FreeIPA Contributors see COPYING for license +# +"""IpaMetaImporter replaces this module with ipaplatform.$NAME.tasks. +""" +import ipaplatform._importhook + +ipaplatform._importhook.fixup_module('ipaplatform.tasks') diff --git a/ipapython/certdb.py b/ipapython/certdb.py index 92da7829a..b9d898498 100644 --- a/ipapython/certdb.py +++ b/ipapython/certdb.py @@ -16,6 +16,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . # +from __future__ import absolute_import import collections import logging @@ -30,24 +31,12 @@ import shutil import cryptography.x509 +from ipaplatform.paths import paths from ipapython.dn import DN from ipapython.kerberos import Principal from ipapython import ipautil from ipalib import x509 # pylint: disable=ipa-forbidden-import -try: - # pylint: disable=import-error,ipa-forbidden-import - from ipaplatform.paths import paths - # pylint: enable=import-error,ipa-forbidden-import -except ImportError: - CERTUTIL = '/usr/bin/certutil' - PK12UTIL = '/usr/bin/pk12util' - OPENSSL = '/usr/bin/openssl' -else: - CERTUTIL = paths.CERTUTIL - PK12UTIL = paths.PK12UTIL - OPENSSL = paths.OPENSSL - logger = logging.getLogger(__name__) @@ -188,7 +177,8 @@ def verify_kdc_cert_validity(kdc_cert, ca_certs, realm): try: ipautil.run( - [OPENSSL, 'verify', '-CAfile', ca_file.name, kdc_file.name], + [paths.OPENSSL, 'verify', '-CAfile', ca_file.name, + kdc_file.name], capture_output=True) except ipautil.CalledProcessError as e: raise ValueError(e.output) @@ -244,7 +234,7 @@ class NSSDatabase(object): self.close() def run_certutil(self, args, stdin=None, **kwargs): - new_args = [CERTUTIL, "-d", self.secdir] + new_args = [paths.CERTUTIL, "-d", self.secdir] new_args = new_args + args new_args.extend(['-f', self.pwd_file]) return ipautil.run(new_args, stdin, **kwargs) @@ -367,7 +357,7 @@ class NSSDatabase(object): return root_nicknames def export_pkcs12(self, nickname, pkcs12_filename, pkcs12_passwd=None): - args = [PK12UTIL, "-d", self.secdir, + args = [paths.PK12UTIL, "-d", self.secdir, "-o", pkcs12_filename, "-n", nickname, "-k", self.pwd_file] @@ -391,7 +381,7 @@ class NSSDatabase(object): pkcs12_password_file.close() def import_pkcs12(self, pkcs12_filename, pkcs12_passwd=None): - args = [PK12UTIL, "-d", self.secdir, + args = [paths.PK12UTIL, "-d", self.secdir, "-i", pkcs12_filename, "-k", self.pwd_file, '-v'] pkcs12_password_file = None @@ -500,9 +490,13 @@ class NSSDatabase(object): "Can't load private key from both %s and %s" % (key_file, filename)) + # the args -v2 aes256 -v2prf hmacWithSHA256 are needed + # on OpenSSL 1.0.2 (fips mode). As soon as FreeIPA + # requires OpenSSL 1.1.0 we'll be able to drop them args = [ - OPENSSL, 'pkcs8', + paths.OPENSSL, 'pkcs8', '-topk8', + '-v2', 'aes256', '-v2prf', 'hmacWithSHA256', '-passout', 'file:' + self.pwd_file, ] if ((label != b'PRIVATE KEY' and key_password) or @@ -588,7 +582,7 @@ class NSSDatabase(object): out_password = ipautil.ipa_generate_password() out_pwdfile = ipautil.write_tmp_file(out_password) args = [ - OPENSSL, 'pkcs12', + paths.OPENSSL, 'pkcs12', '-export', '-in', in_file.name, '-out', out_file.name, diff --git a/ipapython/config.py b/ipapython/config.py index 6e53472e0..0b3c36978 100644 --- a/ipapython/config.py +++ b/ipapython/config.py @@ -16,6 +16,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . # +from __future__ import absolute_import # pylint: disable=deprecated-module from optparse import ( @@ -23,6 +24,7 @@ from optparse import ( # pylint: enable=deprecated-module from copy import copy import socket +import functools from dns import resolver, rdatatype from dns.exception import DNSException @@ -32,16 +34,9 @@ from six.moves.configparser import SafeConfigParser from six.moves.urllib.parse import urlsplit # pylint: enable=import-error +from ipaplatform.paths import paths from ipapython.dn import DN - -try: - # pylint: disable=ipa-forbidden-import - from ipaplatform.paths import paths - # pylint: enable=ipa-forbidden-import -except ImportError: - IPA_DEFAULT_CONF = '/etc/ipa/default.conf' -else: - IPA_DEFAULT_CONF = paths.IPA_DEFAULT_CONF +from ipapython.ipautil import CheckedIPAddress, CheckedIPAddressLoopback class IPAConfigError(Exception): @@ -65,13 +60,16 @@ class IPAFormatter(IndentedHelpFormatter): ret += "%s %s\n" % (spacing, line) return ret -def check_ip_option(option, opt, value): - from ipapython.ipautil import CheckedIPAddress +def check_ip_option(option, opt, value, allow_loopback=False): try: - return CheckedIPAddress(value) + if allow_loopback: + return CheckedIPAddressLoopback(value) + else: + return CheckedIPAddress(value) except Exception as e: - raise OptionValueError("option %s: invalid IP address %s: %s" % (opt, value, e)) + raise OptionValueError("option {}: invalid IP address {}: {}" + .format(opt, value, e)) def check_dn_option(option, opt, value): try: @@ -79,16 +77,30 @@ def check_dn_option(option, opt, value): except Exception as e: raise OptionValueError("option %s: invalid DN: %s" % (opt, e)) + +def check_constructor(option, opt, value): + con = option.constructor + assert con is not None, "Oops! Developer forgot to set 'constructor' kwarg" + try: + return con(value) + except Exception as e: + raise OptionValueError("option {} invalid: {}".format(opt, e)) + + class IPAOption(Option): """ optparse.Option subclass with support of options labeled as security-sensitive such as passwords. """ - ATTRS = Option.ATTRS + ["sensitive"] - TYPES = Option.TYPES + ("ip", "dn") + ATTRS = Option.ATTRS + ["sensitive", "constructor"] + TYPES = Option.TYPES + ("ip", "dn", "constructor", "ip_with_loopback") TYPE_CHECKER = copy(Option.TYPE_CHECKER) TYPE_CHECKER["ip"] = check_ip_option + TYPE_CHECKER["ip_with_loopback"] = functools.partial(check_ip_option, + allow_loopback=True) TYPE_CHECKER["dn"] = check_dn_option + TYPE_CHECKER["constructor"] = check_constructor + class IPAOptionParser(OptionParser): """ @@ -169,7 +181,7 @@ config = IPAConfig() def __parse_config(discover_server = True): p = SafeConfigParser() - p.read(IPA_DEFAULT_CONF) + p.read(paths.IPA_DEFAULT_CONF) try: if not config.default_realm: diff --git a/ipapython/install/cli.py b/ipapython/install/cli.py index 9dff308d2..e8f67a3de 100644 --- a/ipapython/install/cli.py +++ b/ipapython/install/cli.py @@ -8,7 +8,6 @@ Command line support. import collections import enum -import functools import logging import optparse # pylint: disable=deprecated-module import signal @@ -17,7 +16,8 @@ import six from ipapython import admintool from ipapython.ipa_log_manager import standard_logging_setup -from ipapython.ipautil import CheckedIPAddress, private_ccache +from ipapython.ipautil import (CheckedIPAddress, CheckedIPAddressLoopback, + private_ccache) from . import core, common @@ -105,17 +105,6 @@ def uninstall_tool(configurable_class, command_name, log_file_name, ) -def _option_callback(action, option, opt_str, value, parser, opt_type): - try: - value = opt_type(value) - except ValueError as e: - raise optparse.OptionValueError( - "option {0}: {1}".format(opt_str, e)) - - option.take_action( - action, option.dest, opt_str, value, parser.values, parser) - - class ConfigureTool(admintool.AdminTool): configurable_class = None debug_option = False @@ -178,6 +167,8 @@ class ConfigureTool(admintool.AdminTool): kwargs['type'] = 'int' elif knob_scalar_type is long: kwargs['type'] = 'long' + elif knob_scalar_type is CheckedIPAddressLoopback: + kwargs['type'] = 'ip_with_loopback' elif knob_scalar_type is CheckedIPAddress: kwargs['type'] = 'ip' elif issubclass(knob_scalar_type, enum.Enum): @@ -186,24 +177,16 @@ class ConfigureTool(admintool.AdminTool): kwargs['metavar'] = "{{{0}}}".format( ",".join(kwargs['choices'])) else: - kwargs['nargs'] = 1 - kwargs['callback_args'] = (knob_scalar_type,) + kwargs['type'] = 'constructor' + kwargs['constructor'] = knob_scalar_type kwargs['dest'] = name if issubclass(knob_type, list): - if 'type' not in kwargs: - kwargs['action'] = 'callback' - kwargs['callback'] = ( - functools.partial(_option_callback, 'append')) - elif kwargs['type'] is None: + if kwargs['type'] is None: kwargs['action'] = 'append_const' else: kwargs['action'] = 'append' else: - if 'type' not in kwargs: - kwargs['action'] = 'callback' - kwargs['callback'] = ( - functools.partial(_option_callback, 'store')) - elif kwargs['type'] is None: + if kwargs['type'] is None: kwargs['action'] = 'store_const' else: kwargs['action'] = 'store' diff --git a/ipapython/install/util.py b/ipapython/install/util.py index 4c6bcd533..1e3d2b164 100644 --- a/ipapython/install/util.py +++ b/ipapython/install/util.py @@ -82,6 +82,7 @@ def run_generator_with_yield_from(gen): class InnerClassMeta(type): + # pylint: disable=no-value-for-parameter def __new__(mcs, name, bases, class_dict): class_dict.pop('__outer_class__', None) class_dict.pop('__outer_name__', None) diff --git a/ipapython/ipaldap.py b/ipapython/ipaldap.py index 6ed2e9aff..3255fc1d7 100644 --- a/ipapython/ipaldap.py +++ b/ipapython/ipaldap.py @@ -29,6 +29,7 @@ import contextlib import collections import os import pwd +import warnings # pylint: disable=import-error from six.moves.urllib.parse import urlparse @@ -76,6 +77,20 @@ TRUNCATED_ADMIN_LIMIT = object() DIRMAN_DN = DN(('cn', 'directory manager')) +if six.PY2: + # XXX silence python-ldap's BytesWarnings + warnings.filterwarnings( + action="ignore", + message="Under Python 2, python-ldap uses bytes", + category=BytesWarning + ) + warnings.filterwarnings( + action="ignore", + message="Received non-bytes value", + category=BytesWarning + ) + + class _ServerSchema(object): ''' Properties of a schema retrieved from an LDAP server. @@ -174,6 +189,8 @@ class LDAPEntry(collections.MutableMapping): '_not_list', '_orig_raw', '_raw_view', '_single_value_view') + __hash__ = None + def __init__(self, _conn, _dn=None, _obj=None, **kwargs): """ LDAPEntry constructor. diff --git a/ipapython/ipautil.py b/ipapython/ipautil.py index c5c5e9e21..bb91ad2a2 100644 --- a/ipapython/ipautil.py +++ b/ipapython/ipautil.py @@ -29,7 +29,6 @@ import math import os import sys import copy -import stat import shutil import socket import re @@ -245,6 +244,25 @@ class CheckedIPAddress(UnsafeIPAddress): self._net = ifnet +class CheckedIPAddressLoopback(CheckedIPAddress): + """IPv4 or IPv6 address with additional constraints with + possibility to use a loopback IP. + Reserved or link-local addresses are never accepted. + """ + def __init__(self, addr, parse_netmask=True, allow_multicast=False): + + super(CheckedIPAddressLoopback, self).__init__( + addr, parse_netmask=parse_netmask, + allow_multicast=allow_multicast, + allow_loopback=True) + + if self.is_loopback(): + # print is being used instead of a logger, because at this + # moment, in execution process, there is no logger configured + print("WARNING: You are using a loopback IP: {}".format(addr), + file=sys.stderr) + + def valid_ip(addr): return netaddr.valid_ipv4(addr) or netaddr.valid_ipv6(addr) @@ -308,6 +326,25 @@ def write_tmp_file(txt): return fd + +def flush_sync(f): + """Flush and fsync file to disk + + :param f: a file object with fileno and name + """ + # flush file buffer to file descriptor + f.flush() + # flush Kernel buffer to disk + os.fsync(f.fileno()) + # sync metadata in directory + dirname = os.path.dirname(os.path.abspath(f.name)) + dirfd = os.open(dirname, os.O_RDONLY | os.O_DIRECTORY) + try: + os.fsync(dirfd) + finally: + os.close(dirfd) + + def shell_quote(string): if isinstance(string, str): return "'" + string.replace("'", "'\\''") + "'" @@ -543,31 +580,16 @@ def nolog_replace(string, nolog): return string -def file_exists(filename): - try: - mode = os.stat(filename)[stat.ST_MODE] - return bool(stat.S_ISREG(mode)) - except Exception: - return False - -def dir_exists(filename): - try: - mode = os.stat(filename)[stat.ST_MODE] - return bool(stat.S_ISDIR(mode)) - except Exception: - return False - - def install_file(fname, dest): # SELinux: use copy to keep the right context - if file_exists(dest): + if os.path.isfile(dest): os.rename(dest, dest + ".orig") shutil.copy(fname, dest) os.remove(fname) def backup_file(fname): - if file_exists(fname): + if os.path.isfile(fname): os.rename(fname, fname + ".orig") diff --git a/ipapython/setup.py b/ipapython/setup.py index 4f7153039..df2448fee 100755 --- a/ipapython/setup.py +++ b/ipapython/setup.py @@ -42,13 +42,14 @@ if __name__ == '__main__': "dnspython", "gssapi", # "ipalib", # circular dependency + "ipaplatform", "netaddr", "netifaces", + "python-ldap", "six", ], extras_require={ - ":python_version<'3'": ["enum34", "python-ldap"], - ":python_version>='3'": ["pyldap"], + ":python_version<'3'": ["enum34"], "install": ["dbus-python"], # for certmonger }, ) diff --git a/ipaserver/dcerpc.py b/ipaserver/dcerpc.py index 10cc1c76d..8b8e84a1b 100644 --- a/ipaserver/dcerpc.py +++ b/ipaserver/dcerpc.py @@ -31,14 +31,16 @@ from ipalib import errors from ipapython import ipautil from ipapython.dn import DN from ipaserver.install import installutils +from ipaserver.dcerpc_common import (TRUST_BIDIRECTIONAL, + TRUST_JOIN_EXTERNAL, + trust_type_string) + from ipalib.util import normalize_name import os import struct import random -# TODO: Remove pylint disable when Python 3 bindings are available. -# pylint: disable=import-error from samba import param from samba import credentials from samba.dcerpc import security, lsa, drsblobs, nbt, netlogon @@ -46,10 +48,10 @@ from samba.ndr import ndr_pack, ndr_print from samba import net from samba import arcfour_encrypt import samba -# pylint: enable=import-error import ldap as _ldap from ipapython import ipaldap +from ipapython.dnsutil import DNSName from dns import resolver, rdatatype from dns.exception import DNSException import pysss_nss_idmap @@ -78,15 +80,6 @@ and Samba4 python bindings. logger = logging.getLogger(__name__) -# Both constants can be used as masks against trust direction -# because bi-directional has two lower bits set. -TRUST_ONEWAY = 1 -TRUST_BIDIRECTIONAL = 3 - -# Trust join behavior -# External trust -- allow creating trust to a non-root domain in the forest -TRUST_JOIN_EXTERNAL = 1 - def is_sid_valid(sid): try: @@ -152,6 +145,7 @@ pysss_type_key_translation_dict = { pysss_nss_idmap.ID_BOTH: 'both', } + class TrustTopologyConflictSolved(Exception): """ Internal trust error: raised when previously detected @@ -162,11 +156,20 @@ class TrustTopologyConflictSolved(Exception): """ pass -def assess_dcerpc_exception(num=None, message=None): + +def assess_dcerpc_error(error): """ Takes error returned by Samba bindings and converts it into an IPA error class. """ + if isinstance(error, RuntimeError): + error_tuple = error.args + else: + error_tuple = error + if len(error_tuple) != 2: + raise RuntimeError("Unable to parse error: {err!r}".format(err=error)) + + num, message = error_tuple if num and num in dcerpc_error_codes: return dcerpc_error_codes[num] if message and message in dcerpc_error_messages: @@ -178,17 +181,13 @@ def assess_dcerpc_exception(num=None, message=None): class ExtendedDNControl(LDAPControl): - # This class attempts to implement LDAP control that would work - # with both python-ldap 2.4.x and 2.3.x, thus there is mix of properties - # from both worlds and encodeControlValue has default parameter def __init__(self): - self.controlValue = 1 - self.controlType = "1.2.840.113556.1.4.529" - self.criticality = False - self.integerValue = 1 - - def encodeControlValue(self, value=None): - return b'0\x03\x02\x01\x01' + LDAPControl.__init__( + self, + controlType="1.2.840.113556.1.4.529", + criticality=False, + encodedControlValue=b'0\x03\x02\x01\x01' + ) class DomainValidator(object): @@ -812,8 +811,7 @@ class DomainValidator(object): # Both methods should not fail at the same time if finddc_error and len(info['gc']) == 0: - num, message = e.args # pylint: disable=unpacking-non-sequence - raise assess_dcerpc_exception(num=num, message=message) + raise assess_dcerpc_error(finddc_error) self._info[domain] = info return info @@ -848,8 +846,7 @@ class TrustDomainInstance(object): result = lsa.lsarpc(binding, self.parm, self.creds) return result except RuntimeError as e: - num, message = e.args # pylint: disable=unpacking-non-sequence - raise assess_dcerpc_exception(num=num, message=message) + raise assess_dcerpc_error(e) def init_lsa_pipe(self, remote_host): """ @@ -921,8 +918,7 @@ class TrustDomainInstance(object): else: result = netrc.finddc(address=remote_host, flags=flags) except RuntimeError as e: - num, message = e.args # pylint: disable=unpacking-non-sequence - raise assess_dcerpc_exception(num=num, message=message) + raise assess_dcerpc_error(e) if not result: return False @@ -983,8 +979,7 @@ class TrustDomainInstance(object): result = self._pipe.QueryInfoPolicy2(self._policy_handle, lsa.LSA_POLICY_INFO_DNS) except RuntimeError as e: - num, message = e.args # pylint: disable=unpacking-non-sequence - raise assess_dcerpc_exception(num=num, message=message) + raise assess_dcerpc_error(e) self.info['name'] = unicode(result.name.string) self.info['dns_domain'] = unicode(result.dns_domain.string) @@ -997,8 +992,7 @@ class TrustDomainInstance(object): result = self._pipe.QueryInfoPolicy2(self._policy_handle, lsa.LSA_POLICY_INFO_ROLE) except RuntimeError as e: - num, message = e.args # pylint: disable=unpacking-non-sequence - raise assess_dcerpc_exception(num=num, message=message) + raise assess_dcerpc_error(e) self.info['is_pdc'] = (result.role == lsa.LSA_ROLE_PRIMARY) @@ -1265,13 +1259,32 @@ class TrustDomainInstance(object): dname = lsa.String() dname.string = another_domain.info['dns_domain'] res = self._pipe.QueryTrustedDomainInfoByName( - self._policy_handle, - dname, - lsa.LSA_TRUSTED_DOMAIN_INFO_FULL_INFO) + self._policy_handle, + dname, + lsa.LSA_TRUSTED_DOMAIN_INFO_FULL_INFO + ) + if res.info_ex.trust_type != lsa.LSA_TRUST_TYPE_UPLEVEL: + msg = _('There is already a trust to {ipa_domain} with ' + 'unsupported type {trust_type}. Please remove ' + 'it manually on AD DC side.') + ttype = trust_type_string( + res.info_ex.trust_type, res.info_ex.trust_attributes + ) + err = unicode(msg).format( + ipa_domain=another_domain.info['dns_domain'], + trust_type=ttype) + + raise errors.ValidationError( + name=_('AD domain controller'), + error=err + ) + self._pipe.DeleteTrustedDomain(self._policy_handle, res.info_ex.sid) except RuntimeError as e: - num, message = e.args # pylint: disable=unpacking-non-sequence + # pylint: disable=unbalanced-tuple-unpacking + num, _message = e.args + # pylint: enable=unbalanced-tuple-unpacking # Ignore anything but access denied (NT_STATUS_ACCESS_DENIED) if num == -1073741790: raise access_denied_error @@ -1282,8 +1295,7 @@ class TrustDomainInstance(object): info, self.auth_info, security.SEC_STD_DELETE) except RuntimeError as e: - num, message = e.args # pylint: disable=unpacking-non-sequence - raise assess_dcerpc_exception(num=num, message=message) + raise assess_dcerpc_error(e) # We should use proper trustdom handle in order to modify the # trust settings. Samba insists this has to be done with LSA @@ -1349,8 +1361,7 @@ class TrustDomainInstance(object): data=data) return result except RuntimeError as e: - num, message = e.args # pylint: disable=unpacking-non-sequence - raise assess_dcerpc_exception(num=num, message=message) + raise assess_dcerpc_error(e) result = retrieve_netlogon_info_2(None, self, netlogon.NETLOGON_CONTROL_TC_VERIFY, @@ -1391,7 +1402,7 @@ class TrustDomainInstance(object): raise errors.ACIError(info=error_message) - raise assess_dcerpc_exception(*result.pdc_connection_status) + raise assess_dcerpc_error(result.pdc_connection_status) return True @@ -1430,8 +1441,7 @@ def fetch_domains(api, mydomain, trustdomain, creds=None, server=None): result = netrc.finddc(domain=trustdomain, flags=nbt.NBT_SERVER_LDAP | nbt.NBT_SERVER_DS) except RuntimeError as e: - num, message = e.args # pylint: disable=unpacking-non-sequence - raise assess_dcerpc_exception(num=num, message=message) + raise assess_dcerpc_error(e) td.info['dc'] = unicode(result.pdc_dns_name) td.info['name'] = unicode(result.dns_domain) @@ -1601,7 +1611,22 @@ class TrustDomainJoins(object): entry.single_value.get('modifytimestamp').timetuple() )*1e7+116444736000000000) + forest = DNSName(self.local_domain.info['dns_forest']) + # tforest is IPA forest. keep the line below for future checks + # tforest = DNSName(self.remote_domain.info['dns_forest']) for dom in realm_domains['associateddomain']: + d = DNSName(dom) + + # We should skip all DNS subdomains of our forest + # because we are going to add *. TLN anyway + if forest.is_superdomain(d) and forest != d: + continue + + # We also should skip single label TLDs as they + # cannot be added as TLNs + if len(d.labels) == 1: + continue + ftinfo = dict() ftinfo['rec_name'] = dom ftinfo['rec_time'] = trust_timestamp diff --git a/ipaserver/dcerpc_common.py b/ipaserver/dcerpc_common.py new file mode 100644 index 000000000..526b025e3 --- /dev/null +++ b/ipaserver/dcerpc_common.py @@ -0,0 +1,73 @@ +import six +from ipalib import _ +if six.PY3: + unicode = six.text_type + +# Both constants can be used as masks against trust direction +# because bi-directional has two lower bits set. +TRUST_ONEWAY = 1 +TRUST_BIDIRECTIONAL = 3 + +# Trust join behavior +# External trust -- allow creating trust to a non-root domain in the forest +TRUST_JOIN_EXTERNAL = 1 + +# We don't want to import any of Samba Python code here just for constants +# Since these constants set in MS-ADTS, we can rely on their stability +LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE = 0x00000001 + +_trust_direction_dict = { + 1: _('Trusting forest'), + 2: _('Trusted forest'), + 3: _('Two-way trust') +} + +_trust_status_dict = { + True: _('Established and verified'), + False: _('Waiting for confirmation by remote side') +} + +_trust_type_dict_unknown = _('Unknown') + +# Trust type is a combination of ipanttrusttype and ipanttrustattributes +# We shift trust attributes by 3 bits to left so bit 0 becomes bit 3 and +# 2+(1 << 3) becomes 10. +_trust_type_dict = { + 1: _('Non-Active Directory domain'), + 2: _('Active Directory domain'), + 3: _('RFC4120-compliant Kerberos realm'), + 10: _('Non-transitive external trust to a domain in ' + 'another Active Directory forest'), + 11: _('Non-transitive external trust to an RFC4120-' + 'compliant Kerberos realm') +} + + +def trust_type_string(level, attrs): + """ + Returns a string representing a type of the trust. + The original field is an enum: + LSA_TRUST_TYPE_DOWNLEVEL = 0x00000001, + LSA_TRUST_TYPE_UPLEVEL = 0x00000002, + LSA_TRUST_TYPE_MIT = 0x00000003 + """ + transitive = int(attrs) & LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE + string = _trust_type_dict.get(int(level) | (transitive << 3), + _trust_type_dict_unknown) + return unicode(string) + + +def trust_direction_string(level): + """ + Returns a string representing a direction of the trust. + The original field is a bitmask taking two bits in use + LSA_TRUST_DIRECTION_INBOUND = 0x00000001, + LSA_TRUST_DIRECTION_OUTBOUND = 0x00000002 + """ + string = _trust_direction_dict.get(int(level), _trust_type_dict_unknown) + return unicode(string) + + +def trust_status_string(level): + string = _trust_status_dict.get(level, _trust_type_dict_unknown) + return unicode(string) diff --git a/ipaserver/dnssec/syncrepl.py b/ipaserver/dnssec/syncrepl.py index 463222026..f23bf97ef 100644 --- a/ipaserver/dnssec/syncrepl.py +++ b/ipaserver/dnssec/syncrepl.py @@ -9,9 +9,7 @@ to a local dict. import logging -# Import the python-ldap modules import ldap -# Import specific classes from python-ldap from ldap.cidict import cidict from ldap.ldapobject import ReconnectLDAPObject from ldap.syncrepl import SyncreplConsumer diff --git a/ipaserver/install/ca.py b/ipaserver/install/ca.py index 1f295f73a..1a104b4b5 100644 --- a/ipaserver/install/ca.py +++ b/ipaserver/install/ca.py @@ -126,7 +126,7 @@ def install_check(standalone, replica_config, options): raise ScriptError('A selfsign CA can not be added') cafile = os.path.join(replica_config.dir, 'cacert.p12') - if not options.promote and not ipautil.file_exists(cafile): + if not options.promote and not os.path.isfile(cafile): raise ScriptError('CA cannot be installed in CA-less setup.') if standalone and not options.skip_conncheck: @@ -168,12 +168,28 @@ def install_check(standalone, replica_config, options): raise ScriptError( "CA is already installed.\nRun the installer with " "--external-cert-file.") - if ipautil.file_exists(paths.ROOT_IPA_CSR): + if os.path.isfile(paths.ROOT_IPA_CSR): raise ScriptError( "CA CSR file %s already exists.\nIn order to continue " "remove the file and run the installer again." % paths.ROOT_IPA_CSR) + if not options.external_ca_type: + options.external_ca_type = \ + cainstance.ExternalCAType.GENERIC.value + + if options.external_ca_profile is not None: + # check that profile is valid for the external ca type + if options.external_ca_type \ + not in options.external_ca_profile.valid_for: + raise ScriptError( + "External CA profile specification '{}' " + "cannot be used with external CA type '{}'." + .format( + options.external_ca_profile.unparsed_input, + options.external_ca_type) + ) + if not options.external_cert_files: if not cainstance.check_port(): print("IPA requires port 8443 for PKI but it is currently in use.") @@ -217,11 +233,13 @@ def install_step_0(standalone, replica_config, options): host_name = options.host_name ca_subject = options._ca_subject subject_base = options._subject_base + external_ca_profile = None if replica_config is None: ca_signing_algorithm = options.ca_signing_algorithm if options.external_ca: ca_type = options.external_ca_type + external_ca_profile = options.external_ca_profile csr_file = paths.ROOT_IPA_CSR else: ca_type = None @@ -277,6 +295,7 @@ def install_step_0(standalone, replica_config, options): ca_subject=ca_subject, ca_signing_algorithm=ca_signing_algorithm, ca_type=ca_type, + external_ca_profile=external_ca_profile, csr_file=csr_file, cert_file=cert_file, cert_chain_file=cert_chain_file, @@ -363,11 +382,6 @@ def uninstall(): ca_instance.uninstall() -class ExternalCAType(enum.Enum): - GENERIC = 'generic' - MS_CS = 'ms-cs' - - class CASigningAlgorithm(enum.Enum): SHA1_WITH_RSA = 'SHA1withRSA' SHA_256_WITH_RSA = 'SHA256withRSA' @@ -413,11 +427,20 @@ class CAInstallInterface(dogtag.DogtagInstallInterface, external_ca = master_install_only(external_ca) external_ca_type = knob( - ExternalCAType, None, + cainstance.ExternalCAType, None, description="Type of the external CA", ) external_ca_type = master_install_only(external_ca_type) + external_ca_profile = knob( + type=cainstance.ExternalCAProfile, + default=None, + description=( + "Specify the certificate profile/template to use at the " + "external CA"), + ) + external_ca_profile = master_install_only(external_ca_profile) + external_cert_files = knob( # pylint: disable=invalid-sequence-index typing.List[str], None, diff --git a/ipaserver/install/cainstance.py b/ipaserver/install/cainstance.py index 6b3ad3fb1..6165fd192 100644 --- a/ipaserver/install/cainstance.py +++ b/ipaserver/install/cainstance.py @@ -22,9 +22,11 @@ from __future__ import print_function import base64 +import binascii import logging import dbus +import enum import ldap import os import pwd @@ -40,6 +42,9 @@ import six # pylint: disable=import-error from six.moves.configparser import RawConfigParser # pylint: enable=import-error +from pyasn1.codec.der import encoder +from pyasn1.type import char, univ, namedtype +import pyasn1.error from ipalib import api from ipalib import x509 @@ -95,6 +100,11 @@ ADMIN_GROUPS = [ ] +class ExternalCAType(enum.Enum): + GENERIC = 'generic' + MS_CS = 'ms-cs' + + def check_port(): """ Check that dogtag port (8443) is available. @@ -318,7 +328,8 @@ class CAInstance(DogtagInstance): master_replication_port=None, subject_base=None, ca_subject=None, ca_signing_algorithm=None, - ca_type=None, ra_p12=None, ra_only=False, + ca_type=None, external_ca_profile=None, + ra_p12=None, ra_only=False, promote=False, use_ldaps=False): """Create a CA instance. @@ -353,7 +364,9 @@ class CAInstance(DogtagInstance): if ca_type is not None: self.ca_type = ca_type else: - self.ca_type = 'generic' + self.ca_type = ExternalCAType.GENERIC.value + self.external_ca_profile = external_ca_profile + self.no_db_setup = promote self.use_ldaps = use_ldaps @@ -405,7 +418,6 @@ class CAInstance(DogtagInstance): self.__import_ra_cert) if not ra_only: - self.step("setting up signing cert profile", self.__setup_sign_profile) self.step("setting audit signing renewal to 2 years", self.set_audit_renewal) self.step("restarting certificate server", self.restart_instance) if not self.clone: @@ -565,12 +577,18 @@ class CAInstance(DogtagInstance): config.set("CA", "pki_external", "True") config.set("CA", "pki_external_csr_path", self.csr_file) - if self.ca_type == 'ms-cs': + if self.ca_type == ExternalCAType.MS_CS.value: # Include MS template name extension in the CSR + template = self.external_ca_profile + if template is None: + # default template name + template = MSCSTemplateV1(u"SubCA") + + ext_data = binascii.hexlify(template.get_ext_data()) config.set("CA", "pki_req_ext_add", "True") - config.set("CA", "pki_req_ext_oid", "1.3.6.1.4.1.311.20.2") + config.set("CA", "pki_req_ext_oid", template.ext_oid) config.set("CA", "pki_req_ext_critical", "False") - config.set("CA", "pki_req_ext_data", "1E0A00530075006200430041") + config.set("CA", "pki_req_ext_data", ext_data.decode('ascii')) elif self.external == 2: cert_file = tempfile.NamedTemporaryFile() @@ -785,7 +803,7 @@ class CAInstance(DogtagInstance): # We need to append the certs to the existing file, so start by # reading the file - if ipautil.file_exists(paths.IPA_CA_CRT): + if os.path.isfile(paths.IPA_CA_CRT): ca_certs = x509.load_certificate_list_from_file(paths.IPA_CA_CRT) certlist.extend(ca_certs) @@ -884,12 +902,6 @@ class CAInstance(DogtagInstance): except OSError: pass - def __setup_sign_profile(self): - # Tell the profile to automatically issue certs for RAs - installutils.set_directive( - paths.CAJARSIGNINGCERT_CFG, 'auth.instance_id', 'raCertAuth', - quotes=False, separator='=') - def prepare_crl_publish_dir(self): """ Prepare target directory for CRL publishing @@ -1268,6 +1280,12 @@ class CAInstance(DogtagInstance): os.chmod(keyfile, 0o600) os.chown(keyfile, pent.pw_uid, pent.pw_gid) + def __remove_lightweight_ca_key_retrieval_custodia(self): + keyfile = os.path.join(paths.PKI_TOMCAT, + self.service_prefix + '.keys') + keystore = IPAKEMKeys({'server_keys': keyfile}) + keystore.remove_keys(self.service_prefix) + def add_lightweight_ca_tracking_requests(self): try: lwcas = api.Backend.ldap2.get_entries( @@ -1873,6 +1891,168 @@ def update_ipa_conf(): parser.write(f) +class ExternalCAProfile(object): + """ + An external CA profile configuration. Currently the only + subclasses are for Microsoft CAs, for providing data in the + "Certificate Template" extension. + + Constructing this class will actually return an instance of a + subclass. + + Subclasses MUST set ``valid_for``. + + """ + def __init__(self, s=None): + self.unparsed_input = s + + # Which external CA types is the data valid for? + # A set of VALUES of the ExternalCAType enum. + valid_for = set() + + def __new__(cls, s=None): + """Construct the ExternalCAProfile value. + + Return an instance of a subclass determined by + the format of the argument. + + """ + # we are directly constructing a subclass; instantiate + # it and be done + if cls is not ExternalCAProfile: + return super(ExternalCAProfile, cls).__new__(cls) + + # construction via the base class; therefore the string + # argument is required, and is used to determine which + # subclass to construct + if s is None: + raise ValueError('string argument is required') + + parts = s.split(':') + + try: + # Is the first part on OID? + _oid = univ.ObjectIdentifier(parts[0]) + + # It is; construct a V2 template + return MSCSTemplateV2.__new__(MSCSTemplateV2, s) + + except pyasn1.error.PyAsn1Error: + # It is not an OID; treat as a template name + return MSCSTemplateV1.__new__(MSCSTemplateV1, s) + + def __getstate__(self): + return self.unparsed_input + + def __setstate__(self, state): + # explicitly call __init__ method to initialise object + self.__init__(state) + + +class MSCSTemplate(ExternalCAProfile): + """ + An Microsoft AD-CS Template specifier. + + Subclasses MUST set ext_oid. + + Subclass constructors MUST set asn1obj. + + """ + valid_for = set([ExternalCAType.MS_CS.value]) + + ext_oid = None # extension OID, as a Python str + asn1obj = None # unencoded extension data + + def get_ext_data(self): + """Return DER-encoded extension data.""" + return encoder.encode(self.asn1obj) + + +class MSCSTemplateV1(MSCSTemplate): + """ + A v1 template specifier, per + https://msdn.microsoft.com/en-us/library/cc250011.aspx. + + :: + + CertificateTemplateName ::= SEQUENCE { + Name UTF8String + } + + But note that a bare BMPString is used in practice. + + """ + ext_oid = "1.3.6.1.4.1.311.20.2" + + def __init__(self, s): + super(MSCSTemplateV1, self).__init__(s) + parts = s.split(':') + if len(parts) > 1: + raise ValueError( + "Cannot specify certificate template version when using name.") + self.asn1obj = char.BMPString(six.text_type(parts[0])) + + +class MSCSTemplateV2(MSCSTemplate): + """ + A v2 template specifier, per + https://msdn.microsoft.com/en-us/library/windows/desktop/aa378274(v=vs.85).aspx + + :: + + CertificateTemplate ::= SEQUENCE { + templateID EncodedObjectID, + templateMajorVersion TemplateVersion, + templateMinorVersion TemplateVersion OPTIONAL + } + + TemplateVersion ::= INTEGER (0..4294967295) + + """ + ext_oid = "1.3.6.1.4.1.311.21.7" + + @staticmethod + def check_version_in_range(desc, n): + if n < 0 or n >= 2**32: + raise ValueError( + "Template {} version must be in range 0..4294967295" + .format(desc)) + + def __init__(self, s): + super(MSCSTemplateV2, self).__init__(s) + + parts = s.split(':') + + obj = CertificateTemplateV2() + if len(parts) < 2 or len(parts) > 3: + raise ValueError( + "Incorrect template specification; required format is: " + ":[:]") + try: + obj['templateID'] = univ.ObjectIdentifier(parts[0]) + + major = int(parts[1]) + self.check_version_in_range("major", major) + obj['templateMajorVersion'] = major + + if len(parts) > 2: + minor = int(parts[2]) + self.check_version_in_range("minor", minor) + obj['templateMinorVersion'] = int(parts[2]) + + except pyasn1.error.PyAsn1Error: + raise ValueError("Could not parse certificate template specifier.") + self.asn1obj = obj + + +class CertificateTemplateV2(univ.Sequence): + componentType = namedtype.NamedTypes( + namedtype.NamedType('templateID', univ.ObjectIdentifier()), + namedtype.NamedType('templateMajorVersion', univ.Integer()), + namedtype.OptionalNamedType('templateMinorVersion', univ.Integer()) + ) + + if __name__ == "__main__": standard_logging_setup("install.log") ds = dsinstance.DsInstance() diff --git a/ipaserver/install/certs.py b/ipaserver/install/certs.py index 1b9085edb..a40aff5e9 100644 --- a/ipaserver/install/certs.py +++ b/ipaserver/install/certs.py @@ -40,8 +40,10 @@ from ipapython import ipautil from ipapython.certdb import EMPTY_TRUST_FLAGS, IPA_CA_TRUST_FLAGS from ipapython.certdb import get_ca_nickname, find_cert_from_txt, NSSDatabase from ipapython.dn import DN -from ipalib import pkcs10, x509, api +from ipalib import x509, api from ipalib.errors import CertificateOperationError +from ipalib.install import certstore +from ipalib.util import strip_csr_header from ipalib.text import _ from ipaplatform.paths import paths @@ -225,16 +227,8 @@ class CertDB(object): def run_certutil(self, args, stdin=None, **kwargs): return self.nssdb.run_certutil(args, stdin, **kwargs) - def run_signtool(self, args, stdin=None): - with open(self.passwd_fname, "r") as f: - password = f.readline() - new_args = [paths.SIGNTOOL, "-d", self.secdir, "-p", password] - - new_args = new_args + args - ipautil.run(new_args, stdin) - def create_noise_file(self): - if ipautil.file_exists(self.noise_fname): + if os.path.isfile(self.noise_fname): os.remove(self.noise_fname) with open(self.noise_fname, "w") as f: self.set_perms(f) @@ -416,11 +410,11 @@ class CertDB(object): if self.host_name is None: raise RuntimeError("CA Host is not set.") - with open(certreq_fname, "r") as f: + with open(certreq_fname, "rb") as f: csr = f.read() - # We just want the CSR bits, make sure there is nothing else - csr = pkcs10.strip_header(csr) + # We just want the CSR bits, make sure there is no thing else + csr = strip_csr_header(csr).decode('utf8') params = {'profileId': dogtag.DEFAULT_PROFILE, 'cert_request_type': 'pkcs10', @@ -437,7 +431,7 @@ class CertDB(object): client_keyfile=paths.RA_AGENT_KEY, **params) http_status, _http_headers, http_body = result - logger.debug("CA answer: %s", http_body) + logger.debug("CA answer: %r", http_body) if http_status != 200: raise CertificateOperationError( @@ -462,50 +456,6 @@ class CertDB(object): with open(cert_fname, "wb") as f: f.write(cert) - def issue_signing_cert(self, certreq_fname, cert_fname): - self.setup_cert_request() - - if self.host_name is None: - raise RuntimeError("CA Host is not set.") - - with open(certreq_fname, "r") as f: - csr = f.read() - - # We just want the CSR bits, make sure there is no thing else - csr = pkcs10.strip_header(csr) - - params = {'profileId': 'caJarSigningCert', - 'cert_request_type': 'pkcs10', - 'requestor_name': 'IPA Installer', - 'cert_request': csr, - 'xmlOutput': 'true'} - - # Send the request to the CA - result = dogtag.https_request( - self.host_name, 8443, - url="/ca/ee/ca/profileSubmitSSLClient", - cafile=api.env.tls_ca_cert, - client_certfile=paths.RA_AGENT_PEM, - client_keyfile=paths.RA_AGENT_KEY, - **params) - http_status, _http_headers, http_body = result - if http_status != 200: - raise RuntimeError("Unable to submit cert request") - - # The result is an XML blob. Pull the certificate out of that - doc = xml.dom.minidom.parseString(http_body) - item_node = doc.getElementsByTagName("b64") - cert = item_node[0].childNodes[0].data - doc.unlink() - - # base64-decode the cert for uniformity - cert = base64.b64decode(cert) - - # Write the certificate to a file. It will be imported in a later - # step. This file will be read later to be imported. - with open(cert_fname, "wb") as f: - f.write(cert) - def add_cert(self, cert, nick, flags): self.nssdb.add_cert(cert, nick, flags) @@ -572,7 +522,7 @@ class CertDB(object): def create_from_cacert(self): cacert_fname = paths.IPA_CA_CRT - if ipautil.file_exists(self.certdb_fname): + if os.path.isfile(self.certdb_fname): # We already have a cert db, see if it is for the same CA. # If it is we leave things as they are. with open(cacert_fname, "r") as f: @@ -659,6 +609,31 @@ class CertDB(object): subject=host, passwd_fname=self.passwd_fname) + def is_ipa_issued_cert(self, api, nickname): + """ + Return True if the certificate contained in the CertDB with the + provided nickname has been issued by IPA. + + Note that this method can only be executed if api has been initialized + """ + # This method needs to compare the cert issuer (from the NSS DB + # and the subject from the CA (from LDAP), because nicknames are not + # always aligned. + + cacert_subject = certstore.get_ca_subject( + api.Backend.ldap2, + api.env.container_ca, + api.env.basedn) + + # The cert can be issued directly by IPA. In this case, the cert + # issuer is IPA CA subject. + cert = self.get_cert_from_db(nickname) + if cert is None: + raise RuntimeError("Could not find the cert %s in %s" + % (nickname, self.secdir)) + + return DN(cert.issuer) == cacert_subject + class _CrossProcessLock(object): _DATETIME_FORMAT = '%Y%m%d%H%M%S%f' diff --git a/ipaserver/install/custodiainstance.py b/ipaserver/install/custodiainstance.py index aa5261de3..46998164a 100644 --- a/ipaserver/install/custodiainstance.py +++ b/ipaserver/install/custodiainstance.py @@ -30,8 +30,7 @@ class CustodiaInstance(SimpleServiceInstance): def __init__(self, host_name=None, realm=None): super(CustodiaInstance, self).__init__("ipa-custodia") self.config_file = paths.IPA_CUSTODIA_CONF - self.server_keys = os.path.join(paths.IPA_CUSTODIA_CONF_DIR, - 'server.keys') + self.server_keys = paths.IPA_CUSTODIA_KEYS self.ldap_uri = None self.fqdn = host_name self.realm = realm @@ -40,16 +39,19 @@ class CustodiaInstance(SimpleServiceInstance): template_file = os.path.basename(self.config_file) + '.template' template = os.path.join(paths.USR_SHARE_IPA_DIR, template_file) httpd_info = pwd.getpwnam(constants.HTTPD_USER) - sub_dict = dict(IPA_CUSTODIA_CONF_DIR=paths.IPA_CUSTODIA_CONF_DIR, - IPA_CUSTODIA_SOCKET=paths.IPA_CUSTODIA_SOCKET, - IPA_CUSTODIA_AUDIT_LOG=paths.IPA_CUSTODIA_AUDIT_LOG, - LDAP_URI=installutils.realm_to_ldapi_uri(self.realm), - UID=httpd_info.pw_uid, GID=httpd_info.pw_gid) + sub_dict = dict( + IPA_CUSTODIA_CONF_DIR=paths.IPA_CUSTODIA_CONF_DIR, + IPA_CUSTODIA_KEYS=paths.IPA_CUSTODIA_KEYS, + IPA_CUSTODIA_SOCKET=paths.IPA_CUSTODIA_SOCKET, + IPA_CUSTODIA_AUDIT_LOG=paths.IPA_CUSTODIA_AUDIT_LOG, + LDAP_URI=installutils.realm_to_ldapi_uri(self.realm), + UID=httpd_info.pw_uid, + GID=httpd_info.pw_gid + ) conf = ipautil.template_file(template, sub_dict) - fd = open(self.config_file, "w+") - fd.write(conf) - fd.flush() - fd.close() + with open(self.config_file, "w") as f: + f.write(conf) + ipautil.flush_sync(f) def create_instance(self): suffix = ipautil.realm_to_suffix(self.realm) @@ -62,10 +64,22 @@ class CustodiaInstance(SimpleServiceInstance): realm=self.realm) sysupgrade.set_upgrade_state('custodia', 'installed', True) + def uninstall(self): + super(CustodiaInstance, self).uninstall() + keystore = IPAKEMKeys({ + 'server_keys': self.server_keys, + 'ldap_uri': self.ldap_uri + }) + keystore.remove_server_keys() + installutils.remove_file(self.config_file) + sysupgrade.set_upgrade_state('custodia', 'installed', False) + def __gen_keys(self): - KeyStore = IPAKEMKeys({'server_keys': self.server_keys, - 'ldap_uri': self.ldap_uri}) - KeyStore.generate_server_keys() + keystore = IPAKEMKeys({ + 'server_keys': self.server_keys, + 'ldap_uri': self.ldap_uri + }) + keystore.generate_server_keys() def upgrade_instance(self): if not sysupgrade.get_upgrade_state("custodia", "installed"): diff --git a/ipaserver/install/dns.py b/ipaserver/install/dns.py index 9970054c7..e14b353e9 100644 --- a/ipaserver/install/dns.py +++ b/ipaserver/install/dns.py @@ -11,6 +11,7 @@ from __future__ import print_function import enum import logging +import os # absolute import is necessary because IPA module dns clashes with python-dns from dns import resolver @@ -114,7 +115,7 @@ def install_check(standalone, api, replica, options, hostname): global reverse_zones fstore = sysrestore.FileStore(paths.SYSRESTORE) - if not ipautil.file_exists(paths.IPA_DNS_INSTALL): + if not os.path.isfile(paths.IPA_DNS_INSTALL): raise RuntimeError("Integrated DNS requires '%s' package" % constants.IPA_DNS_PACKAGE_NAME) @@ -490,7 +491,7 @@ class DNSInstallInterface(hostname.HostNameInstallInterface): forwarders = knob( # pylint: disable=invalid-sequence-index - typing.List[ipautil.CheckedIPAddress], None, + typing.List[ipautil.CheckedIPAddressLoopback], None, description=("Add a DNS forwarder. This option can be used multiple " "times"), cli_names='--forwarder', diff --git a/ipaserver/install/dogtaginstance.py b/ipaserver/install/dogtaginstance.py index 96f78cecf..bcc9265de 100644 --- a/ipaserver/install/dogtaginstance.py +++ b/ipaserver/install/dogtaginstance.py @@ -31,6 +31,7 @@ import pki.system from ipalib import api, errors, x509 from ipalib.install import certmonger +from ipalib.constants import CA_DBUS_TIMEOUT from ipaplatform import services from ipaplatform.constants import constants from ipaplatform.paths import paths @@ -262,7 +263,9 @@ class DogtagInstance(service.Service): iface.add_known_ca( name, command, - dbus.Array([], dbus.Signature('s'))) + dbus.Array([], dbus.Signature('s')), + # Give dogtag extra time to generate cert + timeout=CA_DBUS_TIMEOUT) def __get_pin(self): try: diff --git a/ipaserver/install/dsinstance.py b/ipaserver/install/dsinstance.py index d823635ca..9c15d721f 100644 --- a/ipaserver/install/dsinstance.py +++ b/ipaserver/install/dsinstance.py @@ -84,7 +84,7 @@ DS_INSTANCE_PREFIX = 'slapd-' def find_server_root(): - if ipautil.dir_exists(paths.USR_LIB_DIRSRV_64): + if os.path.isdir(paths.USR_LIB_DIRSRV_64): return paths.USR_LIB_DIRSRV_64 else: return paths.USR_LIB_DIRSRV @@ -288,7 +288,6 @@ class DsInstance(service.Service): self.step("adding replication acis", self.__add_replication_acis) self.step("activating sidgen plugin", self._add_sidgen_plugin) self.step("activating extdom plugin", self._add_extdom_plugin) - self.step("tuning directory server", self.__tuning) self.step("configuring directory to start on boot", self.__enable) @@ -394,7 +393,21 @@ class DsInstance(service.Service): self.step("restarting directory server", self.__restart_instance) self.step("creating DS keytab", self.request_service_keytab) + + # 389-ds allows to ignore time skew during replication. It is disabled + # by default to avoid issues with non-contiguous CSN values which + # derived from a time stamp when the change occurs. However, there are + # cases when we are interested only in the changes coming from the + # other side and should therefore allow ignoring the time skew. + # + # This helps with initial replication or force-sync because + # the receiving side has no valuable changes itself yet. + self.step("ignore time skew for initial replication", + self.__replica_ignore_initial_time_skew) + self.step("setting up initial replication", self.__setup_replica) + self.step("prevent time skew after initial replication", + self.replica_manage_time_skew) self.step("adding sasl mappings to the directory", self.__configure_sasl_mappings) self.step("updating schema", self.__update_schema) # See LDIFs for automember configuration during replica install @@ -596,6 +609,7 @@ class DsInstance(service.Service): parser.parse() new_dse_ldif.flush() shutil.copy2(temp_filename, dse_filename) + tasks.restore_context(dse_filename) try: os.remove(temp_filename) except OSError as e: @@ -933,8 +947,35 @@ class DsInstance(service.Service): def __add_replication_acis(self): self._ldap_mod("replica-acis.ldif", self.sub_dict) + def __replica_ignore_initial_time_skew(self): + self.replica_manage_time_skew(prevent=False) + + def replica_manage_time_skew(self, prevent=True): + if prevent: + self.sub_dict['SKEWVALUE'] = 'off' + else: + self.sub_dict['SKEWVALUE'] = 'on' + self._ldap_mod("replica-prevent-time-skew.ldif", self.sub_dict) + def __setup_s4u2proxy(self): - self._ldap_mod("replica-s4u2proxy.ldif", self.sub_dict) + + def __add_principal(last_cn, principal, self): + dn = DN(('cn', last_cn), ('cn', 's4u2proxy'), + ('cn', 'etc'), self.suffix) + + value = '{principal}/{fqdn}@{realm}'.format(fqdn=self.fqdn, + realm=self.realm, + principal=principal) + + entry = api.Backend.ldap2.get_entry(dn, ['memberPrincipal']) + try: + entry['memberPrincipal'].append(value) + api.Backend.ldap2.update_entry(entry) + except errors.EmptyModlist: + pass + + __add_principal('ipa-http-delegation', 'HTTP', self) + __add_principal('ipa-ldap-delegation-targets', 'ldap', self) def __create_indices(self): self._ldap_mod("indices.ldif") @@ -1032,22 +1073,59 @@ class DsInstance(service.Service): logger.error( 'Unable to restart DS instance %s: %s', ds_instance, e) + def get_server_cert_nickname(self, serverid=None): + """ + Retrieve the nickname of the server cert used by dirsrv. + + The method directly reads the dse.ldif to find the attribute + nsSSLPersonalitySSL of cn=RSA,cn=encryption,cn=config because + LDAP is not always accessible when we need to get the nickname + (for instance during uninstall). + """ + if serverid is None: + serverid = self.get_state("serverid") + if serverid is not None: + dirname = config_dirname(serverid) + config_file = os.path.join(dirname, "dse.ldif") + rsa_dn = "cn=RSA,cn=encryption,cn=config" + with open(config_file, "r") as in_file: + parser = upgradeinstance.GetEntryFromLDIF( + in_file, + entries_dn=[rsa_dn]) + parser.parse() + try: + config_entry = parser.get_results()[rsa_dn] + nickname = config_entry["nsSSLPersonalitySSL"][0] + return nickname.decode('utf-8') + except (KeyError, IndexError): + logger.error("Unable to find server cert nickname in %s", + config_file) + + logger.debug("Falling back to nickname Server-Cert") + return 'Server-Cert' + def stop_tracking_certificates(self, serverid=None): if serverid is None: serverid = self.get_state("serverid") if not serverid is None: + nickname = self.get_server_cert_nickname(serverid) # drop the trailing / off the config_dirname so the directory # will match what is in certmonger dirname = config_dirname(serverid)[:-1] dsdb = certs.CertDB(self.realm, nssdir=dirname) - dsdb.untrack_server_cert(self.nickname) + dsdb.untrack_server_cert(nickname) def start_tracking_certificates(self, serverid): + nickname = self.get_server_cert_nickname(serverid) dirname = config_dirname(serverid)[:-1] dsdb = certs.CertDB(self.realm, nssdir=dirname) - dsdb.track_server_cert(self.nickname, self.principal, - dsdb.passwd_fname, - 'restart_dirsrv %s' % serverid) + if dsdb.is_ipa_issued_cert(api, nickname): + dsdb.track_server_cert(nickname, self.principal, + dsdb.passwd_fname, + 'restart_dirsrv %s' % serverid) + else: + logger.debug("Will not track DS server certificate %s as it is " + "not issued by IPA", nickname) # we could probably move this function into the service.Service # class - it's very generic - all we need is a way to get an @@ -1097,30 +1175,6 @@ class DsInstance(service.Service): return status - def tune_nofile(self, num=8192): - """ - Increase the number of files descriptors available to directory server - from the default 1024 to 8192. This will allow to support a greater - number of clients out of the box. - """ - - # Do the platform-specific changes - proceed = services.knownservices.dirsrv.tune_nofile_platform( - num=num, fstore=self.fstore) - - if proceed: - # finally change also DS configuration - # NOTE: dirsrv will not allow you to set max file descriptors unless - # the user limits allow it, so we have to restart dirsrv before - # attempting to change them in cn=config - self.__restart_instance() - - nf_sub_dict = dict(NOFILES=str(num)) - self._ldap_mod("ds-nfiles.ldif", nf_sub_dict) - - def __tuning(self): - self.tune_nofile(8192) - def __root_autobind(self): self._ldap_mod("root-autobind.ldif", ldap_uri="ldap://localhost", diff --git a/ipaserver/install/httpinstance.py b/ipaserver/install/httpinstance.py index b8afc4173..8f3b5937f 100644 --- a/ipaserver/install/httpinstance.py +++ b/ipaserver/install/httpinstance.py @@ -262,6 +262,11 @@ class HTTPInstance(service.Service): installutils.set_directive( paths.HTTPD_NSS_CONF, 'NSSNickname', quoted_nickname, quotes=False) + def get_mod_nss_nickname(self): + cert = installutils.get_directive(paths.HTTPD_NSS_CONF, 'NSSNickname') + nickname = installutils.unquote_directive_value(cert, quote_char="'") + return nickname + def set_mod_nss_protocol(self): installutils.set_directive(paths.HTTPD_NSS_CONF, 'NSSProtocol', 'TLSv1.0,TLSv1.1,TLSv1.2', False) @@ -578,12 +583,17 @@ class HTTPInstance(service.Service): def stop_tracking_certificates(self): db = certs.CertDB(api.env.realm, nssdir=paths.HTTPD_ALIAS_DIR) - db.untrack_server_cert(self.cert_nickname) + db.untrack_server_cert(self.get_mod_nss_nickname()) def start_tracking_certificates(self): db = certs.CertDB(self.realm, nssdir=paths.HTTPD_ALIAS_DIR) - db.track_server_cert(self.cert_nickname, self.principal, - db.passwd_fname, 'restart_httpd') + nickname = self.get_mod_nss_nickname() + if db.is_ipa_issued_cert(api, nickname): + db.track_server_cert(nickname, self.principal, + db.passwd_fname, 'restart_httpd') + else: + logger.debug("Will not track HTTP server cert %s as it is not " + "issued by IPA", nickname) def request_service_keytab(self): super(HTTPInstance, self).request_service_keytab() diff --git a/ipaserver/install/installutils.py b/ipaserver/install/installutils.py index ff37d8475..92e0d8fa8 100644 --- a/ipaserver/install/installutils.py +++ b/ipaserver/install/installutils.py @@ -523,7 +523,7 @@ def kadmin_modprinc(principal, options): def create_keytab(path, principal): try: - if ipautil.file_exists(path): + if os.path.isfile(path): os.remove(path) except os.error: logger.critical("Failed to remove %s.", path) @@ -769,7 +769,7 @@ def read_replica_info(dir_path, rconfig): def read_replica_info_dogtag_port(config_dir): portfile = config_dir + "/dogtag_directory_port.txt" default_port = 7389 - if not ipautil.file_exists(portfile): + if not os.path.isfile(portfile): dogtag_master_ds_port = default_port else: with open(portfile) as fd: @@ -969,7 +969,7 @@ def handle_error(error, log_file_name=None): return error, 1 if isinstance(error, errors.ACIError): - return error.message, 1 + return str(error), 1 if isinstance(error, ldap.INVALID_CREDENTIALS): return "Invalid password", 1 if isinstance(error, ldap.INSUFFICIENT_ACCESS): @@ -1434,6 +1434,7 @@ class ModifyLDIF(ldif.LDIFParser): if "replace" in entry: for attr in entry["replace"]: + attr = attr.decode('utf-8') try: self.replace_value(dn, attr, entry[attr]) except KeyError: @@ -1441,9 +1442,11 @@ class ModifyLDIF(ldif.LDIFParser): "missing".format(dn=dn, attr=attr)) elif "delete" in entry: for attr in entry["delete"]: + attr = attr.decode('utf-8') self.remove_value(dn, attr, entry.get(attr, None)) elif "add" in entry: for attr in entry["add"]: + attr = attr.decode('utf-8') try: self.replace_value(dn, attr, entry[attr]) except KeyError: diff --git a/ipaserver/install/ipa_backup.py b/ipaserver/install/ipa_backup.py index ac9b0fc1d..d8ff395fd 100644 --- a/ipaserver/install/ipa_backup.py +++ b/ipaserver/install/ipa_backup.py @@ -189,6 +189,8 @@ class Backup(admintool.AdminTool): paths.DNSSEC_SOFTHSM_PIN_SO, paths.IPA_ODS_EXPORTER_KEYTAB, paths.IPA_DNSKEYSYNCD_KEYTAB, + paths.IPA_CUSTODIA_KEYS, + paths.IPA_CUSTODIA_CONF, paths.HOSTS, ) + tuple( os.path.join(paths.IPA_NSSDB_DIR, file) diff --git a/ipaserver/install/ipa_cacert_manage.py b/ipaserver/install/ipa_cacert_manage.py index 2d499c1f9..0ac0c5c0a 100644 --- a/ipaserver/install/ipa_cacert_manage.py +++ b/ipaserver/install/ipa_cacert_manage.py @@ -24,6 +24,7 @@ import os from optparse import OptionGroup # pylint: disable=deprecated-module import gssapi +from ipalib.constants import RENEWAL_CA_NAME, RENEWAL_REUSE_CA_NAME from ipalib.install import certmonger, certstore from ipapython import admintool, ipautil from ipapython.certdb import (EMPTY_TRUST_FLAGS, @@ -60,16 +61,22 @@ class CACertManage(admintool.AdminTool): "--self-signed", dest='self_signed', action='store_true', help="Sign the renewed certificate by itself") - ext_cas = ("generic", "ms-cs") + renew_group.add_option( + "--external-ca", dest='self_signed', + action='store_false', + help="Sign the renewed certificate by external CA") + ext_cas = tuple(x.value for x in cainstance.ExternalCAType) renew_group.add_option( "--external-ca-type", dest="external_ca_type", type="choice", choices=ext_cas, metavar="{{{0}}}".format(",".join(ext_cas)), help="Type of the external CA. Default: generic") renew_group.add_option( - "--external-ca", dest='self_signed', - action='store_false', - help="Sign the renewed certificate by external CA") + "--external-ca-profile", dest="external_ca_profile", + type='constructor', constructor=cainstance.ExternalCAProfile, + default=None, metavar="PROFILE-SPEC", + help="Specify the certificate profile/template to use " + "at the external CA") renew_group.add_option( "--external-cert-file", dest="external_cert_files", action="append", metavar="FILE", @@ -142,20 +149,29 @@ class CACertManage(admintool.AdminTool): api.Backend.ldap2.connect(bind_pw=password) + def _get_ca_request_id(self, ca_name): + """Lookup tracking request for IPA CA, using given ca-name.""" + criteria = { + 'cert-database': paths.PKI_TOMCAT_ALIAS_DIR, + 'cert-nickname': self.cert_nickname, + 'ca-name': ca_name, + } + return certmonger.get_request_id(criteria) + def renew(self): ca = cainstance.CAInstance(api.env.realm) if not ca.is_configured(): raise admintool.ScriptError("CA is not configured on this system") - criteria = { - 'cert-database': paths.PKI_TOMCAT_ALIAS_DIR, - 'cert-nickname': self.cert_nickname, - 'ca-name': 'dogtag-ipa-ca-renew-agent', - } - self.request_id = certmonger.get_request_id(criteria) + self.request_id = self._get_ca_request_id(RENEWAL_CA_NAME) if self.request_id is None: - raise admintool.ScriptError( - "CA certificate is not tracked by certmonger") + # if external CA renewal was interrupted, the request may have + # been left with the "dogtag-ipa-ca-renew-agent-reuse" CA; + # look for it too + self.request_id = self._get_ca_request_id(RENEWAL_REUSE_CA_NAME) + if self.request_id is None: + raise admintool.ScriptError( + "CA certificate is not tracked by certmonger") logger.debug( "Found certmonger request id %r", self.request_id) @@ -179,6 +195,12 @@ class CACertManage(admintool.AdminTool): def renew_self_signed(self, ca): print("Renewing CA certificate, please wait") + msg = "You cannot specify {} when renewing a self-signed CA" + if self.options.external_ca_type: + raise admintool.ScriptError(msg.format("--external-ca-type")) + if self.options.external_ca_profile: + raise admintool.ScriptError(msg.format("--external-ca-profile")) + try: ca.set_renewal_master() except errors.NotFound: @@ -191,12 +213,30 @@ class CACertManage(admintool.AdminTool): def renew_external_step_1(self, ca): print("Exporting CA certificate signing request, please wait") - if self.options.external_ca_type == 'ms-cs': - profile = 'SubCA' - else: - profile = '' + options = self.options - self.resubmit_request('dogtag-ipa-ca-renew-agent-reuse', profile) + if not options.external_ca_type: + options.external_ca_type = cainstance.ExternalCAType.GENERIC.value + + if options.external_ca_type == cainstance.ExternalCAType.MS_CS.value \ + and options.external_ca_profile is None: + options.external_ca_profile = cainstance.MSCSTemplateV1(u"SubCA") + + if options.external_ca_profile is not None: + # check that profile is valid for the external ca type + if options.external_ca_type \ + not in options.external_ca_profile.valid_for: + raise admintool.ScriptError( + "External CA profile specification '{}' " + "cannot be used with external CA type '{}'." + .format( + options.external_ca_profile.unparsed_input, + options.external_ca_type) + ) + + self.resubmit_request( + RENEWAL_REUSE_CA_NAME, + profile=options.external_ca_profile) print(("The next step is to get %s signed by your CA and re-run " "ipa-cacert-manage as:" % paths.IPA_CA_CSR)) @@ -294,16 +334,24 @@ class CACertManage(admintool.AdminTool): except errors.NotFound: raise admintool.ScriptError("CA renewal master not found") - self.resubmit_request('dogtag-ipa-ca-renew-agent-reuse') + self.resubmit_request(RENEWAL_REUSE_CA_NAME) print("CA certificate successfully renewed") - def resubmit_request(self, ca='dogtag-ipa-ca-renew-agent', profile=''): + def resubmit_request(self, ca=RENEWAL_CA_NAME, profile=None): timeout = api.env.startup_timeout + 60 + cm_profile = None + if isinstance(profile, cainstance.MSCSTemplateV1): + cm_profile = profile.unparsed_input + + cm_template = None + if isinstance(profile, cainstance.MSCSTemplateV2): + cm_template = profile.unparsed_input + logger.debug("resubmitting certmonger request '%s'", self.request_id) - certmonger.resubmit_request(self.request_id, ca=ca, profile=profile, - is_ca=True) + certmonger.resubmit_request(self.request_id, ca=ca, profile=cm_profile, + template_v2=cm_template, is_ca=True) try: state = certmonger.wait_for_request(self.request_id, timeout) except RuntimeError: @@ -318,8 +366,8 @@ class CACertManage(admintool.AdminTool): logger.debug("modifying certmonger request '%s'", self.request_id) certmonger.modify(self.request_id, - ca='dogtag-ipa-ca-renew-agent', - profile='') + ca=RENEWAL_CA_NAME, + profile='', template_v2='') def install(self): print("Installing CA certificate, please wait") diff --git a/ipaserver/install/ipa_kra_install.py b/ipaserver/install/ipa_kra_install.py index 4125c3271..35ccf9765 100644 --- a/ipaserver/install/ipa_kra_install.py +++ b/ipaserver/install/ipa_kra_install.py @@ -21,6 +21,7 @@ from __future__ import print_function import logging +import os import sys import tempfile from optparse import SUPPRESS_HELP # pylint: disable=deprecated-module @@ -30,7 +31,6 @@ from ipalib import api from ipalib.constants import DOMAIN_LEVEL_0 from ipaplatform.paths import paths from ipapython import admintool -from ipapython import ipautil from ipaserver.install import service from ipaserver.install import cainstance from ipaserver.install import krainstance @@ -122,7 +122,7 @@ class KRAInstaller(KRAInstall): self.option_parser.error("Too many arguments provided") elif len(self.args) == 1: self.replica_file = self.args[0] - if not ipautil.file_exists(self.replica_file): + if not os.path.isfile(self.replica_file): self.option_parser.error( "Replica file %s does not exist" % self.replica_file) @@ -150,7 +150,8 @@ class KRAInstaller(KRAInstall): if not cainstance.is_ca_installed_locally(): raise RuntimeError("Dogtag CA is not installed. " - "Please install the CA first") + "Please install a CA first with the " + "`ipa-ca-install` command.") # check if KRA is not already installed _kra = krainstance.KRAInstance(api) diff --git a/ipaserver/install/ipa_otptoken_import.py b/ipaserver/install/ipa_otptoken_import.py index 9ac88e728..8ae498302 100644 --- a/ipaserver/install/ipa_otptoken_import.py +++ b/ipaserver/install/ipa_otptoken_import.py @@ -95,7 +95,9 @@ def convertTokenType(value): def convertHashName(value): "Converts hash names to their canonical names." - return { + default_hash = u"sha1" + known_prefixes = ("", "hmac-",) + known_hashes = { "sha1": u"sha1", "sha224": u"sha224", "sha256": u"sha256", @@ -106,7 +108,24 @@ def convertHashName(value): "sha-256": u"sha256", "sha-384": u"sha384", "sha-512": u"sha512", - }.get(value.lower(), u"sha1") + } + + if value is None: + return default_hash + + v = value.lower() + for prefix in known_prefixes: + if prefix: + w = v[len(prefix):] + else: + w = v + result = known_hashes.get(w) + if result is not None: + break + else: + result = default_hash + + return result def convertHMACType(value): diff --git a/ipaserver/install/ipa_replica_prepare.py b/ipaserver/install/ipa_replica_prepare.py index fe2f6ca0d..1b8221885 100644 --- a/ipaserver/install/ipa_replica_prepare.py +++ b/ipaserver/install/ipa_replica_prepare.py @@ -180,7 +180,7 @@ class ReplicaPrepare(admintool.AdminTool): config_dir = dsinstance.config_dirname( installutils.realm_to_serverid(api.env.realm)) - if not ipautil.dir_exists(config_dir): + if not os.path.isdir(config_dir): raise admintool.ScriptError( "could not find directory instance: %s" % config_dir) @@ -225,7 +225,7 @@ class ReplicaPrepare(admintool.AdminTool): except errors.DatabaseError as e: raise admintool.ScriptError(e.desc) - if ca_enabled and not ipautil.file_exists(paths.CA_CS_CFG_PATH): + if ca_enabled and not os.path.isfile(paths.CA_CS_CFG_PATH): raise admintool.ScriptError( "CA is not installed on this server. " "ipa-replica-prepare must be run on an IPA server with CA.") @@ -358,7 +358,7 @@ class ReplicaPrepare(admintool.AdminTool): logger.info("Copying SSL certificate for the Directory Server") self.copy_info_file(self.dirsrv_pkcs12_file.name, "dscert.p12") else: - if ipautil.file_exists(options.ca_file): + if os.path.isfile(options.ca_file): # Since it is possible that the Directory Manager password # has changed since ipa-server-install, we need to regenerate # the CA PKCS#12 file and update the pki admin user password @@ -404,7 +404,7 @@ class ReplicaPrepare(admintool.AdminTool): logger.info("Copying additional files") cacert_filename = paths.CACERT_PEM - if ipautil.file_exists(cacert_filename): + if os.path.isfile(cacert_filename): self.copy_info_file(cacert_filename, "cacert.pem") self.copy_info_file(paths.IPA_DEFAULT_CONF, "default.conf") @@ -571,7 +571,7 @@ class ReplicaPrepare(admintool.AdminTool): self.remove_info_file("noise.txt") orig_filename = passwd_fname + ".orig" - if ipautil.file_exists(orig_filename): + if os.path.isfile(orig_filename): installutils.remove_file(orig_filename) except errors.CertificateOperationError as e: raise admintool.ScriptError(str(e)) diff --git a/ipaserver/install/ipa_restore.py b/ipaserver/install/ipa_restore.py index e144d0d2d..1dd7b0f8a 100644 --- a/ipaserver/install/ipa_restore.py +++ b/ipaserver/install/ipa_restore.py @@ -121,9 +121,11 @@ class RemoveRUVParser(ldif.LDIFParser): elif name == 'nsuniqueid': nsuniqueid = [x.lower() for x in value] - if (objectclass and nsuniqueid and - 'nstombstone' in objectclass and - 'ffffffff-ffffffff-ffffffff-ffffffff' in nsuniqueid): + if ( + objectclass and nsuniqueid and + b'nstombstone' in objectclass and + b'ffffffff-ffffffff-ffffffff-ffffffff' in nsuniqueid + ): logger.debug("Removing RUV entry %s", dn) return @@ -314,6 +316,9 @@ class Restore(admintool.AdminTool): os.chown(self.dir, pent.pw_uid, pent.pw_gid) cwd = os.getcwd() + + logger.info("Temporary setting umask to 022") + old_umask = os.umask(0o022) try: dirsrv = services.knownservices.dirsrv @@ -426,6 +431,8 @@ class Restore(admintool.AdminTool): except Exception as e: logger.error('Cannot change directory to %s: %s', cwd, e) shutil.rmtree(self.top_dir) + logger.info("Restoring umask to %s", old_umask) + os.umask(old_umask) def get_connection(self): @@ -547,7 +554,7 @@ class Restore(admintool.AdminTool): os.chown(ldifdir, pent.pw_uid, pent.pw_gid) ipautil.backup_file(ldiffile) - with open(ldiffile, 'wb') as out_file: + with open(ldiffile, 'w') as out_file: ldif_writer = ldif.LDIFWriter(out_file) with open(srcldiffile, 'rb') as in_file: ldif_parser = RemoveRUVParser(in_file, ldif_writer) @@ -834,7 +841,7 @@ class Restore(admintool.AdminTool): try: dsinstance.DsInstance().stop_tracking_certificates( installutils.realm_to_serverid(api.env.realm)) - except OSError: + except (OSError, IOError): # When IPA is not installed, DS NSS DB does not exist pass diff --git a/ipaserver/install/ipa_server_certinstall.py b/ipaserver/install/ipa_server_certinstall.py index 4ea1217ca..36c0a586d 100644 --- a/ipaserver/install/ipa_server_certinstall.py +++ b/ipaserver/install/ipa_server_certinstall.py @@ -17,6 +17,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . # +from __future__ import print_function import os import os.path @@ -121,6 +122,10 @@ class ServerCertInstall(admintool.AdminTool): if self.options.kdc: self.install_kdc_cert() + print( + "Please restart ipa services after installing certificate " + "(ipactl restart)") + api.Backend.ldap2.disconnect() def install_dirsrv_cert(self): diff --git a/ipaserver/install/kra.py b/ipaserver/install/kra.py index 3545b301a..3106e3551 100644 --- a/ipaserver/install/kra.py +++ b/ipaserver/install/kra.py @@ -100,7 +100,7 @@ def install(api, replica_config, options): replica_config.dirman_password) else: cafile = os.path.join(replica_config.dir, 'cacert.p12') - if not ipautil.file_exists(cafile): + if not os.path.isfile(cafile): raise RuntimeError( "Unable to clone KRA." " cacert.p12 file not found in replica file") diff --git a/ipaserver/install/krbinstance.py b/ipaserver/install/krbinstance.py index 30d8fc1a3..104761b28 100644 --- a/ipaserver/install/krbinstance.py +++ b/ipaserver/install/krbinstance.py @@ -502,8 +502,17 @@ class KrbInstance(service.Service): self._install_pkinit_ca_bundle() self.pkinit_enable() except RuntimeError as e: - logger.error("PKINIT certificate request failed: %s", e) - logger.error("Failed to configure PKINIT") + logger.warning("PKINIT certificate request failed: %s", e) + logger.warning("Failed to configure PKINIT") + + self.print_msg("Full PKINIT configuration did not succeed") + self.print_msg( + "The setup will only install bits " + "essential to the server functionality") + self.print_msg( + "You can enable PKINIT after the " + "setup completed using 'ipa-pkinit-manage'") + self.stop_tracking_certs() self.issue_selfsigned_pkinit_certs() diff --git a/ipaserver/install/opendnssecinstance.py b/ipaserver/install/opendnssecinstance.py index 0082b8f26..3909bd407 100644 --- a/ipaserver/install/opendnssecinstance.py +++ b/ipaserver/install/opendnssecinstance.py @@ -338,7 +338,7 @@ class OpenDNSSECInstance(service.Service): restore_list = [paths.OPENDNSSEC_CONF_FILE, paths.OPENDNSSEC_KASP_FILE, paths.SYSCONFIG_ODS, paths.OPENDNSSEC_ZONELIST_FILE] - if ipautil.file_exists(paths.OPENDNSSEC_KASP_DB): + if os.path.isfile(paths.OPENDNSSEC_KASP_DB): # force to export data cmd = [paths.IPA_ODS_EXPORTER, 'ipa-full-update'] diff --git a/ipaserver/install/replication.py b/ipaserver/install/replication.py index 516372f9d..8aae90c0a 100644 --- a/ipaserver/install/replication.py +++ b/ipaserver/install/replication.py @@ -1089,7 +1089,8 @@ class ReplicationManager(object): ['defaultNamingContext']) for dn,entry in res: if dn == "": - self.ad_suffix = entry['defaultNamingContext'][0] + ad_suffix = entry['defaultNamingContext'][0] + self.ad_suffix = ad_suffix.decode('utf-8') logger.info("AD Suffix is: %s", self.ad_suffix) if self.ad_suffix == "": raise RuntimeError("Failed to lookup AD's Ldap suffix") diff --git a/ipaserver/install/server/__init__.py b/ipaserver/install/server/__init__.py index 028a4aa60..b6c01d097 100644 --- a/ipaserver/install/server/__init__.py +++ b/ipaserver/install/server/__init__.py @@ -437,6 +437,11 @@ class ServerInstallInterface(ServerCertificateInstallInterface, "You cannot specify --external-ca-type without " "--external-ca") + if self.external_ca_profile and not self.external_ca: + raise RuntimeError( + "You cannot specify --external-ca-profile without " + "--external-ca") + if self.uninstalling: if (self.realm_name or self.admin_password or self.master_password): @@ -477,7 +482,7 @@ class ServerInstallInterface(ServerCertificateInstallInterface, "domain via the --domain option") else: - if not ipautil.file_exists(self.replica_file): + if not os.path.isfile(self.replica_file): raise RuntimeError( "Replica file %s does not exist" % self.replica_file) diff --git a/ipaserver/install/server/install.py b/ipaserver/install/server/install.py index fe41fc298..98577447d 100644 --- a/ipaserver/install/server/install.py +++ b/ipaserver/install/server/install.py @@ -100,7 +100,7 @@ def read_cache(dm_password): """ Returns a dict of cached answers or empty dict if no cache file exists. """ - if not ipautil.file_exists(paths.ROOT_IPA_CACHE): + if not os.path.isfile(paths.ROOT_IPA_CACHE): return {} top_dir = tempfile.mkdtemp("ipa") @@ -340,7 +340,7 @@ def install_check(installer): sstore = sysrestore.StateFile(SYSRESTORE_DIR_PATH) # This will override any settings passed in on the cmdline - if ipautil.file_exists(paths.ROOT_IPA_CACHE): + if os.path.isfile(paths.ROOT_IPA_CACHE): if options.dm_password is not None: dm_password = options.dm_password else: @@ -934,12 +934,8 @@ def install(installer): print("These files are required to create replicas. The password for " "these") print("files is the Directory Manager password") - else: - print("In order for Firefox autoconfiguration to work you will need to") - print("use a SSL signing certificate. See the IPA documentation for " - "more details.") - if ipautil.file_exists(paths.ROOT_IPA_CACHE): + if os.path.isfile(paths.ROOT_IPA_CACHE): os.remove(paths.ROOT_IPA_CACHE) diff --git a/ipaserver/install/server/replicainstall.py b/ipaserver/install/server/replicainstall.py index 9d251b5e9..39c776c88 100644 --- a/ipaserver/install/server/replicainstall.py +++ b/ipaserver/install/server/replicainstall.py @@ -68,7 +68,7 @@ def make_pkcs12_info(directory, cert_name, password_name): :return: a (full cert path, password) tuple, or None if cert is not found """ cert_path = os.path.join(directory, cert_name) - if ipautil.file_exists(cert_path): + if os.path.isfile(cert_path): password_file = os.path.join(directory, password_name) password = open(password_file).read().strip() return cert_path, password @@ -434,30 +434,27 @@ def promote_sssd(host_name): sssdconfig.import_config() domains = sssdconfig.list_active_domains() - ipa_domain = None - for name in domains: domain = sssdconfig.get_domain(name) try: hostname = domain.get_option('ipa_hostname') if hostname == host_name: - ipa_domain = domain + break except SSSDConfig.NoOptionError: continue - - if ipa_domain is None: - raise RuntimeError("Couldn't find IPA domain in sssd.conf") else: - domain.set_option('ipa_server', host_name) - domain.set_option('ipa_server_mode', True) - sssdconfig.save_domain(domain) - sssdconfig.write() + raise RuntimeError("Couldn't find IPA domain in sssd.conf") - sssd = services.service('sssd', api) - try: - sssd.restart() - except CalledProcessError: - logger.warning("SSSD service restart was unsuccessful.") + domain.set_option('ipa_server', host_name) + domain.set_option('ipa_server_mode', True) + sssdconfig.save_domain(domain) + sssdconfig.write() + + sssd = services.service('sssd', api) + try: + sssd.restart() + except CalledProcessError: + logger.warning("SSSD service restart was unsuccessful.") def promote_openldap_conf(hostname, master): @@ -712,7 +709,7 @@ def install_check(installer): installer._top_dir = config.top_dir installer._config = config - ca_enabled = ipautil.file_exists(os.path.join(config.dir, "cacert.p12")) + ca_enabled = os.path.isfile(os.path.join(config.dir, "cacert.p12")) # Create the management framework config file # Note: We must do this before bootstraping and finalizing ipalib.api create_ipa_conf(fstore, config, ca_enabled) @@ -723,7 +720,7 @@ def install_check(installer): installutils.verify_fqdn(config.master_host_name, options.no_host_dns) cafile = os.path.join(config.dir, "ca.crt") - if not ipautil.file_exists(cafile): + if not os.path.isfile(cafile): raise RuntimeError("CA cert file is not available. Please run " "ipa-replica-prepare to create a new replica file.") @@ -1099,7 +1096,7 @@ def promote_check(installer): ccache) cafile = paths.IPA_CA_CRT - if not ipautil.file_exists(cafile): + if not os.path.isfile(cafile): raise RuntimeError("CA cert file is not available! Please reinstall" "the client and try again.") diff --git a/ipaserver/install/server/upgrade.py b/ipaserver/install/server/upgrade.py index 185f2de91..5c0339219 100644 --- a/ipaserver/install/server/upgrade.py +++ b/ipaserver/install/server/upgrade.py @@ -925,7 +925,7 @@ def certificate_renewal_update(ca, ds, http): { 'cert-database': paths.PKI_TOMCAT_ALIAS_DIR, 'cert-nickname': 'auditSigningCert cert-pki-ca', - 'ca': 'dogtag-ipa-ca-renew-agent', + 'ca-name': 'dogtag-ipa-ca-renew-agent', 'cert-presave-command': template % 'stop_pkicad', 'cert-postsave-command': (template % 'renew_ca_cert "auditSigningCert cert-pki-ca"'), @@ -933,7 +933,7 @@ def certificate_renewal_update(ca, ds, http): { 'cert-database': paths.PKI_TOMCAT_ALIAS_DIR, 'cert-nickname': 'ocspSigningCert cert-pki-ca', - 'ca': 'dogtag-ipa-ca-renew-agent', + 'ca-name': 'dogtag-ipa-ca-renew-agent', 'cert-presave-command': template % 'stop_pkicad', 'cert-postsave-command': (template % 'renew_ca_cert "ocspSigningCert cert-pki-ca"'), @@ -941,7 +941,7 @@ def certificate_renewal_update(ca, ds, http): { 'cert-database': paths.PKI_TOMCAT_ALIAS_DIR, 'cert-nickname': 'subsystemCert cert-pki-ca', - 'ca': 'dogtag-ipa-ca-renew-agent', + 'ca-name': 'dogtag-ipa-ca-renew-agent', 'cert-presave-command': template % 'stop_pkicad', 'cert-postsave-command': (template % 'renew_ca_cert "subsystemCert cert-pki-ca"'), @@ -949,16 +949,16 @@ def certificate_renewal_update(ca, ds, http): { 'cert-database': paths.PKI_TOMCAT_ALIAS_DIR, 'cert-nickname': 'caSigningCert cert-pki-ca', - 'ca': 'dogtag-ipa-ca-renew-agent', + 'ca-name': 'dogtag-ipa-ca-renew-agent', 'cert-presave-command': template % 'stop_pkicad', 'cert-postsave-command': (template % 'renew_ca_cert "caSigningCert cert-pki-ca"'), - 'template-profile': '', + 'template-profile': None, }, { 'cert-database': paths.PKI_TOMCAT_ALIAS_DIR, 'cert-nickname': 'Server-Cert cert-pki-ca', - 'ca': 'dogtag-ipa-ca-renew-agent', + 'ca-name': 'dogtag-ipa-ca-renew-agent', 'cert-presave-command': template % 'stop_pkicad', 'cert-postsave-command': (template % 'renew_ca_cert "Server-Cert cert-pki-ca"'), @@ -966,23 +966,10 @@ def certificate_renewal_update(ca, ds, http): { 'cert-file': paths.RA_AGENT_PEM, 'key-file': paths.RA_AGENT_KEY, - 'ca': 'dogtag-ipa-ca-renew-agent', + 'ca-name': 'dogtag-ipa-ca-renew-agent', 'cert-presave-command': template % 'renew_ra_cert_pre', 'cert-postsave-command': template % 'renew_ra_cert', }, - { - 'cert-database': paths.HTTPD_ALIAS_DIR, - 'cert-nickname': 'Server-Cert', - 'ca': 'IPA', - 'cert-postsave-command': template % 'restart_httpd', - }, - { - 'cert-database': dsinstance.config_dirname(serverid), - 'cert-nickname': 'Server-Cert', - 'ca': 'IPA', - 'cert-postsave-command': - '%s %s' % (template % 'restart_dirsrv', serverid), - } ] logger.info("[Update certmonger certificate renewal configuration]") @@ -990,6 +977,34 @@ def certificate_renewal_update(ca, ds, http): logger.info('CA is not configured') return False + # Check the http server cert if issued by IPA + http_nickname = http.get_mod_nss_nickname() + http_db = certs.CertDB(api.env.realm, nssdir=paths.HTTPD_ALIAS_DIR) + if http_db.is_ipa_issued_cert(api, http_nickname): + requests.append( + { + 'cert-database': paths.HTTPD_ALIAS_DIR, + 'cert-nickname': http_nickname, + 'ca-name': 'IPA', + 'cert-postsave-command': template % 'restart_httpd', + } + ) + + # Check the ldap server cert if issued by IPA + ds_nickname = ds.get_server_cert_nickname(serverid) + ds_db_dirname = dsinstance.config_dirname(serverid) + ds_db = certs.CertDB(api.env.realm, nssdir=ds_db_dirname) + if ds_db.is_ipa_issued_cert(api, ds_nickname): + requests.append( + { + 'cert-database': ds_db_dirname[:-1], + 'cert-nickname': ds_nickname, + 'ca-name': 'IPA', + 'cert-postsave-command': + '%s %s' % (template % 'restart_dirsrv', serverid), + } + ) + db = certs.CertDB(api.env.realm, paths.PKI_TOMCAT_ALIAS_DIR) for nickname, _trust_flags in db.list_certs(): if nickname.startswith('caSigningCert cert-pki-ca '): @@ -997,7 +1012,7 @@ def certificate_renewal_update(ca, ds, http): { 'cert-database': paths.PKI_TOMCAT_ALIAS_DIR, 'cert-nickname': nickname, - 'ca': 'dogtag-ipa-ca-renew-agent', + 'ca-name': 'dogtag-ipa-ca-renew-agent', 'cert-presave-command': template % 'stop_pkicad', 'cert-postsave-command': (template % ('renew_ca_cert "%s"' % nickname)), @@ -1011,6 +1026,8 @@ def certificate_renewal_update(ca, ds, http): if request_id is None: break else: + logger.info("Certmonger certificate renewal configuration already " + "up-to-date") return False # Ok, now we need to stop tracking, then we can start tracking them @@ -1682,7 +1699,7 @@ def upgrade_configuration(): os.path.join(paths.USR_SHARE_IPA_DIR, "ipa-pki-proxy.conf"), add=True) else: - if ipautil.file_exists(paths.HTTPD_IPA_PKI_PROXY_CONF): + if os.path.isfile(paths.HTTPD_IPA_PKI_PROXY_CONF): os.remove(paths.HTTPD_IPA_PKI_PROXY_CONF) if subject_base: upgrade_file( @@ -1863,11 +1880,15 @@ def upgrade_configuration(): cainstance.ensure_ipa_authority_entry() set_sssd_domain_option('ipa_server_mode', 'True') + set_sssd_domain_option('ipa_server', api.env.host) sssdconfig = SSSDConfig.SSSDConfig() sssdconfig.import_config() sssd_enable_service(sssdconfig, 'ifp') + sssd = services.service('sssd', api) + sssd.restart() + krb = krbinstance.KrbInstance(fstore) krb.fqdn = fqdn krb.realm = api.env.realm @@ -1904,6 +1925,7 @@ def upgrade_configuration(): def upgrade_check(options): try: installutils.check_server_configuration() + tasks.check_ipv6_stack_enabled() except RuntimeError as e: logger.error("%s", e) sys.exit(1) @@ -1948,10 +1970,10 @@ def upgrade(): else: logger.info('Update complete, no data were modified') - # store new data version after upgrade - installutils.store_version() - print('Upgrading IPA services') logger.info('Upgrading the configuration of the IPA services') upgrade_configuration() logger.info('The IPA services were upgraded') + + # store new data version after upgrade + installutils.store_version() diff --git a/ipaserver/plugins/baseldap.py b/ipaserver/plugins/baseldap.py index 220067ac1..9050a18b4 100644 --- a/ipaserver/plugins/baseldap.py +++ b/ipaserver/plugins/baseldap.py @@ -715,7 +715,9 @@ class LDAPObject(Object): result = self.backend.get_entries( self.api.env.basedn, filter=filter, - attrs_list=['']) + attrs_list=[''], + size_limit=-1, # paged search will get everything anyway + paged_search=True) except errors.NotFound: result = [] diff --git a/ipaserver/plugins/baseuser.py b/ipaserver/plugins/baseuser.py index ef5585822..ea4cd9099 100644 --- a/ipaserver/plugins/baseuser.py +++ b/ipaserver/plugins/baseuser.py @@ -31,6 +31,7 @@ from .baseldap import ( LDAPAddAttributeViaOption, LDAPRemoveAttributeViaOption, add_missing_object_class) from ipaserver.plugins.service import (validate_realm, normalize_principal) +from ipaserver.plugins.config import check_fips_auth_opts from ipalib.request import context from ipalib import _ from ipalib.constants import PATTERN_GROUPUSER_NAME @@ -480,6 +481,7 @@ class baseuser_add(LDAPCreate): **options): assert isinstance(dn, DN) set_krbcanonicalname(entry_attrs) + check_fips_auth_opts(fips_mode=self.api.env.fips_mode, **options) self.obj.convert_usercertificate_pre(entry_attrs) def post_common_callback(self, ldap, dn, entry_attrs, *keys, **options): @@ -603,6 +605,7 @@ class baseuser_mod(LDAPUpdate): assert isinstance(dn, DN) add_sshpubkey_to_attrs_pre(self.context, attrs_list) + check_fips_auth_opts(fips_mode=self.api.env.fips_mode, **options) self.check_namelength(ldap, **options) self.check_mail(entry_attrs) diff --git a/ipaserver/plugins/cert.py b/ipaserver/plugins/cert.py index 202d92dfd..f40d0f943 100644 --- a/ipaserver/plugins/cert.py +++ b/ipaserver/plugins/cert.py @@ -24,7 +24,6 @@ import collections import datetime import logging from operator import attrgetter -import os import cryptography.x509 from cryptography.hazmat.primitives import hashes, serialization @@ -33,14 +32,14 @@ import six from ipalib import Command, Str, Int, Flag from ipalib import api from ipalib import errors, messages -from ipalib import pkcs10 from ipalib import x509 from ipalib import ngettext from ipalib.constants import IPA_CA_CN from ipalib.crud import Create, PKQuery, Retrieve, Search from ipalib.frontend import Method, Object from ipalib.parameters import ( - Bytes, Certificate, DateTime, DNParam, DNSNameParam, Principal + Bytes, Certificate, CertificateSigningRequest, DateTime, DNParam, + DNSNameParam, Principal ) from ipalib.plugable import Registry from .virtual import VirtualCommand @@ -254,22 +253,6 @@ def convert_pkidatetime(value): return x509.format_datetime(value) -def validate_csr(ugettext, csr): - """ - Ensure the CSR is base64-encoded and can be decoded by our PKCS#10 - parser. - """ - if api.env.context == 'cli': - # If we are passed in a pointer to a valid file on the client side - # escape and let the load_files() handle things - if csr and os.path.exists(csr): - return - try: - pkcs10.load_certificate_request(csr) - except (TypeError, ValueError) as e: - raise errors.CertificateOperationError(error=_('Failure decoding Certificate Signing Request: %s') % e) - - def normalize_serial_number(num): """ Convert a SN given in decimal or hexadecimal. @@ -616,11 +599,10 @@ class cert_request(Create, BaseCertMethod, VirtualCommand): attr_name = 'request' takes_args = ( - Str( - 'csr', validate_csr, + CertificateSigningRequest( + 'csr', label=_('CSR'), cli_name='csr_file', - noextrawhitespace=False, ), ) operation="request certificate" @@ -725,13 +707,7 @@ class cert_request(Create, BaseCertMethod, VirtualCommand): caacl_check(principal, ca, profile_id) try: - csr_obj = pkcs10.load_certificate_request(csr) - except ValueError as e: - raise errors.CertificateOperationError( - error=_("Failure decoding Certificate Signing Request: %s") % e) - - try: - ext_san = csr_obj.extensions.get_extension_for_oid( + ext_san = csr.extensions.get_extension_for_oid( cryptography.x509.oid.ExtensionOID.SUBJECT_ALTERNATIVE_NAME) except cryptography.x509.extensions.ExtensionNotFound: ext_san = None @@ -739,7 +715,7 @@ class cert_request(Create, BaseCertMethod, VirtualCommand): # Ensure that the DN in the CSR matches the principal # # We only look at the "most specific" CN value - cns = csr_obj.subject.get_attributes_for_oid( + cns = csr.subject.get_attributes_for_oid( cryptography.x509.oid.NameOID.COMMON_NAME) if len(cns) == 0: raise errors.ValidationError(name='csr', @@ -772,7 +748,7 @@ class cert_request(Create, BaseCertMethod, VirtualCommand): # check email address # # fail if any email addr from DN does not appear in ldap entry - email_addrs = csr_obj.subject.get_attributes_for_oid( + email_addrs = csr.subject.get_attributes_for_oid( cryptography.x509.oid.NameOID.EMAIL_ADDRESS) csr_emails = [attr.value for attr in email_addrs] if not _emails_are_valid(csr_emails, @@ -888,7 +864,7 @@ class cert_request(Create, BaseCertMethod, VirtualCommand): # re-serialise to PEM, in case the user-supplied data has # extraneous material that will cause Dogtag to freak out # keep it as string not bytes, it is required later - csr_pem = csr_obj.public_bytes( + csr_pem = csr.public_bytes( serialization.Encoding.PEM).decode('utf-8') result = self.Backend.ra.request_certificate( csr_pem, profile_id, ca_id, request_type=request_type) @@ -1579,6 +1555,7 @@ class cert_find(Search, CertMethod): truncated = bool(truncated) + ca_enabled = getattr(context, 'ca_enabled') for entry in entries: for attr in ('usercertificate', 'usercertificate;binary'): for cert in entry.get(attr, []): @@ -1587,7 +1564,12 @@ class cert_find(Search, CertMethod): obj = result[cert_key] except KeyError: obj = {'serial_number': cert.serial_number} - if not pkey_only and all: + if not pkey_only and (all or not ca_enabled): + # Retrieving certificate details is now deferred + # until after all certificates are collected. + # For the case of CA-less we need to keep + # the certificate because getting it again later + # would require unnecessary LDAP searches. obj['certificate'] = ( base64.b64encode( cert.public_bytes(x509.Encoding.DER)) @@ -1604,6 +1586,11 @@ class cert_find(Search, CertMethod): def execute(self, criteria=None, all=False, raw=False, pkey_only=False, no_members=True, timelimit=None, sizelimit=None, **options): + # Store ca_enabled status in the context to save making the API + # call multiple times. + ca_enabled = self.api.Command.ca_is_enabled()['result'] + setattr(context, 'ca_enabled', ca_enabled) + if 'cacn' in options: ca_obj = api.Command.ca_show(options['cacn'])['result'] ca_sdn = unicode(ca_obj['ipacasubjectdn'][0]) @@ -1658,7 +1645,8 @@ class cert_find(Search, CertMethod): if not pkey_only: ca_objs = {} - ra = self.api.Backend.ra + if ca_enabled: + ra = self.api.Backend.ra for key, obj in six.iteritems(result): if all and 'cacn' in obj: @@ -1683,6 +1671,12 @@ class cert_find(Search, CertMethod): if not raw: self.obj._parse(obj, all) + if not ca_enabled and not all: + # For the case of CA-less don't display the full + # certificate unless requested. It is kept in the + # entry from _ldap_search() so its attributes can + # be retrieved. + obj.pop('certificate', None) self.obj._fill_owners(obj) result = list(six.itervalues(result)) diff --git a/ipaserver/plugins/config.py b/ipaserver/plugins/config.py index ce15e6096..c9033fa8e 100644 --- a/ipaserver/plugins/config.py +++ b/ipaserver/plugins/config.py @@ -85,6 +85,20 @@ EXAMPLES: register = Registry() + +def check_fips_auth_opts(fips_mode, **options): + """ + OTP and RADIUS are not allowed in FIPS mode since they use MD5 + checksums (OTP uses our RADIUS responder daemon ipa-otpd). + """ + if 'ipauserauthtype' in options and fips_mode: + if ('otp' in options['ipauserauthtype'] or + 'radius' in options['ipauserauthtype']): + raise errors.InvocationError( + 'OTP and RADIUS authentication in FIPS is ' + 'not yet supported') + + @register() class config(LDAPObject): """ @@ -398,6 +412,8 @@ class config_mod(LDAPUpdate): def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options): assert isinstance(dn, DN) + check_fips_auth_opts(fips_mode=self.api.env.fips_mode, **options) + if 'ipadefaultprimarygroup' in entry_attrs: group=entry_attrs['ipadefaultprimarygroup'] try: diff --git a/ipaserver/plugins/dns.py b/ipaserver/plugins/dns.py index 439e00def..21af74095 100644 --- a/ipaserver/plugins/dns.py +++ b/ipaserver/plugins/dns.py @@ -2920,7 +2920,7 @@ class dnszone_find(DNSZoneBase_find): if options.get('forward_only', False): search_kw = {} search_kw['idnsname'] = [revzone.ToASCII() for revzone in - REVERSE_DNS_ZONES.keys()] + REVERSE_DNS_ZONES] rev_zone_filter = ldap.make_filter(search_kw, rules=ldap.MATCH_NONE, exact=False, @@ -3094,7 +3094,7 @@ class dnsrecord(LDAPObject): if not zone_len: allowed_zones = ', '.join([unicode(revzone) for revzone in - REVERSE_DNS_ZONES.keys()]) + REVERSE_DNS_ZONES]) raise errors.ValidationError(name='ptrrecord', error=unicode(_('Reverse zone for PTR record should be a sub-zone of one the following fully qualified domains: %s') % allowed_zones)) @@ -3206,7 +3206,7 @@ class dnsrecord(LDAPObject): def postprocess_record(self, record, **options): if options.get('structured', False): - for attr in record.keys(): + for attr in tuple(record.keys()): # attributes in LDAPEntry may not be normalized attr = attr.lower() try: diff --git a/ipaserver/plugins/dogtag.py b/ipaserver/plugins/dogtag.py index f258ad7ba..13b3c507b 100644 --- a/ipaserver/plugins/dogtag.py +++ b/ipaserver/plugins/dogtag.py @@ -248,7 +248,6 @@ import time import contextlib import six -from six.moves import urllib from ipalib import Backend, api from ipapython.dn import DN @@ -1904,36 +1903,33 @@ class ra(rabase.rabase, RestClient): e = etree.SubElement(page, opt) e.text = str(booloptions[opt]).lower() - payload = etree.tostring(doc, pretty_print=False, xml_declaration=True, encoding='UTF-8') + payload = etree.tostring(doc, pretty_print=False, + xml_declaration=True, encoding='UTF-8') logger.debug('%s.find(): request: %s', type(self).__name__, payload) - url = 'http://%s/ca/rest/certs/search?size=%d' % ( - ipautil.format_netloc(self.ca_host, 80), - options.get('sizelimit', 0x7fffffff)) + # pylint: disable=unused-variable + status, _, data = dogtag.https_request( + self.ca_host, 443, + url='/ca/rest/certs/search?size=%d' % ( + options.get('sizelimit', 0x7fffffff)), + client_certfile=None, + client_keyfile=None, + cafile=self.ca_cert, + method='POST', + headers={'Accept-Encoding': 'gzip, deflate', + 'User-Agent': 'IPA', + 'Content-Type': 'application/xml'}, + body=payload + ) - opener = urllib.request.build_opener() - opener.addheaders = [('Accept-Encoding', 'gzip, deflate'), - ('User-Agent', 'IPA')] - - req = urllib.request.Request(url=url, data=payload, headers={'Content-Type': 'application/xml'}) - try: - response = opener.open(req) - except urllib.error.HTTPError as e: - logger.debug('HTTP Response code: %d', e.getcode()) - if e.getcode() == 501: - self.raise_certificate_operation_error('find', - detail=_('find not supported on CAs upgraded from 9 to 10')) + if status != 200: self.raise_certificate_operation_error('find', - detail=e.msg) - except urllib.error.URLError as e: - self.raise_certificate_operation_error('find', - detail=e.reason) + detail=status) - data = response.readlines() logger.debug('%s.find(): response: %s', type(self).__name__, data) parser = etree.XMLParser() try: - doc = etree.fromstring(data[0], parser) + doc = etree.fromstring(data, parser) except etree.XMLSyntaxError as e: self.raise_certificate_operation_error('find', detail=e.msg) diff --git a/ipaserver/plugins/group.py b/ipaserver/plugins/group.py index 1fb092d5f..5e9427239 100644 --- a/ipaserver/plugins/group.py +++ b/ipaserver/plugins/group.py @@ -439,7 +439,7 @@ class group_mod(LDAPUpdate): # using --setattr. if call_func.__name__ == 'update_entry': if isinstance(exc, errors.ObjectclassViolation): - if 'gidNumber' in exc.message and 'posixGroup' in exc.message: + if 'gidNumber' in str(exc) and 'posixGroup' in str(exc): raise errors.RequirementError(name='gidnumber') raise exc diff --git a/ipaserver/plugins/idviews.py b/ipaserver/plugins/idviews.py index 263a35a84..a68b03915 100644 --- a/ipaserver/plugins/idviews.py +++ b/ipaserver/plugins/idviews.py @@ -547,7 +547,8 @@ def resolve_object_to_anchor(ldap, obj_type, obj, fallback_to_ldap): 'group': 'ipausergroup', }[obj_type] - if required_objectclass not in entry['objectclass']: + if not api.Object[obj_type].has_objectclass(entry['objectclass'], + required_objectclass): raise errors.ValidationError( name=_('IPA object'), error=_('system IPA objects (e.g. system groups, user ' @@ -790,12 +791,10 @@ class baseidoverride_del(LDAPDelete): except errors.NotFound: self.obj.handle_not_found(*keys) - required_object_classes = set(self.obj.object_class) - actual_object_classes = set(entry['objectclass']) - # If not, treat it as a failed search - if not required_object_classes.issubset(actual_object_classes): - self.obj.handle_not_found(*keys) + for required_oc in self.obj.object_class: + if not self.obj.has_objectclass(entry['objectclass'], required_oc): + self.obj.handle_not_found(*keys) return dn diff --git a/ipaserver/plugins/ldap2.py b/ipaserver/plugins/ldap2.py index 358b3f0ef..104406798 100644 --- a/ipaserver/plugins/ldap2.py +++ b/ipaserver/plugins/ldap2.py @@ -38,20 +38,7 @@ from ipapython.dn import DN from ipapython.ipaldap import (LDAPClient, AUTOBIND_AUTO, AUTOBIND_ENABLED, AUTOBIND_DISABLED) - -try: - from ldap.controls.simple import GetEffectiveRightsControl -except ImportError: - """ - python-ldap 2.4.x introduced a new API for effective rights control, which - needs to be used or otherwise bind dn is not passed correctly. The following - class is created for backward compatibility with python-ldap 2.3.x. - Relevant BZ: https://bugzilla.redhat.com/show_bug.cgi?id=802675 - """ - from ldap.controls import LDAPControl - class GetEffectiveRightsControl(LDAPControl): - def __init__(self, criticality, authzId=None): - LDAPControl.__init__(self, '1.3.6.1.4.1.42.2.27.9.5.2', criticality, authzId) +from ldap.controls.simple import GetEffectiveRightsControl from ipalib import Registry, errors, _ from ipalib.crud import CrudBackend @@ -353,7 +340,7 @@ class ldap2(CrudBackend, LDAPClient): attrs = self.get_effective_rights(dn, ["*"]) if 'entrylevelrights' in attrs: - entry_rights = attrs['entrylevelrights'][0].decode('UTF-8') + entry_rights = attrs['entrylevelrights'][0] if 'd' in entry_rights: return True @@ -366,7 +353,7 @@ class ldap2(CrudBackend, LDAPClient): assert isinstance(dn, DN) attrs = self.get_effective_rights(dn, ["*"]) if 'entrylevelrights' in attrs: - entry_rights = attrs['entrylevelrights'][0].decode('UTF-8') + entry_rights = attrs['entrylevelrights'][0] if 'a' in entry_rights: return True diff --git a/ipaserver/plugins/pkinit.py b/ipaserver/plugins/pkinit.py index 970f955c5..885393846 100644 --- a/ipaserver/plugins/pkinit.py +++ b/ipaserver/plugins/pkinit.py @@ -93,7 +93,9 @@ class pkinit_status(Search): else: servers = ipa_master_config['ipa_master_server'] - pkinit_servers = ipa_master_config['pkinit_server_server'] + pkinit_servers = ipa_master_config.get('pkinit_server_server') + if pkinit_servers is None: + return for s in servers: pkinit_status = { @@ -121,6 +123,7 @@ class pkinit_status(Search): if server is not None: self.api.Object.server_role.ensure_master_exists(server) - result = sorted(self.get_pkinit_status(server, status)) + result = sorted(self.get_pkinit_status(server, status), + key=lambda d: d.get('server_server')) return dict(result=result, count=len(result), truncated=False) diff --git a/ipaserver/plugins/schema.py b/ipaserver/plugins/schema.py index 1dbbec5f0..cc1c2a5f7 100644 --- a/ipaserver/plugins/schema.py +++ b/ipaserver/plugins/schema.py @@ -92,6 +92,9 @@ class BaseMetaObject(Object): args, criteria = self._split_search_args(*args) result = self._search(*args, **kwargs) + if not result: + return tuple() + result = (self._get_obj(r, **kwargs) for r in result) if criteria: @@ -125,8 +128,8 @@ class BaseMetaSearch(Search): "(\"%s\")") % 'name', ) - def execute(self, criteria=None, **options): - result = list(self.obj.search(criteria, **options)) + def execute(self, command, criteria=None, **options): + result = list(self.obj.search(command, criteria, **options)) return dict(result=result, count=len(result), truncated=False) @@ -377,8 +380,10 @@ class topic_(MetaObject): 'full_name': topic_full_name, } topics.append(topic) + # pylint: disable=unsupported-assignment-operation topics_by_key[topic_name] = topic topics_by_key[topic_full_name] = topic + # pylint: enable=unsupported-assignment-operation for package in self.api.packages: module_name = '.'.join((package.__name__, topic_name)) @@ -624,16 +629,28 @@ class param(BaseParam): return obj def _retrieve(self, metaobjectfull_name, name, **kwargs): + found = False + try: metaobj = self.api.Command[metaobjectfull_name] - plugin = self.api.Object['command'] except KeyError: - metaobj = self.api.Object[metaobjectfull_name] - plugin = self.api.Object['class'] + raise errors.NotFound( + reason=_("%(metaobject)s: %(oname)s not found") % { + 'metaobject': metaobjectfull_name, 'oname': self.name, + } + ) - for param in plugin._iter_params(metaobj): - if param.name == name: - return metaobj, param + if 'command' in self.api.Object: + plugin = self.api.Object['command'] + found = True + elif 'class' in self.api.Object: + plugin = self.api.Object['class'] + found = True + + if found: + for param in plugin._iter_params(metaobj): + if param.name == name: + return metaobj, param raise errors.NotFound( reason=_("%(pkey)s: %(oname)s not found") % { @@ -646,8 +663,11 @@ class param(BaseParam): metaobj = self.api.Command[metaobjectfull_name] plugin = self.api.Object['command'] except KeyError: - metaobj = self.api.Object[metaobjectfull_name] - plugin = self.api.Object['class'] + try: + metaobj = self.api.Object[metaobjectfull_name] + plugin = self.api.Object['class'] + except KeyError: + return tuple() return ((metaobj, param) for param in plugin._iter_params(metaobj)) @@ -714,6 +734,13 @@ class output(BaseParam): return obj def _retrieve(self, commandfull_name, name, **kwargs): + if not commandfull_name in self.api.Command: + raise errors.NotFound( + reason=_("%(command_name)s: %(oname)s not found") % { + 'command_name': commandfull_name, 'oname': self.name, + } + ) + cmd = self.api.Command[commandfull_name] try: return (cmd, cmd.output[name]) @@ -725,6 +752,9 @@ class output(BaseParam): ) def _search(self, commandfull_name, **kwargs): + if not commandfull_name in self.api.Command: + return None + cmd = self.api.Command[commandfull_name] return ((cmd, output) for output in cmd.output()) diff --git a/ipaserver/plugins/serverroles.py b/ipaserver/plugins/serverroles.py index b41fb45d1..0abf48ae5 100644 --- a/ipaserver/plugins/serverroles.py +++ b/ipaserver/plugins/serverroles.py @@ -46,6 +46,7 @@ from ipalib import errors, _ from ipalib.backend import Backend from ipalib.plugable import Registry from ipaserver.servroles import (attribute_instances, ENABLED, role_instances) +from ipaserver.servroles import SingleValuedServerAttribute if six.PY3: @@ -142,6 +143,10 @@ class serverroles(Backend): attr_value = attr.get(self.api) if attr_value: + # attr can be a SingleValuedServerAttribute + # in this case, the API expects a value, not a list of values + if isinstance(attr, SingleValuedServerAttribute): + attr_value = attr_value[0] result.update({name: attr_value}) return result @@ -149,6 +154,13 @@ class serverroles(Backend): def config_update(self, **attrs_values): for attr, value in attrs_values.items(): try: + # when the attribute is single valued, it will be stored + # in a SingleValuedServerAttribute. The set method expects + # a list containing a single value. + # We need to convert value to a list containing value + if isinstance(self.attributes[attr], + SingleValuedServerAttribute): + value = [value] self.attributes[attr].set(self.api, value) except KeyError: raise errors.NotFound( diff --git a/ipaserver/plugins/sudocmd.py b/ipaserver/plugins/sudocmd.py index a20747723..6d0409667 100644 --- a/ipaserver/plugins/sudocmd.py +++ b/ipaserver/plugins/sudocmd.py @@ -126,7 +126,7 @@ class sudocmd(LDAPObject): def get_dn(self, *keys, **options): if keys[-1].endswith('.'): - keys[-1] = keys[-1][:-1] + keys = (keys[:-1] + (keys[-1][:-1], )) dn = super(sudocmd, self).get_dn(*keys, **options) try: self.backend.get_entry(dn, ['']) diff --git a/ipaserver/plugins/trust.py b/ipaserver/plugins/trust.py index 0ef290ce6..835c6405b 100644 --- a/ipaserver/plugins/trust.py +++ b/ipaserver/plugins/trust.py @@ -45,6 +45,13 @@ from ipalib import errors from ipalib import output from ldap import SCOPE_SUBTREE from time import sleep +from ipaserver.dcerpc_common import (TRUST_ONEWAY, + TRUST_BIDIRECTIONAL, + TRUST_JOIN_EXTERNAL, + LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE, + trust_type_string, + trust_direction_string, + trust_status_string) if six.PY3: unicode = str @@ -64,9 +71,6 @@ except Exception as e: if api.env.in_server and api.env.context in ['lite', 'server']: try: import ipaserver.dcerpc - from ipaserver.dcerpc import (TRUST_ONEWAY, - TRUST_BIDIRECTIONAL, - TRUST_JOIN_EXTERNAL) import dbus import dbus.mainloop.glib _bindings_installed = True @@ -78,10 +82,10 @@ Cross-realm trusts Manage trust relationship between IPA and Active Directory domains. -In order to allow users from a remote domain to access resources in IPA -domain, trust relationship needs to be established. Currently IPA supports -only trusts between IPA and Active Directory domains under control of Windows -Server 2008 or later, with functional level 2008 or later. +In order to allow users from a remote domain to access resources in IPA domain, +trust relationship needs to be established. Currently IPA supports only trusts +between IPA and Active Directory domains under control of Windows Server 2008 +or later, with functional level 2008 or later. Please note that DNS on both IPA and Active Directory domain sides should be configured properly to discover each other. Trust relationship relies on @@ -92,7 +96,8 @@ Examples: 1. Establish cross-realm trust with Active Directory using AD administrator credentials: - ipa trust-add --type=ad --admin --password + ipa trust-add --type=ad --admin \ + --password 2. List all existing trust relationships: @@ -107,35 +112,39 @@ Examples: ipa trust-del Once trust relationship is established, remote users will need to be mapped -to local POSIX groups in order to actually use IPA resources. The mapping should -be done via use of external membership of non-POSIX group and then this group -should be included into one of local POSIX groups. +to local POSIX groups in order to actually use IPA resources. The mapping +should be done via use of external membership of non-POSIX group and then +this group should be included into one of local POSIX groups. Example: -1. Create group for the trusted domain admins' mapping and their local POSIX group: +1. Create group for the trusted domain admins' mapping and their local POSIX +group: - ipa group-add --desc=' admins external map' ad_admins_external --external + ipa group-add --desc=' admins external map' \ + ad_admins_external --external ipa group-add --desc=' admins' ad_admins -2. Add security identifier of Domain Admins of the to the ad_admins_external - group: +2. Add security identifier of Domain Admins of the to the + ad_admins_external group: ipa group-add-member ad_admins_external --external 'AD\\Domain Admins' -3. Allow members of ad_admins_external group to be associated with ad_admins POSIX group: +3. Allow members of ad_admins_external group to be associated with + ad_admins POSIX group: ipa group-add-member ad_admins --groups ad_admins_external -4. List members of external members of ad_admins_external group to see their SIDs: +4. List members of external members of ad_admins_external group to see + their SIDs: ipa group-show ad_admins_external GLOBAL TRUST CONFIGURATION -When IPA AD trust subpackage is installed and ipa-adtrust-install is run, -a local domain configuration (SID, GUID, NetBIOS name) is generated. These +When IPA AD trust subpackage is installed and ipa-adtrust-install is run, a +local domain configuration (SID, GUID, NetBIOS name) is generated. These identifiers are then used when communicating with a trusted domain of the particular type. @@ -144,11 +153,11 @@ particular type. ipa trustconfig-show --type ad 2. Modify global configuration for all trusts of Active Directory type and set - a different fallback primary group (fallback primary group GID is used as - a primary user GID if user authenticating to IPA domain does not have any other - primary GID already set): + a different fallback primary group (fallback primary group GID is used as a + primary user GID if user authenticating to IPA domain does not have any + other primary GID already set): - ipa trustconfig-mod --type ad --fallback-primary-group "alternative AD group" + ipa trustconfig-mod --type ad --fallback-primary-group "another AD group" 3. Change primary fallback group back to default hidden group (any group with posixGroup object class is allowed): @@ -160,28 +169,14 @@ logger = logging.getLogger(__name__) register = Registry() -# Trust type is a combination of ipanttrusttype and ipanttrustattributes -# We shift trust attributes by 3 bits to left so bit 0 becomes bit 3 and -# 2+(1 << 3) becomes 10. -_trust_type_dict = {1 : _('Non-Active Directory domain'), - 2 : _('Active Directory domain'), - 3 : _('RFC4120-compliant Kerberos realm'), - 10: _('Non-transitive external trust to a domain in another Active Directory forest')} - -_trust_direction_dict = {1 : _('Trusting forest'), - 2 : _('Trusted forest'), - 3 : _('Two-way trust')} -_trust_status_dict = {True : _('Established and verified'), - False : _('Waiting for confirmation by remote side')} -_trust_type_dict_unknown = _('Unknown') - -_trust_type_option = StrEnum('trust_type', - cli_name='type', - label=_('Trust type (ad for Active Directory, default)'), - values=(u'ad',), - default=u'ad', - autofill=True, - ) +_trust_type_option = StrEnum( + 'trust_type', + cli_name='type', + label=_('Trust type (ad for Active Directory, default)'), + values=(u'ad',), + default=u'ad', + autofill=True, + ) DEFAULT_RANGE_SIZE = 200000 @@ -190,31 +185,6 @@ DBUS_IFACE_TRUST = 'com.redhat.idm.trust' CRED_STYLE_SAMBA = 1 CRED_STYLE_KERBEROS = 2 -LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE = 0x00000001 - -def trust_type_string(level, attrs): - """ - Returns a string representing a type of the trust. The original field is an enum: - LSA_TRUST_TYPE_DOWNLEVEL = 0x00000001, - LSA_TRUST_TYPE_UPLEVEL = 0x00000002, - LSA_TRUST_TYPE_MIT = 0x00000003 - """ - transitive = int(attrs) & LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE - string = _trust_type_dict.get(int(level) | (transitive << 3), _trust_type_dict_unknown) - return unicode(string) - -def trust_direction_string(level): - """ - Returns a string representing a direction of the trust. The original field is a bitmask taking two bits in use - LSA_TRUST_DIRECTION_INBOUND = 0x00000001, - LSA_TRUST_DIRECTION_OUTBOUND = 0x00000002 - """ - string = _trust_direction_dict.get(int(level), _trust_type_dict_unknown) - return unicode(string) - -def trust_status_string(level): - string = _trust_status_dict.get(level, _trust_type_dict_unknown) - return unicode(string) def make_trust_dn(env, trust_type, dn): assert isinstance(dn, DN) @@ -223,6 +193,7 @@ def make_trust_dn(env, trust_type, dn): return DN(dn, container_dn) return dn + def find_adtrust_masters(ldap, api): """ Returns a list of names of IPA servers with ADTRUST component configured. @@ -238,6 +209,7 @@ def find_adtrust_masters(ldap, api): return [entry.dn[1].value for entry in entries] + def verify_samba_component_presence(ldap, api): """ Verifies that Samba is installed and configured on this particular master. @@ -271,7 +243,7 @@ def verify_samba_component_presence(ldap, api): # First check for packages missing elif not _bindings_installed: - error_message=_( + error_message = _( 'Cannot perform the selected command without Samba 4 support ' 'installed. Make sure you have installed server-trust-ad ' 'sub-package of IPA.' @@ -281,7 +253,7 @@ def verify_samba_component_presence(ldap, api): # Packages present, but ADTRUST instance is not configured elif not adtrust_present: - error_message=_( + error_message = _( 'Cannot perform the selected command without Samba 4 instance ' 'configured on this machine. Make sure you have run ' 'ipa-adtrust-install on this server.' @@ -301,7 +273,8 @@ def generate_creds(trustinstance, style, **options): **options -- options with realm_admin and realm_passwd keys Result: - a string representing credentials with first % separating username and password + a string representing credentials with first % separating + username and password None is returned if realm_passwd key returns nothing from options """ creds = None @@ -318,15 +291,18 @@ def generate_creds(trustinstance, style, **options): elif style == CRED_STYLE_KERBEROS: sp = admin_name.split('\\') if len(sp) > 1: - sp = [sp[1]] + sp = [sp[1]] else: - sp = admin_name.split(sep) + sp = admin_name.split(sep) if len(sp) == 1: - sp.append(trustinstance.remote_domain.info['dns_domain'].upper()) + sp.append( + trustinstance.remote_domain.info['dns_domain'].upper() + ) creds = u"{name}%{password}".format(name=sep.join(sp), password=password) return creds + def add_range(myapi, trustinstance, range_name, dom_sid, *keys, **options): """ First, we try to derive the parameters of the ID range based on the @@ -357,7 +333,7 @@ def add_range(myapi, trustinstance, range_name, dom_sid, *keys, **options): # CN=ypservers,CN=ypServ30,CN=RpcServices,CN=System info_filter = '(objectClass=msSFU30DomainInfo)' info_dn = DN('CN=ypservers,CN=ypServ30,CN=RpcServices,CN=System')\ - + basedn + + basedn # Get the domain validator domain_validator = ipaserver.dcerpc.DomainValidator(myapi) @@ -370,7 +346,8 @@ def add_range(myapi, trustinstance, range_name, dom_sid, *keys, **options): creds = None if trustinstance: # Re-use AD administrator credentials if they were provided - creds = generate_creds(trustinstance, style=CRED_STYLE_KERBEROS, **options) + creds = generate_creds(trustinstance, + style=CRED_STYLE_KERBEROS, **options) if creds: domain_validator._admin_creds = creds # KDC might not get refreshed data at the first time, @@ -405,7 +382,7 @@ def add_range(myapi, trustinstance, range_name, dom_sid, *keys, **options): base_id = int(info.get('msSFU30OrderNumber')[0]) range_size = (1 + (max_id - base_id) // DEFAULT_RANGE_SIZE)\ - * DEFAULT_RANGE_SIZE + * DEFAULT_RANGE_SIZE # Second, options given via the CLI options take precedence to discovery if options.get('range_type', None): @@ -454,8 +431,11 @@ def fetch_trusted_domains_over_dbus(myapi, forest_name): _stdout = '' _stderr = '' bus = dbus.SystemBus() - intf = bus.get_object(DBUS_IFACE_TRUST,"/", follow_name_owner_changes=True) - fetch_domains_method = intf.get_dbus_method('fetch_domains', dbus_interface=DBUS_IFACE_TRUST) + intf = bus.get_object(DBUS_IFACE_TRUST, "/", + follow_name_owner_changes=True) + fetch_domains_method = intf.get_dbus_method( + 'fetch_domains', + dbus_interface=DBUS_IFACE_TRUST) (_ret, _stdout, _stderr) = fetch_domains_method(forest_name) except dbus.DBusException as e: logger.error('Failed to call %s.fetch_domains helper.' @@ -465,11 +445,14 @@ def fetch_trusted_domains_over_dbus(myapi, forest_name): forest_name, _ret) logger.error('Standard output from the helper:\n%s---\n', _stdout) logger.error('Error output from the helper:\n%s--\n', _stderr) - raise errors.ServerCommandError(server=myapi.env.host, - error=_('Fetching domains from trusted forest failed. ' - 'See details in the error_log')) + raise errors.ServerCommandError( + server=myapi.env.host, + error=_('Fetching domains from trusted forest failed. ' + 'See details in the error_log') + ) return + @register() class trust(LDAPObject): """ @@ -576,8 +559,8 @@ class trust(LDAPObject): continue for value in values: if not ipaserver.dcerpc.is_sid_valid(value): - raise errors.ValidationError(name=attr, - error=_("invalid SID: %(value)s") % dict(value=value)) + err = unicode(_("invalid SID: {SID}")).format(SID=value) + raise errors.ValidationError(name=attr, error=err) def get_dn(self, *keys, **kwargs): trust_type = kwargs.get('trust_type') @@ -635,11 +618,11 @@ class trust(LDAPObject): pass else: for entry in entries: - add_message( + add_message( options['version'], result, BrokenTrust(domain=entry.single_value['cn']) - ) + ) @register() @@ -656,12 +639,17 @@ Only trusts to Active Directory domains are supported right now. The command can be safely run multiple times against the same domain, this will cause change to trust relationship credentials on both sides. + +Note that if the command was previously run with a specific range type, +or with automatic detection of the range type, and you want to configure a +different range type, you may need to delete first the ID range using +ipa idrange-del before retrying the command with the desired range type. ''') range_types = { u'ipa-ad-trust': unicode(_('Active Directory domain range')), u'ipa-ad-trust-posix': unicode(_('Active Directory trust range with ' - 'POSIX attributes')), + 'POSIX attributes')), } takes_options = LDAPCreate.takes_options + ( @@ -759,9 +747,10 @@ sides. trust_filter = "cn=%s" % result['value'] trusts, _truncated = ldap.find_entries( - base_dn=DN(self.api.env.container_trusts, self.api.env.basedn), - filter=trust_filter, - attrs_list=attrs_list) + base_dn=DN(self.api.env.container_trusts, self.api.env.basedn), + filter=trust_filter, + attrs_list=attrs_list + ) result['result'] = entry_to_dict(trusts[0], **options) @@ -770,10 +759,11 @@ sides. # Note that add_new_domains_from_trust will add needed ranges for # the algorithmic ID mapping case. if (options.get('trust_type') == u'ad' and - options.get('trust_secret') is None): + options.get('trust_secret') is None): + if options.get('bidirectional') == True: - # Bidirectional trust allows us to use cross-realm TGT, so we can - # run the call under original user's credentials + # Bidirectional trust allows us to use cross-realm TGT, + # so we can run the call under original user's credentials res = fetch_domains_from_trust(self.api, self.trustinstance, **options) add_new_domains_from_trust( @@ -829,7 +819,9 @@ sides. # If domain name and realm does not match, IPA server is not be able # to establish trust with Active Directory. - realm_not_matching_domain = (self.api.env.domain.upper() != self.api.env.realm) + realm_not_matching_domain = ( + self.api.env.domain.upper() != self.api.env.realm + ) if options['trust_type'] == u'ad' and realm_not_matching_domain: raise errors.ValidationError( @@ -956,11 +948,12 @@ sides. ) if range_type and range_type != old_range_type: - raise errors.ValidationError(name=_('range type change'), - error=_('ID range for the trusted domain already exists, ' - 'but it has a different type. Please remove the ' - 'old range manually, or do not enforce type ' - 'via --range-type option.')) + raise errors.ValidationError( + name=_('range type change'), + error=_('ID range for the trusted domain already ' + 'exists, but it has a different type. Please ' + 'remove the old range manually, or do not ' + 'enforce type via --range-type option.')) return old_range, range_name, dom_sid @@ -995,33 +988,55 @@ sides. trust_type ) except errors.NotFound: - error_message=_("Unable to resolve domain controller for '%s' domain. ") % (keys[-1]) - instructions=[] + _message = _("Unable to resolve domain controller for " + "{domain} domain. ") + error_message = unicode(_message).format(domain=keys[-1]) + instructions = [] + if dns_container_exists(self.obj.backend): try: - dns_zone = self.api.Command.dnszone_show(keys[-1])['result'] - if ('idnsforwardpolicy' in dns_zone) and dns_zone['idnsforwardpolicy'][0] == u'only': - instructions.append(_("Forward policy is defined for it in IPA DNS, " - "perhaps forwarder points to incorrect host?")) + dns_zone = self.api.Command.dnszone_show( + keys[-1])['result'] + + if (('idnsforwardpolicy' in dns_zone) and + dns_zone['idnsforwardpolicy'][0] == u'only'): + + instructions.append( + _("Forward policy is defined for it in " + "IPA DNS, perhaps forwarder points to " + "incorrect host?") + ) except (errors.NotFound, KeyError): - instructions.append(_("IPA manages DNS, please verify " - "your DNS configuration and " - "make sure that service records " - "of the '%(domain)s' domain can " - "be resolved. Examples how to " - "configure DNS with CLI commands " - "or the Web UI can be found in " - "the documentation. " ) % - dict(domain=keys[-1])) + _instruction = _( + "IPA manages DNS, please verify your DNS " + "configuration and make sure that service " + "records of the '{domain}' domain can be " + "resolved. Examples how to configure DNS " + "with CLI commands or the Web UI can be " + "found in the documentation. " + ) + instructions.append( + unicode(_instruction).format(domain=keys[-1]) + ) else: - instructions.append(_("Since IPA does not manage DNS records, ensure DNS " - "is configured to resolve '%(domain)s' domain from " - "IPA hosts and back.") % dict(domain=keys[-1])) - raise errors.NotFound(reason=error_message, instructions=instructions) + _instruction = _( + "Since IPA does not manage DNS records, ensure " + "DNS is configured to resolve '{domain}' " + "domain from IPA hosts and back." + ) + instructions.append( + unicode(_instruction).format(domain=keys[-1]) + ) + raise errors.NotFound( + reason=error_message, + instructions=instructions + ) if result is None: - raise errors.ValidationError(name=_('AD Trust setup'), - error=_('Unable to verify write permissions to the AD')) + raise errors.ValidationError( + name=_('AD Trust setup'), + error=_('Unable to verify write permissions to the AD') + ) ret = dict( value=pkey_to_value( @@ -1058,12 +1073,14 @@ sides. error=_('Not enough arguments specified to perform trust ' 'setup')) + @register() class trust_del(LDAPDelete): __doc__ = _('Delete a trust.') msg_summary = _('Deleted trust "%(value)s"') + @register() class trust_mod(LDAPUpdate): __doc__ = _(""" @@ -1076,13 +1093,14 @@ class trust_mod(LDAPUpdate): msg_summary = _('Modified trust "%(value)s" ' '(change will be effective in 60 seconds)') - def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options): + def pre_callback(self, ldap, dn, e_attrs, attrs_list, *keys, **options): assert isinstance(dn, DN) - self.obj.validate_sid_blacklists(entry_attrs) + self.obj.validate_sid_blacklists(e_attrs) return dn + @register() class trust_find(LDAPSearch): __doc__ = _('Search for trusts.') @@ -1093,9 +1111,10 @@ class trust_find(LDAPSearch): '%(count)d trust matched', '%(count)d trusts matched', 0 ) - # Since all trusts types are stored within separate containers under 'cn=trusts', - # search needs to be done on a sub-tree scope - def pre_callback(self, ldap, filters, attrs_list, base_dn, scope, *args, **options): + # Since all trusts types are stored within separate containers + # under 'cn=trusts', search needs to be done on a sub-tree scope + def pre_callback(self, ldap, filters, attrs_list, + base_dn, scope, *args, **options): # list only trust, not trust domains return (filters, base_dn, ldap.SCOPE_SUBTREE) @@ -1115,13 +1134,16 @@ class trust_find(LDAPSearch): trust_type = attrs.single_value.get('ipanttrusttype', None) attributes = attrs.single_value.get('ipanttrustattributes', 0) if not options.get('raw', False) and trust_type is not None: - attrs['trusttype'] = [trust_type_string(trust_type, attributes)] + attrs['trusttype'] = [ + trust_type_string(trust_type, attributes) + ] del attrs['ipanttrusttype'] if attributes: del attrs['ipanttrustattributes'] return truncated + @register() class trust_show(LDAPRetrieve): __doc__ = _('Display information about a trust.') @@ -1137,7 +1159,7 @@ class trust_show(LDAPRetrieve): return result - def post_callback(self, ldap, dn, entry_attrs, *keys, **options): + def post_callback(self, ldap, dn, e_attrs, *keys, **options): assert isinstance(dn, DN) # Translate ipanttrusttype to trusttype @@ -1145,25 +1167,28 @@ class trust_show(LDAPRetrieve): # if --raw not used if not options.get('raw', False): - trust_type = entry_attrs.single_value.get('ipanttrusttype', None) - attributes = entry_attrs.single_value.get('ipanttrustattributes', 0) + trust_type = e_attrs.single_value.get('ipanttrusttype', None) + attributes = e_attrs.single_value.get('ipanttrustattributes', 0) if trust_type is not None: - entry_attrs['trusttype'] = [trust_type_string(trust_type, attributes)] - del entry_attrs['ipanttrusttype'] + e_attrs['trusttype'] = [ + trust_type_string(trust_type, attributes) + ] + del e_attrs['ipanttrusttype'] - dir_str = entry_attrs.single_value.get('ipanttrustdirection', None) + dir_str = e_attrs.single_value.get('ipanttrustdirection', None) if dir_str is not None: - entry_attrs['trustdirection'] = [trust_direction_string(dir_str)] - del entry_attrs['ipanttrustdirection'] + e_attrs['trustdirection'] = [trust_direction_string(dir_str)] + del e_attrs['ipanttrustdirection'] if attributes: - del entry_attrs['ipanttrustattributes'] + del e_attrs['ipanttrustattributes'] return dn _trustconfig_dn = { - u'ad': DN(('cn', api.env.domain), api.env.container_cifsdomains, api.env.basedn), + u'ad': DN(('cn', api.env.domain), + api.env.container_cifsdomains, api.env.basedn), } @@ -1223,8 +1248,10 @@ class trustconfig(LDAPObject): try: return _trustconfig_dn[kwargs['trust_type']] except KeyError: - raise errors.ValidationError(name='trust_type', - error=_("unsupported trust type")) + raise errors.ValidationError( + name='trust_type', + error=_("unsupported trust type") + ) def _normalize_groupdn(self, entry_attrs): """ @@ -1293,8 +1320,8 @@ class trustconfig_mod(LDAPUpdate): msg_summary = _('Modified "%(value)s" trust configuration') has_output = output.simple_entry - def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options): - self.obj._normalize_groupdn(entry_attrs) + def pre_callback(self, ldap, dn, e_attrs, attrs_list, *keys, **options): + self.obj._normalize_groupdn(e_attrs) return dn def execute(self, *keys, **options): @@ -1302,14 +1329,13 @@ class trustconfig_mod(LDAPUpdate): result['value'] = pkey_to_value(options['trust_type'], options) return result - def post_callback(self, ldap, dn, entry_attrs, *keys, **options): - self.obj._convert_groupdn(entry_attrs, options) + def post_callback(self, ldap, dn, e_attrs, *keys, **options): + self.obj._convert_groupdn(e_attrs, options) self.api.Object.config.show_servroles_attributes( - entry_attrs, "AD trust agent", "AD trust controller", **options) + e_attrs, "AD trust agent", "AD trust controller", **options) return dn - @register() class trustconfig_show(LDAPRetrieve): __doc__ = _('Show global trust configuration.') @@ -1332,18 +1358,21 @@ class trustconfig_show(LDAPRetrieve): if _nss_idmap_installed: _idmap_type_dict = { - pysss_nss_idmap.ID_USER : 'user', - pysss_nss_idmap.ID_GROUP : 'group', - pysss_nss_idmap.ID_BOTH : 'both', + pysss_nss_idmap.ID_USER: 'user', + pysss_nss_idmap.ID_GROUP: 'group', + pysss_nss_idmap.ID_BOTH: 'both', } + def idmap_type_string(level): string = _idmap_type_dict.get(int(level), 'unknown') return unicode(string) + @register() class trust_resolve(Command): NO_CLI = True - __doc__ = _('Resolve security identifiers of users and groups in trusted domains') + __doc__ = _('Resolve security identifiers of users and groups ' + 'in trusted domains') takes_options = ( Str('sids+', @@ -1352,8 +1381,8 @@ class trust_resolve(Command): ) has_output_params = ( - Str('name', label= _('Name')), - Str('sid', label= _('SID')), + Str('name', label=_('Name')), + Str('sid', label=_('SID')), ) has_output = ( @@ -1365,13 +1394,15 @@ class trust_resolve(Command): if not _nss_idmap_installed: return dict(result=result) try: + NAME_KEY = pysss_nss_idmap.NAME_KEY + TYPE_KEY = pysss_nss_idmap.TYPE_KEY sids = [str(x) for x in options['sids']] xlate = pysss_nss_idmap.getnamebysid(sids) for sid in xlate: entry = dict() entry['sid'] = [unicode(sid)] - entry['name'] = [unicode(xlate[sid][pysss_nss_idmap.NAME_KEY])] - entry['type'] = [idmap_type_string(xlate[sid][pysss_nss_idmap.TYPE_KEY])] + entry['name'] = [unicode(xlate[sid][NAME_KEY])] + entry['type'] = [idmap_type_string(xlate[sid][TYPE_KEY])] result.append(entry) except ValueError: pass @@ -1379,7 +1410,6 @@ class trust_resolve(Command): return dict(result=result) - @register() class adtrust_is_enabled(Command): NO_CLI = True @@ -1406,7 +1436,6 @@ class adtrust_is_enabled(Command): return dict(result=True) - @register() class compat_is_enabled(Command): NO_CLI = True @@ -1450,7 +1479,6 @@ class compat_is_enabled(Command): return dict(result=True) - @register() class sidgen_was_run(Command): """ @@ -1500,7 +1528,7 @@ class trustdomain(LDAPObject): Object representing a domain of the AD trust. """ parent_object = 'trust' - trust_type_idx = {'2':u'ad'} + trust_type_idx = {'2': u'ad'} object_name = _('trust domain') object_name_plural = _('trust domains') object_class = ['ipaNTTrustedDomain'] @@ -1517,40 +1545,39 @@ class trustdomain(LDAPObject): Str('cn', label=_('Domain name'), cli_name='domain', - primary_key=True - ), + primary_key=True), Str('ipantflatname?', cli_name='flat_name', - label=_('Domain NetBIOS name'), - ), + label=_('Domain NetBIOS name')), Str('ipanttrusteddomainsid?', cli_name='sid', - label=_('Domain Security Identifier'), - ), + label=_('Domain Security Identifier')), Flag('domain_enabled', - label=_('Domain enabled'), - flags={'virtual_attribute', 'no_create', 'no_update', 'no_search'}, - ), + label=_('Domain enabled'), + flags={'virtual_attribute', + 'no_create', 'no_update', 'no_search'}), ) - # LDAPObject.get_dn() only passes all but last element of keys and no kwargs - # to the parent object's get_dn() no matter what you pass to it. Make own get_dn() - # as we really need all elements to construct proper dn. + # LDAPObject.get_dn() only passes all but last element of keys and no + # kwargs to the parent object's get_dn() no matter what you pass to it. + # Make own get_dn() as we really need all elements to construct proper dn. def get_dn(self, *keys, **kwargs): sdn = [('cn', x) for x in keys] sdn.reverse() trust_type = kwargs.get('trust_type') if not trust_type: - trust_type=u'ad' + trust_type = u'ad' - dn=make_trust_dn(self.env, trust_type, DN(*sdn)) + dn = make_trust_dn(self.env, trust_type, DN(*sdn)) return dn + @register() class trustdomain_find(LDAPSearch): __doc__ = _('Search domains of the trust') - def pre_callback(self, ldap, filters, attrs_list, base_dn, scope, *args, **options): + def pre_callback(self, ldap, filters, attrs_list, base_dn, + scope, *args, **options): return (filters, base_dn, ldap.SCOPE_SUBTREE) def post_callback(self, ldap, entries, truncated, *args, **options): @@ -1571,7 +1598,6 @@ class trustdomain_find(LDAPSearch): return truncated - @register() class trustdomain_mod(LDAPUpdate): __doc__ = _('Modify trustdomain of the trust') @@ -1579,31 +1605,36 @@ class trustdomain_mod(LDAPUpdate): NO_CLI = True takes_options = LDAPUpdate.takes_options + (_trust_type_option,) + @register() class trustdomain_add(LDAPCreate): __doc__ = _('Allow access from the trusted domain') NO_CLI = True takes_options = LDAPCreate.takes_options + (_trust_type_option,) - def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options): - # ipaNTTrustPartner must always be set to the name of the trusted domain - # See MS-ADTS 6.1.6.7.13 - entry_attrs['ipanttrustpartner'] = [dn[0]['cn']] + + def pre_callback(self, ldap, dn, e_attrs, attrs_list, *keys, **options): + # ipaNTTrustPartner must always be set to the name of the trusted + # domain. See MS-ADTS 6.1.6.7.13 + e_attrs['ipanttrustpartner'] = [dn[0]['cn']] return dn @register() class trustdomain_del(LDAPDelete): - __doc__ = _('Remove information about the domain associated with the trust.') + __doc__ = _('Remove information about the domain associated ' + 'with the trust.') - msg_summary = _('Removed information about the trusted domain "%(value)s"') + msg_summary = _('Removed information about the trusted domain ' + '"%(value)s"') def execute(self, *keys, **options): ldap = self.api.Backend.ldap2 verify_samba_component_presence(ldap, self.api) - # Note that pre-/post- callback handling for LDAPDelete is causing pre_callback - # to always receive empty keys. We need to catch the case when root domain is being deleted + # Note that pre-/post- callback handling for LDAPDelete is causing + # pre_callback to always receive empty keys. We need to catch the case + # when root domain is being deleted for domain in keys[1]: try: @@ -1642,10 +1673,10 @@ def fetch_domains_from_trust(myapi, trustinstance, **options): forest_root_name = trustinstance.remote_domain.info['dns_forest'] # We want to use Kerberos if we have admin credentials even with SMB calls - # as eventually use of NTLMSSP will be deprecated for trusted domain operations - # If admin credentials are missing, 'creds' will be None and fetch_domains - # will use HTTP/ipa.master@IPA.REALM principal, e.g. Kerberos authentication - # as well. + # as eventually use of NTLMSSP will be deprecated for trusted domain + # operations If admin credentials are missing, 'creds' will be None and + # fetch_domains will use HTTP/ipa.master@IPA.REALM principal, e.g. Kerberos + # authentication as well. creds = generate_creds(trustinstance, style=CRED_STYLE_KERBEROS, **options) server = options.get('realm_server', None) domains = ipaserver.dcerpc.fetch_domains( @@ -1655,7 +1686,8 @@ def fetch_domains_from_trust(myapi, trustinstance, **options): return domains -def add_new_domains_from_trust(myapi, trustinstance, trust_entry, domains, **options): +def add_new_domains_from_trust(myapi, trustinstance, trust_entry, + domains, **options): result = [] if not domains: return result @@ -1767,8 +1799,11 @@ class trustdomain_enable(LDAPQuery): verify_samba_component_presence(ldap, self.api) if keys[0].lower() == keys[1].lower(): - raise errors.ValidationError(name='domain', - error=_("Root domain of the trust is always enabled for the existing trust")) + raise errors.ValidationError( + name='domain', + error=_("Root domain of the trust is always enabled " + "for the existing trust") + ) try: trust_dn = self.obj.get_dn(keys[0], trust_type=u'ad') trust_entry = ldap.get_entry(trust_dn) @@ -1805,8 +1840,11 @@ class trustdomain_disable(LDAPQuery): verify_samba_component_presence(ldap, self.api) if keys[0].lower() == keys[1].lower(): - raise errors.ValidationError(name='domain', - error=_("cannot disable root domain of the trust, use trust-del to delete the trust itself")) + raise errors.ValidationError( + name='domain', + error=_("cannot disable root domain of the trust, " + "use trust-del to delete the trust itself") + ) try: trust_dn = self.obj.get_dn(keys[0], trust_type=u'ad') trust_entry = ldap.get_entry(trust_dn) diff --git a/ipaserver/rpcserver.py b/ipaserver/rpcserver.py index 9ec705996..5cbacf406 100644 --- a/ipaserver/rpcserver.py +++ b/ipaserver/rpcserver.py @@ -715,8 +715,7 @@ class xmlserver(KerberosWSGIExecutioner): """list methods for XML-RPC introspection""" if params: raise errors.ZeroArgumentError(name='system.listMethods') - return (tuple(unicode(cmd.name) for cmd in self.Command() - if cmd is self.Command[cmd.name]) + + return (tuple(unicode(cmd.name) for cmd in self.api.Command) + tuple(unicode(name) for name in self._system_commands)) def _get_method_name(self, name, *params): diff --git a/ipaserver/secrets/client.py b/ipaserver/secrets/client.py index 3c7a05547..3bcc25c17 100644 --- a/ipaserver/secrets/client.py +++ b/ipaserver/secrets/client.py @@ -1,7 +1,9 @@ # Copyright (C) 2015 IPA Project Contributors, see COPYING for license from __future__ import print_function +# pylint: disable=relative-import from custodia.message.kem import KEMClient, KEY_USAGE_SIG, KEY_USAGE_ENC +# pylint: enable=relative-import from jwcrypto.common import json_decode from jwcrypto.jwk import JWK from ipaserver.secrets.kem import IPAKEMKeys @@ -11,6 +13,7 @@ from base64 import b64encode import ldapurl import gssapi import os +import urllib3 import requests @@ -63,8 +66,9 @@ class CustodiaClient(object): self.keystore = self._keystore(realm, ldap_uri, auth_type) - # FIXME: Remove warnings about missig subjAltName - requests.packages.urllib3.disable_warnings() + # FIXME: Remove warnings about missing subjAltName for the + # requests module + urllib3.disable_warnings() def init_creds(self): name = gssapi.Name(self.client_service, diff --git a/ipaserver/secrets/kem.py b/ipaserver/secrets/kem.py index 3363d82fe..266d975d5 100644 --- a/ipaserver/secrets/kem.py +++ b/ipaserver/secrets/kem.py @@ -1,6 +1,8 @@ # Copyright (C) 2015 IPA Project Contributors, see COPYING for license from __future__ import print_function + +import errno import os # pylint: disable=import-error @@ -12,8 +14,10 @@ from ipapython.dn import DN from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import serialization from cryptography.hazmat.primitives.asymmetric import rsa, ec +# pylint: disable=relative-import from custodia.message.kem import KEMKeysStore from custodia.message.kem import KEY_USAGE_SIG, KEY_USAGE_ENC, KEY_USAGE_MAP +# pylint: enable=relative-import from jwcrypto.common import json_decode, json_encode from jwcrypto.common import base64url_encode from jwcrypto.jwk import JWK @@ -122,6 +126,12 @@ class KEMLdap(iSecLdap): encoding=serialization.Encoding.DER, format=serialization.PublicFormat.SubjectPublicKeyInfo) + def _get_dn(self, usage, principal): + servicename, host = principal.split('@')[0].split('/') + name = '%s/%s' % (KEY_USAGE_MAP[usage], host) + service_rdn = ('cn', servicename) if servicename != 'host' else DN() + return DN(('cn', name), service_rdn, self.keysbase) + def set_key(self, usage, principal, key): """ Write key for the host or service. @@ -135,24 +145,35 @@ class KEMLdap(iSecLdap): """ public_key = self._format_public_key(key) + dn = self._get_dn(usage, principal) conn = self.connect() - servicename, host = principal.split('@')[0].split('/') - name = '%s/%s' % (KEY_USAGE_MAP[usage], host) - service_rdn = ('cn', servicename) if servicename != 'host' else DN() - dn = str(DN(('cn', name), service_rdn, self.keysbase)) try: mods = [('objectClass', [b'nsContainer', b'ipaKeyPolicy', b'ipaPublicKeyObject', b'groupOfPrincipals']), - ('cn', name.encode('utf-8')), + ('cn', dn[0].value.encode('utf-8')), ('ipaKeyUsage', RFC5280_USAGE_MAP[usage].encode('utf-8')), ('memberPrincipal', principal.encode('utf-8')), ('ipaPublicKey', public_key)] - conn.add_s(dn, mods) + conn.add_s(str(dn), mods) except ldap.ALREADY_EXISTS: mods = [(ldap.MOD_REPLACE, 'ipaPublicKey', public_key)] - conn.modify_s(dn, mods) + conn.modify_s(str(dn), mods) + + def del_key(self, usage, principal): + """Delete key for host or service + + :returns: DN of removed key or None when key was not found + """ + dn = self._get_dn(usage, principal) + conn = self.connect() + try: + conn.delete_s(str(dn)) + except ldap.NO_SUCH_OBJECT: + return None + else: + return dn def newServerKeys(path, keyid): @@ -214,6 +235,24 @@ class IPAKEMKeys(KEMKeysStore): ldapconn.set_key(KEY_USAGE_SIG, principal, pubkeys[0]) ldapconn.set_key(KEY_USAGE_ENC, principal, pubkeys[1]) + def remove_server_keys(self): + """Remove keys from LDAP and disk + """ + self.remove_keys('host') + + def remove_keys(self, servicename): + """Remove keys from LDAP and disk + """ + principal = '%s/%s@%s' % (servicename, self.host, self.realm) + ldapconn = KEMLdap(self.ldap_uri) + ldapconn.del_key(KEY_USAGE_SIG, principal) + ldapconn.del_key(KEY_USAGE_ENC, principal) + try: + os.unlink(self.config['server_keys']) + except OSError as e: + if e.errno != errno.ENOENT: + raise + @property def server_keys(self): if self._server_keys is None: diff --git a/ipaserver/secrets/service.py b/ipaserver/secrets/service.py index f51c46a30..36d5a444e 100644 --- a/ipaserver/secrets/service.py +++ b/ipaserver/secrets/service.py @@ -1,7 +1,7 @@ # Copyright (C) 2017 IPA Project Contributors, see COPYING for license import argparse -import custodia.server +import custodia.server # pylint: disable=relative-import argparser = argparse.ArgumentParser( diff --git a/ipaserver/secrets/store.py b/ipaserver/secrets/store.py index 87fdc556f..e741d3311 100644 --- a/ipaserver/secrets/store.py +++ b/ipaserver/secrets/store.py @@ -2,7 +2,7 @@ from __future__ import print_function from base64 import b64encode, b64decode -from custodia.store.interface import CSStore +from custodia.store.interface import CSStore # pylint: disable=relative-import from jwcrypto.common import json_decode, json_encode from ipaplatform.paths import paths from ipapython import ipautil diff --git a/ipaserver/setup.py b/ipaserver/setup.py index 96af1a7e8..46ce7505a 100755 --- a/ipaserver/setup.py +++ b/ipaserver/setup.py @@ -62,6 +62,7 @@ if __name__ == '__main__': "requests", "six", "python-augeas", + "python-ldap", ], entry_points={ 'custodia.authorizers': [ @@ -72,8 +73,6 @@ if __name__ == '__main__': ], }, extras_require={ - ":python_version<'3'": ["python-ldap"], - ":python_version>='3'": ["pyldap"], # These packages are currently not available on PyPI. "dcerpc": ["samba", "pysss", "pysss_nss_idmap"], "hbactest": ["pyhbac"], diff --git a/ipasetup.py.in b/ipasetup.py.in index 2862ae234..cc5634671 100644 --- a/ipasetup.py.in +++ b/ipasetup.py.in @@ -25,22 +25,27 @@ class build_py(setuptools_build_py): """ def initialize_options(self): setuptools_build_py.initialize_options(self) - self.skip_package = None + self.skip_modules = () def finalize_options(self): setuptools_build_py.finalize_options(self) omit = os.environ.get('IPA_OMIT_INSTALL', '0') if omit == '1': distname = self.distribution.metadata.name - self.skip_package = '{}.install'.format(distname) + self.skip_modules = ( + # *.install.* subpackages + '{}.install'.format(distname), + # platform override module + 'ipaplatform.override', + ) log.warn("bdist_wheel: Ignore package: %s", - self.skip_package) + ', '.join(self.skip_modules)) def build_module(self, module, module_file, package): if isinstance(package, str): package = package.split('.') name = '.'.join(list(package) + [module]) - if self.skip_package and name.startswith(self.skip_package): + if self.skip_modules and name.startswith(self.skip_modules): # remove file in case it has been copied to build/lib before outfile = self.get_module_outfile(self.build_lib, package, module) try: @@ -76,7 +81,7 @@ PACKAGE_VERSION = { 'jwcrypto': 'jwcrpyto >= 0.4.2', 'kdcproxy': 'kdcproxy >= 0.3', 'netifaces': 'netifaces >= 0.10.4', - 'pyldap': 'pyldap >= 2.4.15', + 'python-ldap': 'python-ldap >= 3.0.0b1', # install --pre 'python-yubico': 'python-yubico >= 1.2.3', 'qrcode': 'qrcode >= 5.0', } @@ -92,6 +97,7 @@ common_args = dict( url="http://www.freeipa.org/", download_url="http://www.freeipa.org/page/Downloads", platforms=["Linux", "Solaris", "Unix"], + python_requires=">=2.7.5,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", classifiers=[ "Development Status :: 5 - Production/Stable", "Intended Audience :: System Administrators", diff --git a/ipatests/conftest.py b/ipatests/conftest.py index c6c846e79..6cc89838b 100644 --- a/ipatests/conftest.py +++ b/ipatests/conftest.py @@ -41,6 +41,7 @@ MARKERS = [ 'cs_acceptance: Acceptance test suite for Dogtag Certificate Server', 'ds_acceptance: Acceptance test suite for 389 Directory Server', 'skip_ipaclient_unittest: Skip in ipaclient unittest mode', + 'needs_ipaapi: Test needs IPA API', ] @@ -95,6 +96,11 @@ def pytest_addoption(parser): help='Run ipaclient unit tests only (no RPC and ipaserver)', action='store_true' ) + group.addoption( + '--skip-ipaapi', + help='Do not run tests that depends on IPA API', + action='store_true', + ) def pytest_cmdline_main(config): @@ -124,3 +130,7 @@ def pytest_runtest_setup(item): # pylint: disable=no-member if pytest.config.option.ipaclient_unittests: pytest.skip("Skip in ipaclient unittest mode") + if item.get_marker('needs_ipaapi'): + # pylint: disable=no-member + if pytest.config.option.skip_ipaapi: + pytest.skip("Skip tests that needs an IPA API") diff --git a/ipatests/pytest_plugins/integration/__init__.py b/ipatests/pytest_plugins/integration/__init__.py index 62b8e71ec..bee669b0d 100644 --- a/ipatests/pytest_plugins/integration/__init__.py +++ b/ipatests/pytest_plugins/integration/__init__.py @@ -131,23 +131,25 @@ def collect_logs(name, logs_dict, logfile_dir=None, beakerlib_plugin=None): for host, logs in logs_dict.items(): logger.info('Collecting logs from: %s', host.hostname) - + dirname = os.path.join(topdirname, host.hostname) + if not os.path.isdir(dirname): + os.makedirs(dirname) + tarname = os.path.join(dirname, 'logs.tar.xz') + # get temporary file name + cmd = host.run_command(['mktemp']) + tmpname = cmd.stdout_text.strip() # Tar up the logs on the remote server cmd = host.run_command( - ['tar', '-c', '--ignore-failed-read', '-J', '-v'] + logs, + ['tar', 'cJvf', tmpname, '--ignore-failed-read'] + logs, log_stdout=False, raiseonerr=False) if cmd.returncode: logger.warning('Could not collect all requested logs') - + # fetch tar file + with open(tarname, 'wb') as f: + f.write(host.get_file_contents(tmpname)) + # delete from remote + host.run_command(['rm', '-f', tmpname]) # Unpack on the local side - dirname = os.path.join(topdirname, host.hostname) - try: - os.makedirs(dirname) - except OSError: - pass - tarname = os.path.join(dirname, 'logs.tar.xz') - with open(tarname, 'w') as f: - f.write(cmd.stdout_text) ipautil.run(['tar', 'xJvf', 'logs.tar.xz'], cwd=dirname, raiseonerr=False) os.unlink(tarname) diff --git a/ipatests/pytest_plugins/integration/config.py b/ipatests/pytest_plugins/integration/config.py index 78fc81d79..734a2d92f 100644 --- a/ipatests/pytest_plugins/integration/config.py +++ b/ipatests/pytest_plugins/integration/config.py @@ -71,7 +71,9 @@ class Config(pytest_multihost.config.Config): return Domain def get_logger(self, name): - return logging.getLogger(name) + logger = logging.getLogger(name) + logger.setLevel(logging.DEBUG) + return logger @property def ad_domains(self): diff --git a/ipatests/pytest_plugins/integration/tasks.py b/ipatests/pytest_plugins/integration/tasks.py index 9d3955d99..a33710a45 100644 --- a/ipatests/pytest_plugins/integration/tasks.py +++ b/ipatests/pytest_plugins/integration/tasks.py @@ -91,6 +91,22 @@ def setup_server_logs_collecting(host): # setup_sssd_debugging) +def collect_logs(func): + def wrapper(*args): + try: + func(*args) + finally: + if hasattr(args[0], 'master'): + setup_server_logs_collecting(args[0].master) + if hasattr(args[0], 'replicas') and args[0].replicas: + for replica in args[0].replicas: + setup_server_logs_collecting(replica) + if hasattr(args[0], 'clients') and args[0].clients: + for client in args[0].clients: + setup_server_logs_collecting(client) + return wrapper + + def check_arguments_are(slice, instanceof): """ :param: slice - tuple of integers denoting the beginning and the end @@ -228,7 +244,7 @@ def restore_files(host): def restore_hostname(host): backupname = os.path.join(host.config.test_dir, 'backup_hostname') try: - hostname = host.get_file_contents(backupname) + hostname = host.get_file_contents(backupname, encoding='utf-8') except IOError: logger.debug('No hostname backed up on %s', host.hostname) else: @@ -236,14 +252,14 @@ def restore_hostname(host): host.run_command(['rm', backupname]) -def enable_replication_debugging(host): - logger.info('Enable LDAP replication logging') +def enable_replication_debugging(host, log_level=0): + logger.info('Set LDAP debug level') logging_ldif = textwrap.dedent(""" dn: cn=config changetype: modify replace: nsslapd-errorlog-level - nsslapd-errorlog-level: 8192 - """) + nsslapd-errorlog-level: {log_level} + """.format(log_level=log_level)) host.run_command(['ldapmodify', '-x', '-D', str(host.config.dirman_dn), '-w', host.config.dirman_password, @@ -472,7 +488,7 @@ def establish_trust_with_ad(master, ad_domain, extra_args=()): on the presence of SfU (Services for Unix) support on the AD. Use extra arguments to pass extra arguments to the trust-add command, such - as --range-type="ipa-ad-trust" to enfroce a particular range type. + as --range-type="ipa-ad-trust" to enforce a particular range type. """ # Force KDC to reload MS-PAC info by trying to get TGT for HTTP @@ -1045,7 +1061,7 @@ def _entries_to_ldif(entries): io = StringIO() writer = LDIFWriter(io) for entry in entries: - writer.unparse(str(entry.dn), dict(entry)) + writer.unparse(str(entry.dn), dict(entry.raw)) return io.getvalue() @@ -1096,11 +1112,11 @@ def add_a_records_for_hosts_in_master_domain(master): # domain try: verify_host_resolvable(host.hostname) - logger.debug("The host (%s) is resolvable.", host.domain.name) + logger.debug("The host (%s) is resolvable.", host.hostname) except errors.DNSNotARecordError: logger.debug("Hostname (%s) does not have A/AAAA record. Adding " "new one.", - master.hostname) + host.hostname) add_a_record(master, host) @@ -1163,12 +1179,15 @@ def install_kra(host, domain_level=None, first_instance=False, raiseonerr=True): if domain_level == DOMAIN_LEVEL_0 and not first_instance: replica_file = get_replica_filename(host) command.append(replica_file) - result = host.run_command(command, raiseonerr=raiseonerr) - setup_server_logs_collecting(host) + try: + result = host.run_command(command, raiseonerr=raiseonerr) + finally: + setup_server_logs_collecting(host) return result -def install_ca(host, domain_level=None, first_instance=False, raiseonerr=True): +def install_ca(host, domain_level=None, first_instance=False, + external_ca=False, cert_files=None, raiseonerr=True): if domain_level is None: domain_level = domainlevel(host) command = ["ipa-ca-install", "-U", "-p", host.config.dirman_password, @@ -1176,8 +1195,17 @@ def install_ca(host, domain_level=None, first_instance=False, raiseonerr=True): if domain_level == DOMAIN_LEVEL_0 and not first_instance: replica_file = get_replica_filename(host) command.append(replica_file) - result = host.run_command(command, raiseonerr=raiseonerr) - setup_server_logs_collecting(host) + # First step of ipa-ca-install --external-ca + if external_ca: + command.append('--external-ca') + # Continue with ipa-ca-install --external-ca + if cert_files: + for fname in cert_files: + command.extend(['--external-cert-file', fname]) + try: + result = host.run_command(command, raiseonerr=raiseonerr) + finally: + setup_server_logs_collecting(host) return result @@ -1318,7 +1346,34 @@ def ldappasswd_user_change(user, oldpw, newpw, master): basedn = master.domain.basedn userdn = "uid={},{},{}".format(user, container_user, basedn) + master_ldap_uri = "ldap://{}".format(master.external_hostname) args = [paths.LDAPPASSWD, '-D', userdn, '-w', oldpw, '-a', oldpw, - '-s', newpw, '-x'] + '-s', newpw, '-x', '-H', master_ldap_uri] master.run_command(args) + + +def add_dns_zone(master, zone, skip_overlap_check=False, + dynamic_update=False, add_a_record_hosts=None): + """ + Add DNS zone if it is not already added. + """ + + result = master.run_command( + ['ipa', 'dnszone-show', zone], raiseonerr=False) + + if result.returncode != 0: + command = ['ipa', 'dnszone-add', zone] + if skip_overlap_check: + command.append('--skip-overlap-check') + if dynamic_update: + command.append('--dynamic-update=True') + + master.run_command(command) + + if add_a_record_hosts: + for host in add_a_record_hosts: + master.run_command(['ipa', 'dnsrecord-add', zone, + host.hostname + ".", '--a-rec', host.ip]) + else: + logger.debug('Zone %s already added.', zone) diff --git a/ipatests/setup.py b/ipatests/setup.py index 00b933404..68a67da5f 100644 --- a/ipatests/setup.py +++ b/ipatests/setup.py @@ -41,10 +41,10 @@ if __name__ == '__main__': "ipatests.test_integration", "ipatests.test_ipaclient", "ipatests.test_ipalib", + "ipatests.test_ipaplatform", "ipatests.test_ipapython", "ipatests.test_ipaserver", "ipatests.test_ipaserver.test_install", - "ipatests.test_pkcs10", "ipatests.test_webui", "ipatests.test_xmlrpc", "ipatests.test_xmlrpc.tracker" @@ -55,7 +55,7 @@ if __name__ == '__main__': 'ipatests.test_integration': ['scripts/*'], 'ipatests.test_ipaclient': ['data/*/*/*'], 'ipatests.test_ipalib': ['data/*'], - 'ipatests.test_pkcs10': ['*.csr'], + 'ipatests.test_ipaplatform': ['data/*'], "ipatests.test_ipaserver": ['data/*'], 'ipatests.test_xmlrpc': ['data/*'], }, @@ -65,16 +65,16 @@ if __name__ == '__main__': "gssapi", "ipaclient", "ipalib", + "ipaplatform", "ipapython", "nose", "polib", "pytest", "pytest_multihost", + "python-ldap", "six", ], extras_require={ - ":python_version<'3'": ["python-ldap"], - ":python_version>='3'": ["pyldap"], "integration": ["dbus-python", "pyyaml", "ipaserver"], "ipaserver": ["ipaserver"], "webui": ["selenium", "pyyaml", "ipaserver"], diff --git a/ipatests/test_cmdline/test_cli.py b/ipatests/test_cmdline/test_cli.py index 4585126d9..999b84dd3 100644 --- a/ipatests/test_cmdline/test_cli.py +++ b/ipatests/test_cmdline/test_cli.py @@ -1,6 +1,8 @@ -import shlex -import sys import contextlib +import os +import shlex +import subprocess +import sys import nose import six @@ -15,8 +17,12 @@ if six.PY3: TEST_ZONE = u'zoneadd.%(domain)s' % api.env +HERE = os.path.abspath(os.path.dirname(__file__)) +BASE_DIR = os.path.abspath(os.path.join(HERE, os.pardir, os.pardir)) + @pytest.mark.tier0 +@pytest.mark.needs_ipaapi class TestCLIParsing(object): """Tests that commandlines are correctly parsed to Command keyword args """ @@ -305,3 +311,22 @@ class TestCLIParsing(object): if not adtrust_is_enabled: mockldap.del_entry(adtrust_dn) + + +def test_cli_fsencoding(): + # https://pagure.io/freeipa/issue/5887 + env = { + key: value for key, value in os.environ.items() + if not key.startswith(('LC_', 'LANG')) + } + env['LC_ALL'] = 'C' + env['PYTHONPATH'] = BASE_DIR + p = subprocess.Popen( + [sys.executable, '-m', 'ipaclient', 'help'], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + env=env, + ) + out, err = p.communicate() + assert p.returncode > 0, (out, err) + assert b'System encoding must be UTF-8' in err, (out, err) diff --git a/ipatests/test_cmdline/test_help.py b/ipatests/test_cmdline/test_help.py index b28aa2303..2656a8df4 100644 --- a/ipatests/test_cmdline/test_help.py +++ b/ipatests/test_cmdline/test_help.py @@ -30,6 +30,9 @@ if six.PY3: unicode = str +pytestmark = pytest.mark.needs_ipaapi + + @pytest.mark.tier0 class CLITestContext(object): """Context manager that replaces stdout & stderr, and catches SystemExit diff --git a/ipatests/test_cmdline/test_ipagetkeytab.py b/ipatests/test_cmdline/test_ipagetkeytab.py index 2f74ae92d..f04f0b930 100644 --- a/ipatests/test_cmdline/test_ipagetkeytab.py +++ b/ipatests/test_cmdline/test_ipagetkeytab.py @@ -67,6 +67,7 @@ def test_service(request, test_host): return service_tracker.make_fixture(request) +@pytest.mark.needs_ipaapi class KeytabRetrievalTest(cmdline_test): """ Base class for keytab retrieval tests diff --git a/ipatests/test_install/test_updates.py b/ipatests/test_install/test_updates.py index 57433c99f..6e904f3b1 100644 --- a/ipatests/test_install/test_updates.py +++ b/ipatests/test_install/test_updates.py @@ -30,7 +30,7 @@ from ipalib import api from ipalib import errors from ipaserver.install.ldapupdate import LDAPUpdate, BadSyntax from ipaserver.install import installutils -from ipapython import ipautil, ipaldap +from ipapython import ipaldap from ipaplatform.paths import paths from ipapython.dn import DN @@ -48,6 +48,7 @@ The DM password needs to be set in ~/.ipa/.dmpw @pytest.mark.tier0 +@pytest.mark.needs_ipaapi class test_update(unittest.TestCase): """ Test the LDAP updater. @@ -56,7 +57,7 @@ class test_update(unittest.TestCase): def setUp(self): fqdn = installutils.get_fqdn() pwfile = api.env.dot_ipa + os.sep + ".dmpw" - if ipautil.file_exists(pwfile): + if os.path.isfile(pwfile): fp = open(pwfile, "r") self.dm_password = fp.read().rstrip() fp.close() @@ -68,7 +69,7 @@ class test_update(unittest.TestCase): self.ld.simple_bind(bind_dn=ipaldap.DIRMAN_DN, bind_password=self.dm_password) self.testdir = os.path.abspath(os.path.dirname(__file__)) - if not ipautil.file_exists(os.path.join(self.testdir, + if not os.path.isfile(os.path.join(self.testdir, "0_reset.update")): raise nose.SkipTest("Unable to find test update files") diff --git a/ipatests/test_integration/__init__.py b/ipatests/test_integration/__init__.py index 2b4d5350f..045a1e8fd 100644 --- a/ipatests/test_integration/__init__.py +++ b/ipatests/test_integration/__init__.py @@ -20,3 +20,4 @@ import ipatests.util ipatests.util.check_ipaclient_unittests() +ipatests.util.check_no_ipaapi() diff --git a/ipatests/test_integration/create_external_ca.py b/ipatests/test_integration/create_external_ca.py new file mode 100644 index 000000000..dc4ef048c --- /dev/null +++ b/ipatests/test_integration/create_external_ca.py @@ -0,0 +1,155 @@ +# +# Copyright (C) 2017 FreeIPA Contributors see COPYING for license +# +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +from cryptography import x509 +from cryptography.x509.oid import NameOID +from cryptography.hazmat.primitives import hashes +from cryptography.hazmat.primitives.asymmetric import rsa +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives import serialization + +import datetime +import six + + +class ExternalCA(object): + """ + Provide external CA for testing + """ + def create_ca(self, cn='example.test'): + """Create root CA. + + :returns: bytes -- Root CA in PEM format. + """ + self.ca_key = rsa.generate_private_key( + public_exponent=65537, + key_size=2048, + backend=default_backend(), + ) + + self.ca_public_key = self.ca_key.public_key() + + subject = self.issuer = x509.Name([ + x509.NameAttribute(NameOID.COMMON_NAME, six.text_type(cn)), + ]) + + builder = x509.CertificateBuilder() + builder = builder.subject_name(subject) + builder = builder.issuer_name(self.issuer) + builder = builder.public_key(self.ca_public_key) + builder = builder.serial_number(x509.random_serial_number()) + builder = builder.not_valid_before(datetime.datetime.utcnow()) + builder = builder.not_valid_after( + datetime.datetime.utcnow() + datetime.timedelta(days=365) + ) + + builder = builder.add_extension( + x509.KeyUsage( + digital_signature=False, + content_commitment=False, + key_encipherment=False, + data_encipherment=False, + key_agreement=False, + key_cert_sign=True, + crl_sign=True, + encipher_only=False, + decipher_only=False, + ), + critical=True, + ) + + builder = builder.add_extension( + x509.BasicConstraints(ca=True, path_length=None), + critical=True, + ) + + builder = builder.add_extension( + x509.SubjectKeyIdentifier.from_public_key(self.ca_public_key), + critical=False, + ) + + builder = builder.add_extension( + x509.AuthorityKeyIdentifier.from_issuer_public_key( + self.ca_public_key + ), + critical=False, + ) + + cert = builder.sign(self.ca_key, hashes.SHA256(), default_backend()) + + return cert.public_bytes(serialization.Encoding.PEM) + + def sign_csr(self, ipa_csr): + """Sign certificate CSR. + + :param ipa_csr: CSR in PEM format. + :type ipa_csr: bytes. + :returns: bytes -- Signed CA in PEM format. + """ + csr_tbs = x509.load_pem_x509_csr(ipa_csr, default_backend()) + + csr_public_key = csr_tbs.public_key() + csr_subject = csr_tbs.subject + + builder = x509.CertificateBuilder() + builder = builder.public_key(csr_public_key) + builder = builder.subject_name(csr_subject) + builder = builder.serial_number(x509.random_serial_number()) + builder = builder.issuer_name(self.issuer) + builder = builder.not_valid_before(datetime.datetime.utcnow()) + builder = builder.not_valid_after( + datetime.datetime.utcnow() + datetime.timedelta(days=365)) + + builder = builder.add_extension( + x509.KeyUsage( + digital_signature=False, + content_commitment=False, + key_encipherment=False, + data_encipherment=False, + key_agreement=False, + key_cert_sign=True, + crl_sign=True, + encipher_only=False, + decipher_only=False, + ), + critical=True, + ) + + builder = builder.add_extension( + x509.SubjectKeyIdentifier.from_public_key(csr_public_key), + critical=False, + ) + + builder = builder.add_extension( + x509.AuthorityKeyIdentifier.from_issuer_public_key( + self.ca_public_key + ), + critical=False, + ) + + builder = builder.add_extension( + x509.BasicConstraints(ca=True, path_length=1), + critical=True, + ) + + cert = builder.sign( + private_key=self.ca_key, + algorithm=hashes.SHA256(), + backend=default_backend(), + ) + + return cert.public_bytes(serialization.Encoding.PEM) diff --git a/ipatests/test_integration/test_caless.py b/ipatests/test_integration/test_caless.py index 994396dd7..76f40292f 100644 --- a/ipatests/test_integration/test_caless.py +++ b/ipatests/test_integration/test_caless.py @@ -21,7 +21,6 @@ import logging import os import tempfile import shutil -import base64 import glob import contextlib import nose @@ -34,6 +33,7 @@ from ipaplatform.paths import paths from ipapython.dn import DN from ipatests.test_integration.base import IntegrationTest from ipatests.test_integration import create_caless_pki +from ipatests.test_integration.create_external_ca import ExternalCA from ipatests.pytest_plugins.integration import tasks from ipalib.constants import DOMAIN_LEVEL_0 @@ -65,6 +65,9 @@ def get_install_stdin(cert_passwords=()): def get_replica_prepare_stdin(cert_passwords=()): lines = list(cert_passwords) # Enter foo.p12 unlock password + lines += [ + 'yes', # Continue [no]? + ] return '\n'.join(lines + ['']) @@ -355,14 +358,13 @@ class CALessBase(IntegrationTest): Called from every positive server install test """ - with open(self.pem_filename) as f: + with open(self.pem_filename, 'rb') as f: expected_cacrt = f.read() logger.debug('Expected /etc/ipa/ca.crt contents:\n%s', - expected_cacrt) - expected_binary_cacrt = base64.b64decode(x509.strip_header( - expected_cacrt)) - logger.debug('Expected binary CA cert:\n%r', - expected_binary_cacrt) + expected_cacrt.decode('utf-8')) + expected_cacrt = x509.load_unknown_x509_certificate(expected_cacrt) + logger.debug('Expected CA cert:\n%r', + expected_cacrt.public_bytes(x509.Encoding.PEM)) for host in [self.master] + self.replicas: # Check the LDAP entry ldap = host.ldap_connect() @@ -371,8 +373,8 @@ class CALessBase(IntegrationTest): ('cn', 'etc'), host.domain.basedn)) cert_from_ldap = entry.single_value['cACertificate'] logger.debug('CA cert from LDAP on %s:\n%r', - host, cert_from_ldap) - assert cert_from_ldap == expected_binary_cacrt + host, cert_from_ldap.public_bytes(x509.Encoding.PEM)) + assert cert_from_ldap == expected_cacrt # Verify certmonger was not started result = host.run_command(['getcert', 'list'], raiseonerr=False) @@ -382,11 +384,11 @@ class CALessBase(IntegrationTest): # Check the cert PEM file remote_cacrt = host.get_file_contents(paths.IPA_CA_CRT) logger.debug('%s:/etc/ipa/ca.crt contents:\n%s', - host, remote_cacrt) - binary_cacrt = base64.b64decode(x509.strip_header(remote_cacrt)) + host, remote_cacrt.decode('utf-8')) + cacrt = x509.load_unknown_x509_certificate(remote_cacrt) logger.debug('%s: Decoded /etc/ipa/ca.crt:\n%r', - host, binary_cacrt) - assert expected_binary_cacrt == binary_cacrt + host, cacrt.public_bytes(x509.Encoding.PEM)) + assert expected_cacrt == cacrt class TestServerInstall(CALessBase): @@ -524,7 +526,8 @@ class TestServerInstall(CALessBase): def test_invalid_ds_cn(self): "IPA server install with DS certificate with invalid CN" - self.create_pkcs12('ca1/replica', filename='dirsrv.p12') + self.create_pkcs12('ca1/server', filename='http.p12') + self.create_pkcs12('ca1/server-badname', filename='dirsrv.p12') self.prepare_cacert('ca1') result = self.install_server(http_pkcs12='http.p12', @@ -797,6 +800,7 @@ class TestReplicaInstall(CALessBase): cls.prepare_cacert('ca1') result = cls.install_server() assert result.returncode == 0 + cls.domain_level = tasks.domainlevel(cls.master) @replica_install_teardown def test_no_certs(self): @@ -1580,3 +1584,47 @@ class TestReplicaCALessToCAFull(CALessBase): ca_replica = tasks.install_ca(self.replicas[0]) assert ca_replica.returncode == 0 + + +class TestServerCALessToExternalCA(CALessBase): + """Test server caless to extarnal CA scenario""" + + def test_install_caless_server(self): + """Install CA-less master""" + + self.create_pkcs12('ca1/server') + self.prepare_cacert('ca1') + + master = self.install_server() + assert master.returncode == 0 + + def test_server_ipa_ca_install_external(self): + """Install external CA on master""" + + # First step of ipa-ca-install (get CSR) + ca_master_pre = tasks.install_ca(self.master, external_ca=True) + assert ca_master_pre.returncode == 0 + + # Create external CA + external_ca = ExternalCA() + root_ca = external_ca.create_ca() + + # Get IPA CSR as string + ipa_csr = self.master.get_file_contents('/root/ipa.csr') + # Have CSR signed by the external CA + ipa_ca = external_ca.sign_csr(ipa_csr) + + test_dir = self.master.config.test_dir + + root_ca_fname = os.path.join(test_dir, 'root_ca.crt') + ipa_ca_fname = os.path.join(test_dir, 'ipa_ca.crt') + + # Transport certificates (string > file) to master + self.master.put_file_contents(root_ca_fname, root_ca) + self.master.put_file_contents(ipa_ca_fname, ipa_ca) + + cert_files = [root_ca_fname, ipa_ca_fname] + + # Continue with ipa-ca-install + ca_master_post = tasks.install_ca(self.master, cert_files=cert_files) + assert ca_master_post.returncode == 0 diff --git a/ipatests/test_integration/test_dns_locations.py b/ipatests/test_integration/test_dns_locations.py index 1e94f72c1..458c50cd0 100644 --- a/ipatests/test_integration/test_dns_locations.py +++ b/ipatests/test_integration/test_dns_locations.py @@ -3,6 +3,8 @@ # import logging import time +import pytest +import six import dns.resolver import dns.rrset import dns.rdatatype @@ -11,6 +13,7 @@ import dns.rdataclass from ipatests.test_integration.base import IntegrationTest from ipatests.pytest_plugins.integration import tasks from ipapython.dnsutil import DNSName +from ipalib.constants import IPA_CA_RECORD logger = logging.getLogger(__name__) @@ -25,15 +28,45 @@ IPA_DEFAULT_MASTER_SRV_REC = ( (DNSName(u'_kpasswd._udp'), 464), ) +IPA_DEFAULT_ADTRUST_SRV_REC = ( + # srv record name, port + (DNSName(u'_ldap._tcp.Default-First-Site-Name._sites.dc._msdcs'), 389), + (DNSName(u'_ldap._tcp.dc._msdcs'), 389), + (DNSName(u'_kerberos._tcp.Default-First-Site-Name._sites.dc._msdcs'), 88), + (DNSName(u'_kerberos._udp.Default-First-Site-Name._sites.dc._msdcs'), 88), + (DNSName(u'_kerberos._tcp.dc._msdcs'), 88), + (DNSName(u'_kerberos._udp.dc._msdcs'), 88), +) + +# we keep NTP SRV record separated as NTP is "optional" +IPA_DEFAULT_NTP_SRV_REC = ( + # srv record name, port + (DNSName("_ntp._udp"), 123), +) + +IPA_CA_A_REC = ( + (DNSName(six.text_type(IPA_CA_RECORD))), +) + def resolve_records_from_server(rname, rtype, nameserver): + error = None res = dns.resolver.Resolver() res.nameservers = [nameserver] - res.lifetime = 10 - logger.debug("Query: %s %s, nameserver %s", rname, rtype, nameserver) - ans = res.query(rname, rtype) - logger.debug("Answer: %s", ans.rrset) - return ans.rrset + res.lifetime = 30 + logger.info("Query: %s %s, nameserver %s", rname, rtype, nameserver) + # lets try to query 3x + for _i in range(3): + try: + ans = res.query(rname, rtype) + logger.info("Answer: %s", ans.rrset) + return ans.rrset + except (dns.resolver.NXDOMAIN, dns.resolver.Timeout) as e: + error = e + time.sleep(10) + + pytest.fail("Query: {} {}, nameserver {} failed due to {}".format( + rname, rtype, nameserver, error)) def _gen_expected_srv_rrset(rname, port, servers, ttl=86400): @@ -51,11 +84,18 @@ def _gen_expected_srv_rrset(rname, port, servers, ttl=86400): ) +def _gen_expected_a_rrset(rname, servers, ttl=86400): + return dns.rrset.from_text_list(rname, ttl, dns.rdataclass.IN, + dns.rdatatype.A, servers) + + class TestDNSLocations(IntegrationTest): """Simple test if SRV DNS records for IPA locations are generated properly Topology: * 3 servers (replica0 --- master --- replica1) + replica0 with NTP/no CA, master with ADtrust installed later, + replica1 without NTP/with CA * 2 locations (prague, paris) """ num_replicas = 2 @@ -70,11 +110,12 @@ class TestDNSLocations(IntegrationTest): @classmethod def install(cls, mh): + cls.domain = DNSName(cls.master.domain.name).make_absolute() tasks.install_master(cls.master, setup_dns=True) tasks.install_replica(cls.master, cls.replicas[0], setup_dns=True, setup_ca=False) tasks.install_replica(cls.master, cls.replicas[1], setup_dns=True, - setup_ca=False) + setup_ca=True, extra_args=(['--no-ntp'])) for host in (cls.master, cls.replicas[0], cls.replicas[1]): ldap = host.ldap_connect() @@ -83,53 +124,75 @@ class TestDNSLocations(IntegrationTest): # give time to named to retrieve new records time.sleep(20) - def _test_against_server(self, server_ip, domain, expected_servers): - for rname, port in IPA_DEFAULT_MASTER_SRV_REC: + @classmethod + def delete_update_system_records(cls, rnames): + filepath = '/tmp/ipa.nsupdate' + + cls.master.run_command([ + 'ipa', 'dns-update-system-records', '--dry-run', '--out', filepath + ]) + + for name in rnames: + cls.master.run_command([ + 'ipa', 'dnsrecord-del', str(cls.domain), str(name), + '--del-all']) + + time.sleep(15) + # allow unauthenticates nsupdate (no need to testing authentication) + cls.master.run_command([ + 'ipa', 'dnszone-mod', str(cls.domain), + '--update-policy=grant * wildcard *;' + ], raiseonerr=False) + + cls.master.run_command(['nsupdate', '-g', filepath]) + time.sleep(15) + + def _test_A_rec_against_server(self, server_ip, domain, expected_servers, + rec_list=IPA_CA_A_REC): + for rname in rec_list: + name_abs = rname.derelativize(domain) + expected = _gen_expected_a_rrset(name_abs, expected_servers) + query = resolve_records_from_server( + name_abs, 'A', server_ip) + + assert expected == query, ( + "Expected and received DNS data do not match on server " + "with IP: '{}' for name '{}' (expected:\n{}\ngot:\n{})". + format(server_ip, name_abs, expected, query)) + + def _test_SRV_rec_against_server(self, server_ip, domain, expected_servers, + rec_list=IPA_DEFAULT_MASTER_SRV_REC): + for rname, port in rec_list: name_abs = rname.derelativize(domain) expected = _gen_expected_srv_rrset( name_abs, port, expected_servers) query = resolve_records_from_server( name_abs, 'SRV', server_ip) + assert expected == query, ( "Expected and received DNS data do not match on server " - "with IP: '{}' for name '{}' (expected:\n{}\ngot:\n{})".format( - server_ip, name_abs, expected, query)) + "with IP: '{}' for name '{}' (expected:\n{}\ngot:\n{})". + format(server_ip, name_abs, expected, query)) def test_without_locations(self): """Servers are not in locations, this tests if basic system records are generated properly""" - domain = DNSName(self.master.domain.name).make_absolute() expected_servers = ( (self.PRIO_HIGH, self.WEIGHT, DNSName(self.master.hostname)), (self.PRIO_HIGH, self.WEIGHT, DNSName(self.replicas[0].hostname)), (self.PRIO_HIGH, self.WEIGHT, DNSName(self.replicas[1].hostname)), ) for ip in (self.master.ip, self.replicas[0].ip, self.replicas[1].ip): - self._test_against_server(ip, domain, expected_servers) + self._test_SRV_rec_against_server(ip, self.domain, + expected_servers) def test_nsupdate_without_locations(self): """Test nsupdate file generated by dns-update-system-records Remove all records and the use nsupdate to restore state and test if all record are there as expected""" - domain = DNSName(self.master.domain.name).make_absolute() - filepath = '/tmp/ipa.nsupdate' - self.master.run_command([ - 'ipa', 'dns-update-system-records', '--dry-run', '--out', filepath - ]) - # delete original records first - for rname, _port in IPA_DEFAULT_MASTER_SRV_REC: - self.master.run_command([ - 'ipa', 'dnsrecord-del', str(domain), str(rname), '--del-all' - ]) - - # allow unauthenticates nsupdate (no need to testing authentication) - self.master.run_command([ - 'ipa', 'dnszone-mod', str(domain), - '--update-policy=grant * wildcard *;' - ]) - self.master.run_command(['nsupdate', '-g', filepath]) - time.sleep(5) # give time to named to process everything from update + self.delete_update_system_records(rnames=(r[0] for r in + IPA_DEFAULT_MASTER_SRV_REC)) self.test_without_locations() def test_one_replica_in_location(self): @@ -163,11 +226,11 @@ class TestDNSLocations(IntegrationTest): DNSName(self.master.domain.name).make_absolute() ) - self._test_against_server( + self._test_SRV_rec_against_server( self.replicas[0].ip, domain_prague_loc, servers_prague_loc) for ip in (self.master.ip, self.replicas[1].ip): - self._test_against_server( + self._test_SRV_rec_against_server( ip, domain_without_loc, servers_without_loc) def test_two_replicas_in_location(self): @@ -206,13 +269,13 @@ class TestDNSLocations(IntegrationTest): DNSName('{}._locations'.format(self.LOC_PARIS)) + DNSName( self.master.domain.name).make_absolute()) - self._test_against_server( + self._test_SRV_rec_against_server( self.replicas[0].ip, domain_prague_loc, servers_prague_loc) - self._test_against_server( + self._test_SRV_rec_against_server( self.replicas[1].ip, domain_paris_loc, servers_paris_loc) - self._test_against_server( + self._test_SRV_rec_against_server( self.master.ip, domain_without_loc, servers_without_loc) def test_all_servers_in_location(self): @@ -244,11 +307,12 @@ class TestDNSLocations(IntegrationTest): DNSName('{}._locations'.format(self.LOC_PARIS)) + DNSName( self.master.domain.name).make_absolute()) - self._test_against_server( + self._test_SRV_rec_against_server( self.replicas[0].ip, domain_prague_loc, servers_prague_loc) for ip in (self.replicas[1].ip, self.master.ip): - self._test_against_server(ip, domain_paris_loc, servers_paris_loc) + self._test_SRV_rec_against_server(ip, domain_paris_loc, + servers_paris_loc) def test_change_weight(self): """Change weight of master and test if records changed properly @@ -282,8 +346,106 @@ class TestDNSLocations(IntegrationTest): DNSName('{}._locations'.format(self.LOC_PARIS)) + DNSName( self.master.domain.name).make_absolute()) - self._test_against_server( + self._test_SRV_rec_against_server( self.replicas[0].ip, domain_prague_loc, servers_prague_loc) for ip in (self.replicas[1].ip, self.master.ip): - self._test_against_server(ip, domain_paris_loc, servers_paris_loc) + self._test_SRV_rec_against_server(ip, domain_paris_loc, + servers_paris_loc) + + def test_restore_locations_and_weight(self): + """Restore locations and weight. Not just for test purposes but also + for the following tests""" + + for hostname in (self.master.hostname, self.replicas[0].hostname, + self.replicas[1].hostname): + self.master.run_command(['ipa', 'server-mod', hostname, + '--location=''']) + + self.master.run_command(['ipa', 'location-del', self.LOC_PRAGUE]) + self.master.run_command(['ipa', 'location-del', self.LOC_PARIS]) + + self.master.run_command([ + 'ipa', 'server-mod', self.master.hostname, '--service-weight', + str(self.WEIGHT) + ]) + + tasks.restart_named(self.master, self.replicas[0], self.replicas[1]) + time.sleep(5) + + def test_ipa_ca_records(self): + """ Test ipa-ca dns records with firstly removing the records and then + using the nsupdate generated by dns-update-system-records""" + self.delete_update_system_records(rnames=IPA_CA_A_REC) + + expected_servers = (self.master.ip, self.replicas[1].ip) + + for ip in (self.master.ip, self.replicas[0].ip, self.replicas[1].ip): + self._test_A_rec_against_server(ip, self.domain, expected_servers) + + def test_ntp_srv_records(self): + """ Test NTP dns records with firstly removing the records and then + using the nsupdate generated by dns-update-system-records.""" + self.delete_update_system_records(rnames=(r[0] for r in + IPA_DEFAULT_NTP_SRV_REC)) + + # we installed NTP only on master and replica[0] + expected_servers = ( + (self.PRIO_HIGH, self.WEIGHT, DNSName(self.master.hostname)), + (self.PRIO_HIGH, self.WEIGHT, DNSName(self.replicas[0].hostname)), + ) + + for ip in (self.master.ip, self.replicas[0].ip, self.replicas[1].ip): + self._test_SRV_rec_against_server(ip, self.domain, + expected_servers, + rec_list=IPA_DEFAULT_NTP_SRV_REC) + + def test_adtrust_system_records(self): + """ Test ADTrust dns records with firstly installing a trust then + removing the records and using the nsupdate generated by + dns-update-system-records.""" + self.master.run_command(['ipa-adtrust-install', '-U', + '--enable-compat', '--netbios-name', 'IPA', + '-a', self.master.config.admin_password, + '--add-sids']) + # lets re-kinit after adtrust-install and restart named + tasks.kinit_admin(self.master) + tasks.restart_named(self.master) + time.sleep(5) + self.delete_update_system_records(rnames=(r[0] for r in + IPA_DEFAULT_ADTRUST_SRV_REC)) + + expected_servers = ( + (self.PRIO_HIGH, self.WEIGHT, DNSName(self.master.hostname)), + ) + + for ip in (self.master.ip, self.replicas[0].ip, self.replicas[1].ip): + self._test_SRV_rec_against_server( + ip, self.domain, expected_servers, + rec_list=IPA_DEFAULT_ADTRUST_SRV_REC) + + def test_remove_replica_with_ca(self): + """Test ipa-ca dns records after removing the replica with CA""" + tasks.uninstall_replica(self.master, self.replicas[1]) + + self.delete_update_system_records(rnames=IPA_CA_A_REC) + + expected_servers = (self.master.ip,) + + self._test_A_rec_against_server(self.master.ip, self.domain, + expected_servers) + + def test_remove_replica_with_ntp(self): + """Test NTP dns records after removing the replica with NTP""" + tasks.uninstall_replica(self.master, self.replicas[0]) + + self.delete_update_system_records(rnames=(r[0] for r in + IPA_DEFAULT_NTP_SRV_REC)) + + expected_servers = ( + (self.PRIO_HIGH, self.WEIGHT, DNSName(self.master.hostname)), + ) + + self._test_SRV_rec_against_server(self.master.ip, self.domain, + expected_servers, + rec_list=IPA_DEFAULT_NTP_SRV_REC) diff --git a/ipatests/test_integration/test_external_ca.py b/ipatests/test_integration/test_external_ca.py index 7fc89cc94..e3c44100e 100644 --- a/ipatests/test_integration/test_external_ca.py +++ b/ipatests/test_integration/test_external_ca.py @@ -1,8 +1,6 @@ -# Authors: -# Ana Krivokapic # -# Copyright (C) 2013 Red Hat -# see file 'COPYING' for use and warranty information +# Copyright (C) 2017 FreeIPA Contributors see COPYING for license +# # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,21 +14,19 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see . + import os -import base64 from ipatests.pytest_plugins.integration import tasks from ipatests.test_integration.base import IntegrationTest - - -EXTERNAL_CA_KEY_ID = base64.b64encode(os.urandom(64)) -IPA_CA_KEY_ID = base64.b64encode(os.urandom(64)) +from ipatests.test_integration.create_external_ca import ExternalCA class TestExternalCA(IntegrationTest): """ Test of FreeIPA server installation with exernal CA """ + @tasks.collect_logs def test_external_ca(self): # Step 1 of ipa-server-install self.master.run_command([ @@ -44,70 +40,31 @@ class TestExternalCA(IntegrationTest): '--external-ca' ]) - nss_db = os.path.join(self.master.config.test_dir, 'testdb') - external_cert_file = os.path.join(nss_db, 'ipa.crt') - external_ca_file = os.path.join(nss_db, 'ca.crt') - noisefile = os.path.join(self.master.config.test_dir, 'noise.txt') - pwdfile = os.path.join(self.master.config.test_dir, 'pwdfile.txt') + test_dir = self.master.config.test_dir - # Create noise and password files for NSS database - self.master.run_command('date | sha256sum > %s' % noisefile) - self.master.run_command('echo %s > %s' % - (self.master.config.admin_password, pwdfile)) + # Get IPA CSR as bytes + ipa_csr = self.master.get_file_contents('/root/ipa.csr') - # Create NSS database - self.master.run_command(['mkdir', nss_db]) - self.master.run_command([ - 'certutil', '-N', - '-d', nss_db, - '-f', pwdfile - ]) + external_ca = ExternalCA() + # Create root CA + root_ca = external_ca.create_ca() + # Sign CSR + ipa_ca = external_ca.sign_csr(ipa_csr) - # Create external CA - self.master.run_command([ - 'certutil', '-S', - '-d', nss_db, - '-f', pwdfile, - '-n', 'external', - '-s', 'CN=External CA, O=%s' % self.master.domain.name, - '-x', - '-t', 'CTu,CTu,CTu', - '-g', '2048', - '-m', '0', - '-v', '60', - '-z', noisefile, - '-2', '-1', '-5', '--extSKID' - ], stdin_text='5\n9\nn\ny\n10\ny\n{}\nn\n5\n6\n7\n9\nn\n' - ''.format(EXTERNAL_CA_KEY_ID)) + root_ca_fname = os.path.join(test_dir, 'root_ca.crt') + ipa_ca_fname = os.path.join(test_dir, 'ipa_ca.crt') - # Sign IPA cert request using the external CA - self.master.run_command([ - 'certutil', '-C', - '-d', nss_db, - '-f', pwdfile, - '-c', 'external', - '-m', '1', - '-v', '60', - '-2', '-1', '-3', '--extSKID', - '-i', '/root/ipa.csr', - '-o', external_cert_file, - '-a' - ], stdin_text='0\n1\n5\n9\ny\ny\n\ny\ny\n{}\n-1\n\nn\n{}\nn\n' - ''.format(EXTERNAL_CA_KEY_ID, IPA_CA_KEY_ID)) - - # Export external CA file - self.master.run_command( - 'certutil -L -d %s -n "external" -a > %s' % - (nss_db, external_ca_file) - ) + # Transport certificates (string > file) to master + self.master.put_file_contents(root_ca_fname, root_ca) + self.master.put_file_contents(ipa_ca_fname, ipa_ca) # Step 2 of ipa-server-install self.master.run_command([ 'ipa-server-install', '-a', self.master.config.admin_password, '-p', self.master.config.dirman_password, - '--external-cert-file', external_cert_file, - '--external-cert-file', external_ca_file + '--external-cert-file', ipa_ca_fname, + '--external-cert-file', root_ca_fname ]) # Make sure IPA server is working properly diff --git a/ipatests/test_integration/test_forced_client_reenrollment.py b/ipatests/test_integration/test_forced_client_reenrollment.py index 9b514e38e..c3db554ea 100644 --- a/ipatests/test_integration/test_forced_client_reenrollment.py +++ b/ipatests/test_integration/test_forced_client_reenrollment.py @@ -43,6 +43,19 @@ class TestForcedClientReenrollment(IntegrationTest): def install(cls, mh): super(TestForcedClientReenrollment, cls).install(mh) tasks.install_master(cls.master) + + cls.client_dom = cls.clients[0].hostname.split('.', 1)[1] + if cls.client_dom != cls.master.domain.name: + # In cases where client is managed by upstream DNS server we + # overlap its zone so we can save DNS records (e.g. SSHFP) for + # comparison. + servers = [cls.master] + cls.replicas + tasks.add_dns_zone(cls.master, cls.client_dom, + skip_overlap_check=True, + dynamic_update=True, + add_a_record_hosts=servers + ) + tasks.install_replica(cls.master, cls.replicas[0], setup_ca=False) cls.BACKUP_KEYTAB = os.path.join( cls.master.config.test_dir, @@ -162,13 +175,14 @@ class TestForcedClientReenrollment(IntegrationTest): '-p', 'tcp', '--dport', '22' ]) - client.run_command([ - 'iptables', - '-A', 'INPUT', - '-j', 'REJECT', - '-p', 'all', - '--source', self.master.ip - ]) + for host in [self.master] + self.replicas: + client.run_command([ + 'iptables', + '-A', 'INPUT', + '-j', 'REJECT', + '-p', 'all', + '--source', host.ip + ]) self.uninstall_client() client.run_command(['iptables', '-F']) @@ -246,7 +260,7 @@ class TestForcedClientReenrollment(IntegrationTest): client_host = self.clients[0].hostname.split('.')[0] result = self.master.run_command( - ['ipa', 'dnsrecord-show', self.master.domain.name, client_host] + ['ipa', 'dnsrecord-show', self.client_dom, client_host] ) lines = result.stdout_text.splitlines() @@ -270,11 +284,13 @@ class TestForcedClientReenrollment(IntegrationTest): contents = self.master.get_file_contents(self.BACKUP_KEYTAB) self.clients[0].put_file_contents(self.BACKUP_KEYTAB, contents) - def fix_resolv_conf(self, client, server): + @classmethod + def fix_resolv_conf(cls, client, server): """ Put server's ip address at the top of resolv.conf """ - contents = client.get_file_contents(paths.RESOLV_CONF) + contents = client.get_file_contents(paths.RESOLV_CONF, + encoding='utf-8') nameserver = 'nameserver %s\n' % server.ip if not contents.startswith(nameserver): @@ -284,6 +300,9 @@ class TestForcedClientReenrollment(IntegrationTest): @pytest.fixture() def client(request): + # Here we call "fix_resolv_conf" method before every ipa-client-install so + # we get the client pointing to ipa master as DNS server. + request.cls.fix_resolv_conf(request.cls.clients[0], request.cls.master) tasks.install_client(request.cls.master, request.cls.clients[0]) def teardown_client(): diff --git a/ipatests/test_integration/test_installation.py b/ipatests/test_integration/test_installation.py index b13c9996b..2031ad5a2 100644 --- a/ipatests/test_integration/test_installation.py +++ b/ipatests/test_integration/test_installation.py @@ -111,6 +111,7 @@ class ADTrustInstallTestBase(IntegrationTest): # Master X Replicas installation tests ## +@pytest.mark.xfail(reason="FreeIPA ticket 7008") class TestInstallWithCA1(InstallTestBase1): @classmethod @@ -133,6 +134,7 @@ class TestInstallWithCA1(InstallTestBase1): super(TestInstallWithCA1, self).test_replica2_ipa_dns_install() +@pytest.mark.xfail(reason="FreeIPA ticket 7008") class TestInstallWithCA2(InstallTestBase2): @classmethod @@ -172,6 +174,7 @@ class TestInstallWithCA_KRA2(InstallTestBase2): tasks.install_master(cls.master, setup_dns=False, setup_kra=True) +@pytest.mark.xfail(reason="FreeIPA ticket 7008") class TestInstallWithCA_DNS1(InstallTestBase1): @classmethod @@ -194,6 +197,7 @@ class TestInstallWithCA_DNS1(InstallTestBase1): super(TestInstallWithCA_DNS1, self).test_replica2_ipa_dns_install() +@pytest.mark.xfail(reason="FreeIPA ticket 7008") class TestInstallWithCA_DNS2(InstallTestBase2): @classmethod diff --git a/ipatests/test_integration/test_replica_promotion.py b/ipatests/test_integration/test_replica_promotion.py index bc52566f1..4629d1ff0 100644 --- a/ipatests/test_integration/test_replica_promotion.py +++ b/ipatests/test_integration/test_replica_promotion.py @@ -3,6 +3,8 @@ # import time +from tempfile import NamedTemporaryFile +import textwrap import pytest from ipatests.test_integration.base import IntegrationTest from ipatests.pytest_plugins.integration import tasks @@ -483,3 +485,45 @@ class TestRenewalMaster(IntegrationTest): assert("IPA CA renewal master: %s" % self.master.hostname in result), ( "Master hostname not found among CA renewal masters" ) + + +class TestReplicaInstallWithExistingEntry(IntegrationTest): + """replica install might fail because of existing entry for replica like + `cn=ipa-http-delegation,cn=s4u2proxy,cn=etc,$SUFFIX` etc. The situation + may arise due to incorrect uninstall of replica. + + https://pagure.io/freeipa/issue/7174""" + + num_replicas = 1 + + def test_replica_install_with_existing_entry(self): + master = self.master + tasks.install_master(master) + replica = self.replicas[0] + tf = NamedTemporaryFile() + ldif_file = tf.name + base_dn = "dc=%s" % (",dc=".join(replica.domain.name.split("."))) + # adding entry for replica on master so that master will have it before + # replica installtion begins and creates a situation for pagure-7174 + entry_ldif = textwrap.dedent(""" + dn: cn=ipa-http-delegation,cn=s4u2proxy,cn=etc,{base_dn} + changetype: modify + add: memberPrincipal + memberPrincipal: HTTP/{hostname}@{realm} + + dn: cn=ipa-ldap-delegation-targets,cn=s4u2proxy,cn=etc,{base_dn} + changetype: modify + add: memberPrincipal + memberPrincipal: ldap/{hostname}@{realm}""").format( + base_dn=base_dn, hostname=replica.hostname, + realm=replica.domain.name.upper()) + master.put_file_contents(ldif_file, entry_ldif) + arg = ['ldapmodify', + '-h', master.hostname, + '-p', '389', '-D', + str(master.config.dirman_dn), # pylint: disable=no-member + '-w', master.config.dirman_password, + '-f', ldif_file] + master.run_command(arg) + + tasks.install_replica(master, replica) diff --git a/ipatests/test_integration/test_replication_layouts.py b/ipatests/test_integration/test_replication_layouts.py index f1408453b..d631cad60 100644 --- a/ipatests/test_integration/test_replication_layouts.py +++ b/ipatests/test_integration/test_replication_layouts.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2015 FreeIPA Contributors see COPYING for license +# Copyright (C) 2017 FreeIPA Contributors see COPYING for license # import time diff --git a/ipatests/test_integration/test_vault.py b/ipatests/test_integration/test_vault.py index aca608fa6..496ccb1bb 100644 --- a/ipatests/test_integration/test_vault.py +++ b/ipatests/test_integration/test_vault.py @@ -7,7 +7,7 @@ import time from ipatests.test_integration.base import IntegrationTest from ipatests.pytest_plugins.integration import tasks -WAIT_AFTER_ARCHIVE = 30 # give some time to replication +WAIT_AFTER_ARCHIVE = 45 # give some time to replication class TestInstallKRA(IntegrationTest): diff --git a/ipatests/test_ipalib/test_errors.py b/ipatests/test_ipalib/test_errors.py index 893a3e9b9..04b6e5741 100644 --- a/ipatests/test_ipalib/test_errors.py +++ b/ipatests/test_ipalib/test_errors.py @@ -65,7 +65,6 @@ class PrivateExceptionTester(object): for (key, value) in kw.items(): assert getattr(inst, key) is value assert str(inst) == self.klass.format % kw - assert inst.message == str(inst) return inst @@ -119,7 +118,6 @@ class test_SubprocessError(PrivateExceptionTester): assert inst.returncode == 1 assert inst.argv == (bin_false,) assert str(inst) == "return code 1 from ('{}',)".format(bin_false) - assert inst.message == str(inst) class test_PluginSubclassError(PrivateExceptionTester): @@ -138,7 +136,6 @@ class test_PluginSubclassError(PrivateExceptionTester): assert inst.bases == ('base1', 'base2') assert str(inst) == \ "'bad' not subclass of any base in ('base1', 'base2')" - assert inst.message == str(inst) class test_PluginDuplicateError(PrivateExceptionTester): @@ -155,7 +152,6 @@ class test_PluginDuplicateError(PrivateExceptionTester): inst = self.new(plugin='my_plugin') assert inst.plugin == 'my_plugin' assert str(inst) == "'my_plugin' was already registered" - assert inst.message == str(inst) class test_PluginOverrideError(PrivateExceptionTester): @@ -174,7 +170,6 @@ class test_PluginOverrideError(PrivateExceptionTester): assert inst.name == 'cmd' assert inst.plugin == 'my_cmd' assert str(inst) == "unexpected override of Base.cmd with 'my_cmd'" - assert inst.message == str(inst) class test_PluginMissingOverrideError(PrivateExceptionTester): @@ -193,8 +188,6 @@ class test_PluginMissingOverrideError(PrivateExceptionTester): assert inst.name == 'cmd' assert inst.plugin == 'my_cmd' assert str(inst) == "Base.cmd not registered, cannot override with 'my_cmd'" - assert inst.message == str(inst) - ############################################################################## @@ -250,7 +243,7 @@ class test_PublicError(PublicExceptionTester): # Test with format=str, message=None inst = self.klass(format, **kw) assert inst.format is format - assert_equal(inst.message, format % kw) + assert_equal(str(inst), format % kw) assert inst.forwarded is False assert inst.key1 is val1 assert inst.key2 is val2 @@ -258,7 +251,7 @@ class test_PublicError(PublicExceptionTester): # Test with format=None, message=unicode inst = self.klass(message=message, **kw) assert inst.format is None - assert inst.message is message + assert str(inst) == message assert inst.strerror is message assert inst.forwarded is True assert inst.key1 is val1 @@ -281,7 +274,7 @@ class test_PublicError(PublicExceptionTester): inst = self.new(format, **kw) assert isinstance(inst, self.klass) assert inst.format is format - assert_equal(inst.message, format % kw) + assert_equal(str(inst), format % kw) assert inst.forwarded is False assert inst.key1 is val1 assert inst.key2 is val2 @@ -290,7 +283,7 @@ class test_PublicError(PublicExceptionTester): inst = self.new(message=message, **kw) assert isinstance(inst, self.klass) assert inst.format is None - assert inst.message is message + assert str(inst) == message assert inst.strerror is message assert inst.forwarded is True assert inst.key1 is val1 @@ -312,7 +305,7 @@ class test_PublicError(PublicExceptionTester): # Test with format=None, message=None: inst = subclass(**kw) assert inst.format is subclass.format - assert_equal(inst.message, subclass.format % kw) + assert_equal(str(inst), subclass.format % kw) assert inst.forwarded is False assert inst.true is True assert inst.text is kw['text'] @@ -321,7 +314,7 @@ class test_PublicError(PublicExceptionTester): # Test with format=None, message=unicode: inst = subclass(message=message, **kw) assert inst.format is subclass.format - assert inst.message is message + assert str(inst) == message assert inst.strerror is message assert inst.forwarded is True assert inst.true is True diff --git a/ipatests/test_ipalib/test_parameters.py b/ipatests/test_ipalib/test_parameters.py index 0a69f9109..a8b72dd1c 100644 --- a/ipatests/test_ipalib/test_parameters.py +++ b/ipatests/test_ipalib/test_parameters.py @@ -25,6 +25,7 @@ Test the `ipalib.parameters` module. # FIXME: Pylint errors # pylint: disable=no-member +import base64 import datetime import re import sys @@ -36,11 +37,13 @@ import six # pylint: disable=import-error from six.moves.xmlrpc_client import MAXINT, MININT # pylint: enable=import-error +from cryptography import x509 as crypto_x509 +from cryptography.hazmat.backends import default_backend from ipatests.util import raises, ClassChecker, read_only from ipatests.util import dummy_ugettext, assert_equal from ipatests.data import binary_bytes, utf8_bytes, unicode_str -from ipalib import parameters, text, errors, config +from ipalib import parameters, text, errors, config, x509 from ipalib.constants import TYPE_ERROR, CALLABLE_ERROR from ipalib.errors import ValidationError, ConversionError from ipalib import _ @@ -1630,3 +1633,121 @@ class test_DateTime(ClassChecker): u'1991-12-07T25:30:05Z', ): raises(ConversionError, o.convert, value) + + +class test_CertificateSigningRequest(ClassChecker): + """ + Test the `ipalib.parameters.CertificateSigningRequest` class + """ + _cls = parameters.CertificateSigningRequest + + sample_csr = ( + b'-----BEGIN CERTIFICATE REQUEST-----\n' + b'MIIBjjCB+AIBADBPMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEQ\n' + b'MA4GA1UEChMHRXhhbXBsZTEZMBcGA1UEAxMQdGVzdC5leGFtcGxlLmNvbTCBnzAN\n' + b'BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyxsN5dmvyKiw+5nyrcO3a61sivZRg+ja\n' + b'kyNIyUo+tIUiYwTdpPESAHTWRlk0XhydauAkWfOIN7pR3a5Z+kQw8W7F+DuZze2M\n' + b'6wRNmN+NTrTlqnKOiMHBXhIM0Qxrx68GDctYqtnKTVT94FvvLl9XYVdUEi2ePTc2\n' + b'Nyfr1z66+W0CAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAIf3r+Y6WHrFnttUqDow\n' + b'9/UCHtCeQlQoJqjjxi5wcjbkGwTgHbx/BPOd/8OVaHElboMXLGaZx+L/eFO6E9Yg\n' + b'mDOYv3OsibDFGaEhJrU8EnfuFZKnbrGeSC9Hkqrq+3OjqacaPla5N7MHKbfLY377\n' + b'ddbOHKzR0sURZ+ro4z3fATW2\n' + b'-----END CERTIFICATE REQUEST-----\n' + ) + # certmonger <= 0.79.5 (most probably in higher versions, too) will be + # sending us just base64-encoded DER certs without the information it's + # base64-encoded bytes (__base64__: in the JSON request), we need to + # support that too, unfortunately + sample_base64 = ( + "MIICETCCAXoCAQAwTzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWEx" + "EDAOBgNVBAoTB0V4YW1wbGUxGTAXBgNVBAMTEHRlc3QuZXhhbXBsZS5jb20wgZ8w" + "DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOXfP8LeiU7g6wLCclgkT1lVskK+Lxm1" + "6ijE4LmEQBk5nn2P46im+E/UOgTddbDo5cdJlkoCnqXkO4RkqJckXYDxfI34KL3C" + "CRFPvOa5Sg02m1x5Rg3boZfS6NciP62lRp0SI+0TCt3F16wYZxMahVIOXjbJ6Lu5" + "mGjNn7XaWJhFAgMBAAGggYEwfwYJKoZIhvcNAQkOMXIwcDAeBgNVHREEFzAVghN0" + "ZXN0bG93LmV4YW1wbGUuY29tME4GA1UdHwRHMEUwQ6BBoD+GHGh0dHA6Ly9jYS5l" + "eGFtcGxlLmNvbS9teS5jcmyGH2h0dHA6Ly9vdGhlci5leGFtcGxlLmNvbS9teS5j" + "cmwwDQYJKoZIhvcNAQEFBQADgYEAkv8pppcgGhX7erJmvg9r2UHrRriuKaOYgKZQ" + "lf/eBt2N0L2mV4QvCY82H7HWuE+7T3mra9ikfvz0nYkPJQe2gntjZzECE0Jt5LWR" + "UZOFwX8N6wrX11U2xu0NlvsbjU6siWd6OZjZ1p5/V330lzut/q3CNzaAcW1Fx3wL" + "sV5SXSw=" + ) + sample_der_csr = ( + b'0\x82\x02\x110\x82\x01z\x02\x01\x000O1\x0b0\t\x06\x03U\x04\x06\x13' + b'\x02US1\x130\x11\x06\x03U\x04\x08\x13\nCalifornia1\x100\x0e\x06\x03U' + b'\x04\n\x13\x07Example1\x190\x17\x06\x03U\x04\x03\x13\x10test.example' + b'.com0\x81\x9f0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x01\x05\x00\x03\x81' + b'\x8d\x000\x81\x89\x02\x81\x81\x00\xe5\xdf?\xc2\xde\x89N\xe0\xeb\x02' + b'\xc2rX$OYU\xb2B\xbe/\x19\xb5\xea(\xc4\xe0\xb9\x84@\x199\x9e}\x8f\xe3' + b'\xa8\xa6\xf8O\xd4:\x04\xddu\xb0\xe8\xe5\xc7I\x96J\x02\x9e\xa5\xe4;' + b'\x84d\xa8\x97$]\x80\xf1|\x8d\xf8(\xbd\xc2\t\x11O\xbc\xe6\xb9J\r6\x9b' + b'\\yF\r\xdb\xa1\x97\xd2\xe8\xd7"?\xad\xa5F\x9d\x12#\xed\x13\n\xdd\xc5' + b'\xd7\xac\x18g\x13\x1a\x85R\x0e^6\xc9\xe8\xbb\xb9\x98h\xcd\x9f\xb5' + b'\xdaX\x98E\x02\x03\x01\x00\x01\xa0\x81\x810\x7f\x06\t*\x86H\x86\xf7' + b'\r\x01\t\x0e1r0p0\x1e\x06\x03U\x1d\x11\x04\x170\x15\x82\x13' + b'testlow.example.com0N\x06\x03U\x1d\x1f\x04G0E0C\xa0A\xa0?\x86' + b'\x1chttp://ca.example.com/my.crl\x86\x1fhttp://other.example.com/' + b'my.crl0\r\x06\t*\x86H\x86\xf7\r\x01\x01\x05\x05\x00\x03\x81\x81\x00' + b'\x92\xff)\xa6\x97 \x1a\x15\xfbz\xb2f\xbe\x0fk\xd9A\xebF\xb8\xae)\xa3' + b'\x98\x80\xa6P\x95\xff\xde\x06\xdd\x8d\xd0\xbd\xa6W\x84/\t\x8f6\x1f' + b'\xb1\xd6\xb8O\xbbOy\xabk\xd8\xa4~\xfc\xf4\x9d\x89\x0f%\x07\xb6\x82' + b'{cg1\x02\x13Bm\xe4\xb5\x91Q\x93\x85\xc1\x7f\r\xeb\n\xd7\xd7U6\xc6' + b'\xed\r\x96\xfb\x1b\x8dN\xac\x89gz9\x98\xd9\xd6\x9e\x7fW}\xf4\x97;' + b'\xad\xfe\xad\xc276\x80qmE\xc7|\x0b\xb1^R],' + ) + malformed_csr = ( + b'-----BEGIN CERTIFICATE REQUEST-----\n' + b'VGhpcyBpcyBhbiBpbnZhbGlkIENTUg==\n' + b'-----END CERTIFICATE REQUEST-----\n' + ) + + def test_init(self): + # create the parameter + o = self.cls('csr') + assert o.type is crypto_x509.CertificateSigningRequest + assert isinstance(o, parameters.CertificateSigningRequest) + assert o.multivalue is False + + def test_convert(self): + o = self.cls('csr') + + # test that we're able to handle PEM CSR input equally as bytes, string + # and cryptography x509._CertificateSigningRequest object + for prep_input in ( + lambda x: x, + lambda x: x.decode('utf-8'), + lambda x: crypto_x509.load_pem_x509_csr(x, default_backend()) + ): + # test that input is correctly converted to python-crytography + # object representation + csr_object = o.convert(prep_input(self.sample_csr)) + assert isinstance(csr_object, + crypto_x509.CertificateSigningRequest) + assert (csr_object.public_bytes(x509.Encoding.PEM) == + self.sample_csr) + + # test that we fail the same with malformed CSR as bytes or str + for prep_input in ( + lambda x: x, + lambda x: x.decode('utf-8'), + ): + # test that malformed CSRs won't be accepted + raises(errors.CertificateOperationError, + o.convert, + prep_input(self.malformed_csr)) + + # test DER as an input to the convert method + csr_object = o.convert(self.sample_der_csr) + assert isinstance(csr_object, crypto_x509.CertificateSigningRequest) + assert (csr_object.public_bytes(x509.Encoding.DER) == + self.sample_der_csr) + + # test base64-encoded DER as an input to the convert method + csr_object = o.convert(self.sample_base64) + assert isinstance(csr_object, crypto_x509.CertificateSigningRequest) + assert (csr_object.public_bytes(x509.Encoding.DER) == + base64.b64decode(self.sample_base64)) + + # test that wrong type will not be accepted + bad_value = datetime.date.today() + raises(ConversionError, o.convert, bad_value) diff --git a/ipatests/test_ipalib/test_rpc.py b/ipatests/test_ipalib/test_rpc.py index 7fe058092..20afa8b12 100644 --- a/ipatests/test_ipalib/test_rpc.py +++ b/ipatests/test_ipalib/test_rpc.py @@ -28,8 +28,10 @@ import six # pylint: disable=import-error from six.moves.xmlrpc_client import Binary, Fault, dumps, loads # pylint: enable=import-error +from six.moves import urllib from ipatests.util import raises, assert_equal, PluginTester, DummyClass +from ipatests.util import Fuzzy from ipatests.data import binary_bytes, utf8_bytes, unicode_str from ipalib.frontend import Command from ipalib.request import context, Connection @@ -258,6 +260,7 @@ class test_xmlclient(PluginTester): @pytest.mark.skip_ipaclient_unittest +@pytest.mark.needs_ipaapi class test_xml_introspection(object): @classmethod def setup_class(cls): @@ -341,3 +344,54 @@ class test_xml_introspection(object): "command 'system.methodHelp' takes at most 1 argument") else: raise AssertionError('did not raise') + + +@pytest.mark.skip_ipaclient_unittest +@pytest.mark.needs_ipaapi +class test_rpcclient_context(PluginTester): + """ + Test the context in `ipalib.rpc.rpcclient` plugin. + """ + def setup(self): + try: + api.Backend.rpcclient.connect(ca_certfile='foo') + except (errors.NetworkError, IOError): + raise nose.SkipTest('%r: Server not available: %r' % + (__name__, api.env.xmlrpc_uri)) + + def teardown(self): + if api.Backend.rpcclient.isconnected(): + api.Backend.rpcclient.disconnect() + + def test_context_cafile(self): + """ + Test that ca_certfile is set in `ipalib.rpc.rpcclient.connect` + """ + ca_certfile = getattr(context, 'ca_certfile', None) + assert_equal(ca_certfile, 'foo') + + def test_context_principal(self): + """ + Test that principal is set in `ipalib.rpc.rpcclient.connect` + """ + principal = getattr(context, 'principal', None) + assert_equal(principal, 'admin@%s' % api.env.realm) + + def test_context_request_url(self): + """ + Test that request_url is set in `ipalib.rpc.rpcclient.connect` + """ + request_url = getattr(context, 'request_url', None) + assert_equal(request_url, 'https://%s/ipa/session/json' % api.env.host) + + def test_context_session_cookie(self): + """ + Test that session_cookie is set in `ipalib.rpc.rpcclient.connect` + """ + fuzzy_cookie = Fuzzy('^ipa_session=MagBearerToken=[A-Za-z0-9+\/]+=*;$') + + session_cookie = getattr(context, 'session_cookie', None) + # pylint-2 is incorrectly spewing Too many positional arguments + # pylint: disable=E1121 + unquoted = urllib.parse.unquote(session_cookie) + assert(unquoted == fuzzy_cookie) diff --git a/ipatests/test_ipalib/test_text.py b/ipatests/test_ipalib/test_text.py index 3d72d2b8f..37281441d 100644 --- a/ipatests/test_ipalib/test_text.py +++ b/ipatests/test_ipalib/test_text.py @@ -33,7 +33,6 @@ import pytest from ipatests.i18n import create_po, po_file_iterate from ipalib.request import context from ipalib import text -from ipapython.ipautil import file_exists if six.PY3: unicode = str @@ -106,11 +105,11 @@ class test_TestLang(object): raise nose.SkipTest('Unable to create po file "%s" & mo file "%s" from pot file "%s"' % (self.po_file, self.mo_file, self.pot_file)) - if not file_exists(self.po_file): + if not os.path.isfile(self.po_file): raise nose.SkipTest( 'Test po file unavailable: {}'.format(self.po_file)) - if not file_exists(self.mo_file): + if not os.path.isfile(self.mo_file): raise nose.SkipTest( 'Test mo file unavailable: {}'.format(self.mo_file)) diff --git a/ipatests/test_ipalib/test_x509.py b/ipatests/test_ipalib/test_x509.py index 904152aac..09b393389 100644 --- a/ipatests/test_ipalib/test_x509.py +++ b/ipatests/test_ipalib/test_x509.py @@ -60,6 +60,31 @@ badcert = ( b'-----END CERTIFICATE-----' ) +good_pkcs7 = ( + b'-----BEGIN PKCS7-----\n' + b'MIIDvAYJKoZIhvcNAQcCoIIDrTCCA6kCAQExADALBgkqhkiG9w0BBwGgggOPMIID\n' + b'izCCAnOgAwIBAgIBATANBgkqhkiG9w0BAQsFADA2MRQwEgYDVQQKDAtFWEFNUExF\n' + b'LkNPTTEeMBwGA1UEAwwVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTE3MDkyMDIw\n' + b'NDI1N1oXDTM3MDkyMDIwNDI1N1owNjEUMBIGA1UECgwLRVhBTVBMRS5DT00xHjAc\n' + b'BgNVBAMMFUNlcnRpZmljYXRlIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQAD\n' + b'ggEPADCCAQoCggEBAMNojX57UCCPTtEn9tQJBS4By5NixwodKm1UqOGsiecDrB0i\n' + b'Pw7D6uGP6g4b6srYtbh+YsRJnfekB2L08q1dX3LVEItq2TS0WKqgZuRZkw7DvnGl\n' + b'eANMwjHmE8k6/E0yI3GGxJLAfDZYw6CDspLkyN9anjQwVCz5N5z5bpeqi5BeVwin\n' + b'O8WVF6FNn3iyL66uwOsTGEzCo3Y5HiwqYgaND73TtdsBHcIqOdRql3CC3IdoXXcW\n' + b'044w4Lm2E95MuY729pPBHREtyzVkYtyuoKJ8KApghIY5oCklBkRDjyFK4tE7iF/h\n' + b's+valeT9vcz2bHMIpvbjqAu/kqE8MjcNEFPjLhcCAwEAAaOBozCBoDAfBgNVHSME\n' + b'GDAWgBTUB04/d1eLhbMtBi4AB65tsAt+2TAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud\n' + b'DwEB/wQEAwIBxjAdBgNVHQ4EFgQU1AdOP3dXi4WzLQYuAAeubbALftkwPQYIKwYB\n' + b'BQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwOi8vaXBhLWNhLmdyZXlvYWsuY29t\n' + b'L2NhL29jc3AwDQYJKoZIhvcNAQELBQADggEBADQFwX1uh8tqLq8SqWZWtH95j33o\n' + b'5Ze2dW7sVppb/wVnNauG0wDQW7uIx+Ynr7GgufXLNBMn1aP/mA2CdHk7NZz2IB1s\n' + b'ZvbIfE8dVxzkA+Hh9d6cdgk4eU5rGf6Fw8ScEJ/48Mmncea3uGkHcOmt+BGLA8a1\n' + b'wtruy+iQylOkbv36CbxKV7IsZDP106Zc+cVeOUQZnCLKmvQkotn6UJd8N1X0R2J3\n' + b'4/qv0rUtcCnyEBNSgpTGCRlYM4kd98Dqc5W7wUpMcsQMFxQMSYY7pFQkdLPfJEx2\n' + b'Mg63SPawxfAgUeukrdsF3wTIKkIBu1TVse+kvRvgmRRrfF2a4ZOv5qORe2uhADEA\n' + b'-----END PKCS7-----' +) + class test_x509(object): """ @@ -119,3 +144,10 @@ class test_x509(object): assert cert.serial_number == 1093 assert cert.not_valid_before == not_before assert cert.not_valid_after == not_after + + def test_load_pkcs7_pem(self): + certlist = x509.pkcs7_to_certs(good_pkcs7, datatype=x509.PEM) + assert len(certlist) == 1 + cert = certlist[0] + assert DN(cert.subject) == DN('CN=Certificate Authority,O=EXAMPLE.COM') + assert cert.serial_number == 1 diff --git a/ipatests/test_ipaplatform/__init__.py b/ipatests/test_ipaplatform/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/ipatests/test_ipaplatform/data/os-release-centos b/ipatests/test_ipaplatform/data/os-release-centos new file mode 100644 index 000000000..c276e3ae5 --- /dev/null +++ b/ipatests/test_ipaplatform/data/os-release-centos @@ -0,0 +1,15 @@ +NAME="CentOS Linux" +VERSION="7 (Core)" +ID="centos" +ID_LIKE="rhel fedora" +VERSION_ID="7" +PRETTY_NAME="CentOS Linux 7 (Core)" +ANSI_COLOR="0;31" +CPE_NAME="cpe:/o:centos:centos:7" +HOME_URL="https://www.centos.org/" +BUG_REPORT_URL="https://bugs.centos.org/" + +CENTOS_MANTISBT_PROJECT="CentOS-7" +CENTOS_MANTISBT_PROJECT_VERSION="7" +REDHAT_SUPPORT_PRODUCT="centos" +REDHAT_SUPPORT_PRODUCT_VERSION="7" diff --git a/ipatests/test_ipaplatform/data/os-release-fedora b/ipatests/test_ipaplatform/data/os-release-fedora new file mode 100644 index 000000000..a270edbf5 --- /dev/null +++ b/ipatests/test_ipaplatform/data/os-release-fedora @@ -0,0 +1,16 @@ +NAME=Fedora +VERSION="26 (Workstation Edition)" +ID=fedora +VERSION_ID=26 +PRETTY_NAME="Fedora 26 (Workstation Edition)" +ANSI_COLOR="0;34" +CPE_NAME="cpe:/o:fedoraproject:fedora:26" +HOME_URL="https://fedoraproject.org/" +BUG_REPORT_URL="https://bugzilla.redhat.com/" +REDHAT_BUGZILLA_PRODUCT="Fedora" +REDHAT_BUGZILLA_PRODUCT_VERSION=26 +REDHAT_SUPPORT_PRODUCT="Fedora" +REDHAT_SUPPORT_PRODUCT_VERSION=26 +PRIVACY_POLICY_URL=https://fedoraproject.org/wiki/Legal:PrivacyPolicy +VARIANT="Workstation Edition" +VARIANT_ID=workstation diff --git a/ipatests/test_ipaplatform/data/os-release-ubuntu b/ipatests/test_ipaplatform/data/os-release-ubuntu new file mode 100644 index 000000000..fc9a2bfb2 --- /dev/null +++ b/ipatests/test_ipaplatform/data/os-release-ubuntu @@ -0,0 +1,11 @@ +NAME="Ubuntu" +VERSION="16.04.3 LTS (Xenial Xerus)" +ID=ubuntu +ID_LIKE=debian +PRETTY_NAME="Ubuntu 16.04.3 LTS" +VERSION_ID="16.04" +HOME_URL="http://www.ubuntu.com/" +SUPPORT_URL="http://help.ubuntu.com/" +BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" +VERSION_CODENAME=xenial +UBUNTU_CODENAME=xenial diff --git a/ipatests/test_ipaplatform/test_importhook.py b/ipatests/test_ipaplatform/test_importhook.py new file mode 100644 index 000000000..ca55af158 --- /dev/null +++ b/ipatests/test_ipaplatform/test_importhook.py @@ -0,0 +1,54 @@ +# +# Copyright (C) 2017 FreeIPA Contributors see COPYING for license +# +import os +import sys + +import pytest + +import ipaplatform.constants +import ipaplatform.paths +import ipaplatform.services +import ipaplatform.tasks +from ipaplatform._importhook import metaimporter +try: + from ipaplatform.override import OVERRIDE +except ImportError: + OVERRIDE = None + + +HERE = os.path.dirname(os.path.abspath(__file__)) +DATA = os.path.join(HERE, 'data') + + +@pytest.mark.skipif(OVERRIDE is None, + reason='test requires override') +def test_override(): + assert OVERRIDE == metaimporter.platform_ids[0] + assert OVERRIDE == metaimporter.platform + + +@pytest.mark.parametrize('mod, name', [ + (ipaplatform.constants, 'ipaplatform.constants'), + (ipaplatform.paths, 'ipaplatform.paths'), + (ipaplatform.services, 'ipaplatform.services'), + (ipaplatform.tasks, 'ipaplatform.tasks'), +]) +def test_importhook(mod, name): + assert name in metaimporter.modules + prefix, suffix = name.split('.') + assert prefix == 'ipaplatform' + override = '.'.join((prefix, metaimporter.platform, suffix)) + assert mod.__name__ == override + # dicts are equal, modules may not be identical + assert mod.__dict__ == sys.modules[override].__dict__ + + +@pytest.mark.parametrize('filename, expected_platforms', [ + (os.path.join(DATA, 'os-release-centos'), ['centos', 'rhel', 'fedora']), + (os.path.join(DATA, 'os-release-fedora'), ['fedora']), + (os.path.join(DATA, 'os-release-ubuntu'), ['ubuntu', 'debian']), +]) +def test_parse_os_release(filename, expected_platforms): + parsed = metaimporter._parse_osrelease(filename) + assert parsed == expected_platforms diff --git a/ipatests/test_ipapython/test_dn.py b/ipatests/test_ipapython/test_dn.py index 0f004c581..4dd32366b 100644 --- a/ipatests/test_ipapython/test_dn.py +++ b/ipatests/test_ipapython/test_dn.py @@ -528,6 +528,7 @@ class TestRDN(unittest.TestCase): def test_assignments(self): rdn = RDN((self.attr1, self.value1)) with self.assertRaises(TypeError): + # pylint: disable=unsupported-assignment-operation rdn[0] = self.ava2 def test_iter(self): @@ -954,8 +955,10 @@ class TestDN(unittest.TestCase): def test_assignments(self): dn = DN('t=0,t=1,t=2,t=3,t=4,t=5,t=6,t=7,t=8,t=9') with self.assertRaises(TypeError): + # pylint: disable=unsupported-assignment-operation dn[0] = RDN('t=a') with self.assertRaises(TypeError): + # pylint: disable=unsupported-assignment-operation dn[0:1] = [RDN('t=a'), RDN('t=b')] def test_iter(self): diff --git a/ipatests/test_ipapython/test_ipautil.py b/ipatests/test_ipapython/test_ipautil.py index 75011d508..ec9a3c947 100644 --- a/ipatests/test_ipapython/test_ipautil.py +++ b/ipatests/test_ipapython/test_ipautil.py @@ -25,6 +25,7 @@ Test the `ipapython/ipautil.py` module. import nose import pytest import six +import tempfile from ipapython import ipautil @@ -470,3 +471,9 @@ def test_backcompat(): assert rc is result.returncode assert out is result.output assert err is result.error_output + + +def test_flush_sync(): + with tempfile.NamedTemporaryFile('wb+') as f: + f.write(b'data') + ipautil.flush_sync(f) diff --git a/ipatests/test_ipapython/test_session_storage.py b/ipatests/test_ipapython/test_session_storage.py index 4f9091db3..dde0fe927 100644 --- a/ipatests/test_ipapython/test_session_storage.py +++ b/ipatests/test_ipapython/test_session_storage.py @@ -11,6 +11,7 @@ from ipapython import session_storage @pytest.mark.skip_ipaclient_unittest +@pytest.mark.needs_ipaapi class test_session_storage(object): """ Test the session storage interface diff --git a/ipatests/test_ipapython/test_ssh.py b/ipatests/test_ipapython/test_ssh.py index 848c14cad..4aef498a3 100644 --- a/ipatests/test_ipapython/test_ssh.py +++ b/ipatests/test_ipapython/test_ssh.py @@ -74,8 +74,11 @@ openssh = 'ssh-rsa %s' % b64 (u'vanitas %s' % b64, ValueError), (u'@opt %s' % openssh, ValueError), (u'opt=val %s' % openssh, ValueError), - (u'opt, %s' % openssh, ValueError), -]) + (u'opt, %s' % openssh, ValueError)], + # ids=repr is workaround for pytest issue with NULL bytes, + # see https://github.com/pytest-dev/pytest/issues/2644 + ids=repr +) def test_public_key_parsing(pk, out): if isinstance(out, type) and issubclass(out, Exception): pytest.raises(out, ssh.SSHPublicKey, pk) diff --git a/ipatests/test_ipaserver/test_install/test_cainstance.py b/ipatests/test_ipaserver/test_install/test_cainstance.py new file mode 100644 index 000000000..7af474df4 --- /dev/null +++ b/ipatests/test_ipaserver/test_install/test_cainstance.py @@ -0,0 +1,125 @@ +# +# Copyright (C) 2017 FreeIPA Contributors see COPYING for license +# + +from binascii import hexlify +import pickle +# pylint: disable=import-error +from six.moves.configparser import RawConfigParser +# pylint: enable=import-error +from six import StringIO +import pytest +from ipaserver.install import cainstance + +pytestmark = pytest.mark.tier0 + + +class test_ExternalCAProfile(object): + def test_MSCSTemplateV1_good(self): + o = cainstance.MSCSTemplateV1("MySubCA") + assert hexlify(o.get_ext_data()) == b'1e0e004d007900530075006200430041' + + def test_MSCSTemplateV1_bad(self): + with pytest.raises(ValueError): + cainstance.MSCSTemplateV1("MySubCA:1") + + def test_MSCSTemplateV1_pickle_roundtrip(self): + o = cainstance.MSCSTemplateV1("MySubCA") + s = pickle.dumps(o) + assert o.get_ext_data() == pickle.loads(s).get_ext_data() + + def test_MSCSTemplateV2_too_few_parts(self): + with pytest.raises(ValueError): + cainstance.MSCSTemplateV2("1.2.3.4") + + def test_MSCSTemplateV2_too_many_parts(self): + with pytest.raises(ValueError): + cainstance.MSCSTemplateV2("1.2.3.4:100:200:300") + + def test_MSCSTemplateV2_bad_oid(self): + with pytest.raises(ValueError): + cainstance.MSCSTemplateV2("not_an_oid:1") + + def test_MSCSTemplateV2_non_numeric_major_version(self): + with pytest.raises(ValueError): + cainstance.MSCSTemplateV2("1.2.3.4:major:200") + + def test_MSCSTemplateV2_non_numeric_minor_version(self): + with pytest.raises(ValueError): + cainstance.MSCSTemplateV2("1.2.3.4:100:minor") + + def test_MSCSTemplateV2_major_version_lt_zero(self): + with pytest.raises(ValueError): + cainstance.MSCSTemplateV2("1.2.3.4:-1:200") + + def test_MSCSTemplateV2_minor_version_lt_zero(self): + with pytest.raises(ValueError): + cainstance.MSCSTemplateV2("1.2.3.4:100:-1") + + def test_MSCSTemplateV2_major_version_gt_max(self): + with pytest.raises(ValueError): + cainstance.MSCSTemplateV2("1.2.3.4:4294967296:200") + + def test_MSCSTemplateV2_minor_version_gt_max(self): + with pytest.raises(ValueError): + cainstance.MSCSTemplateV2("1.2.3.4:100:4294967296") + + def test_MSCSTemplateV2_good_major(self): + o = cainstance.MSCSTemplateV2("1.2.3.4:4294967295") + assert hexlify(o.get_ext_data()) == b'300c06032a0304020500ffffffff' + + def test_MSCSTemplateV2_good_major_minor(self): + o = cainstance.MSCSTemplateV2("1.2.3.4:4294967295:0") + assert hexlify(o.get_ext_data()) \ + == b'300f06032a0304020500ffffffff020100' + + def test_MSCSTemplateV2_pickle_roundtrip(self): + o = cainstance.MSCSTemplateV2("1.2.3.4:4294967295:0") + s = pickle.dumps(o) + assert o.get_ext_data() == pickle.loads(s).get_ext_data() + + def test_ExternalCAProfile_dispatch(self): + """ + Test that constructing ExternalCAProfile actually returns an + instance of the appropriate subclass. + """ + assert isinstance( + cainstance.ExternalCAProfile("MySubCA"), + cainstance.MSCSTemplateV1) + assert isinstance( + cainstance.ExternalCAProfile("1.2.3.4:100"), + cainstance.MSCSTemplateV2) + + def test_write_pkispawn_config_file_MSCSTemplateV1(self): + template = cainstance.MSCSTemplateV1(u"SubCA") + expected = ( + '[CA]\n' + 'pki_req_ext_oid = 1.3.6.1.4.1.311.20.2\n' + 'pki_req_ext_data = 1e0a00530075006200430041\n\n' + ) + self._test_write_pkispawn_config_file(template, expected) + + def test_write_pkispawn_config_file_MSCSTemplateV2(self): + template = cainstance.MSCSTemplateV2(u"1.2.3.4:4294967295") + expected = ( + '[CA]\n' + 'pki_req_ext_oid = 1.3.6.1.4.1.311.21.7\n' + 'pki_req_ext_data = 300c06032a0304020500ffffffff\n\n' + ) + self._test_write_pkispawn_config_file(template, expected) + + def _test_write_pkispawn_config_file(self, template, expected): + """ + Test that the values we read from an ExternalCAProfile + object can be used to produce a reasonable-looking pkispawn + configuration. + """ + config = RawConfigParser() + config.optionxform = str + config.add_section("CA") + config.set("CA", "pki_req_ext_oid", template.ext_oid) + config.set("CA", "pki_req_ext_data", + hexlify(template.get_ext_data()).decode('ascii')) + out = StringIO() + config.write(out) + assert out.getvalue() == expected diff --git a/ipatests/test_ipaserver/test_ldap.py b/ipatests/test_ipaserver/test_ldap.py index a0d2a4554..fb4927f89 100644 --- a/ipatests/test_ipaserver/test_ldap.py +++ b/ipatests/test_ipaserver/test_ldap.py @@ -36,7 +36,6 @@ import six from ipaplatform.paths import paths from ipaserver.plugins.ldap2 import ldap2, AUTOBIND_DISABLED from ipalib import api, create_api, errors -from ipapython import ipautil from ipapython.dn import DN if six.PY3: @@ -44,6 +43,7 @@ if six.PY3: @pytest.mark.tier0 +@pytest.mark.needs_ipaapi class test_ldap(object): """ Test various LDAP client bind methods. @@ -85,7 +85,7 @@ class test_ldap(object): Test a simple LDAP bind using ldap2 """ pwfile = api.env.dot_ipa + os.sep + ".dmpw" - if ipautil.file_exists(pwfile): + if os.path.isfile(pwfile): with open(pwfile, "r") as fp: dm_password = fp.read().rstrip() else: @@ -109,7 +109,7 @@ class test_ldap(object): myapi.finalize() pwfile = api.env.dot_ipa + os.sep + ".dmpw" - if ipautil.file_exists(pwfile): + if os.path.isfile(pwfile): with open(pwfile, "r") as fp: dm_password = fp.read().rstrip() else: @@ -136,6 +136,7 @@ class test_ldap(object): @pytest.mark.tier0 +@pytest.mark.needs_ipaapi class test_LDAPEntry(object): """ Test the LDAPEntry class diff --git a/ipatests/test_ipaserver/test_otptoken_import.py b/ipatests/test_ipaserver/test_otptoken_import.py index 88353675d..5d2c8c9b7 100644 --- a/ipatests/test_ipaserver/test_otptoken_import.py +++ b/ipatests/test_ipaserver/test_otptoken_import.py @@ -22,6 +22,7 @@ import os import pytest from ipaserver.install.ipa_otptoken_import import PSKCDocument, ValidationError +from ipaserver.install.ipa_otptoken_import import convertHashName basename = os.path.join(os.path.dirname(__file__), "data") @@ -129,3 +130,21 @@ class test_otptoken_import(object): 'ipatokenotpdigits': 8, 'type': u'hotp', })] + + def test_valid_tokens(self): + assert convertHashName('sha1') == u'sha1' + assert convertHashName('hmac-sha1') == u'sha1' + assert convertHashName('sha224') == u'sha224' + assert convertHashName('hmac-sha224') == u'sha224' + assert convertHashName('sha256') == u'sha256' + assert convertHashName('hmac-sha256') == u'sha256' + assert convertHashName('sha384') == u'sha384' + assert convertHashName('hmac-sha384') == u'sha384' + assert convertHashName('sha512') == u'sha512' + assert convertHashName('hmac-sha512') == u'sha512' + + def test_invalid_tokens(self): + """The conversion defaults to sha1 on unknown hashing""" + assert convertHashName('something-sha256') == u'sha1' + assert convertHashName('') == u'sha1' + assert convertHashName(None) == u'sha1' diff --git a/ipatests/test_ipaserver/test_serverroles.py b/ipatests/test_ipaserver/test_serverroles.py index 985c750b6..a770c5ff4 100644 --- a/ipatests/test_ipaserver/test_serverroles.py +++ b/ipatests/test_ipaserver/test_serverroles.py @@ -15,6 +15,8 @@ from ipaplatform.paths import paths from ipalib import api, create_api, errors from ipapython.dn import DN +pytestmark = pytest.mark.needs_ipaapi + def _make_service_entry(ldap_backend, dn, enabled=True, other_config=None): mods = { @@ -715,7 +717,7 @@ class TestServerAttributes(object): non_ca_fqdn = mock_masters.get_fqdn('trust-controller-dns') with pytest.raises(errors.ValidationError): - self.config_update(mock_api, **{attr_name: [non_ca_fqdn]}) + self.config_update(mock_api, **{attr_name: non_ca_fqdn}) def test_set_unknown_attribute_on_master_raises_notfound( self, mock_api, mock_masters): @@ -732,7 +734,7 @@ class TestServerAttributes(object): original_renewal_master = self.config_retrieve( role_name, mock_api)[attr_name] - other_ca_server = [mock_masters.get_fqdn('trust-controller-ca')] + other_ca_server = mock_masters.get_fqdn('trust-controller-ca') for host in (other_ca_server, original_renewal_master): self.config_update(mock_api, **{attr_name: host}) diff --git a/ipatests/test_ipaserver/test_topology_plugin.py b/ipatests/test_ipaserver/test_topology_plugin.py index eaa7b01cb..f915155bc 100644 --- a/ipatests/test_ipaserver/test_topology_plugin.py +++ b/ipatests/test_ipaserver/test_topology_plugin.py @@ -6,7 +6,6 @@ import io import os from ipaserver.plugins.ldap2 import ldap2 from ipalib import api -from ipapython import ipautil from ipapython.dn import DN import pytest @@ -31,7 +30,7 @@ class TestTopologyPlugin(object): if self.conn and self.conn.isconnected(): self.conn.disconnect() - @pytest.mark.skipif(ipautil.file_exists(pwfile) is False, + @pytest.mark.skipif(os.path.isfile(pwfile) is False, reason="You did not provide a .dmpw file with the DM password") def test_topologyplugin(self): pluginattrs = { diff --git a/ipatests/test_pkcs10/__init__.py b/ipatests/test_pkcs10/__init__.py deleted file mode 100644 index cd03658cf..000000000 --- a/ipatests/test_pkcs10/__init__.py +++ /dev/null @@ -1,22 +0,0 @@ -# Authors: -# Rob Crittenden -# -# Copyright (C) 2009 Red Hat -# see file 'COPYING' for use and warranty information -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -""" -Sub-package containing unit tests for `pkcs10` package. -""" diff --git a/ipatests/test_pkcs10/test0.csr b/ipatests/test_pkcs10/test0.csr deleted file mode 100644 index eadfb70b4..000000000 --- a/ipatests/test_pkcs10/test0.csr +++ /dev/null @@ -1,12 +0,0 @@ ------BEGIN NEW CERTIFICATE REQUEST----- -MIIBjjCB+AIBADBPMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEQ -MA4GA1UEChMHRXhhbXBsZTEZMBcGA1UEAxMQdGVzdC5leGFtcGxlLmNvbTCBnzAN -BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyxsN5dmvyKiw+5nyrcO3a61sivZRg+ja -kyNIyUo+tIUiYwTdpPESAHTWRlk0XhydauAkWfOIN7pR3a5Z+kQw8W7F+DuZze2M -6wRNmN+NTrTlqnKOiMHBXhIM0Qxrx68GDctYqtnKTVT94FvvLl9XYVdUEi2ePTc2 -Nyfr1z66+W0CAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAIf3r+Y6WHrFnttUqDow -9/UCHtCeQlQoJqjjxi5wcjbkGwTgHbx/BPOd/8OVaHElboMXLGaZx+L/eFO6E9Yg -mDOYv3OsibDFGaEhJrU8EnfuFZKnbrGeSC9Hkqrq+3OjqacaPla5N7MHKbfLY377 -ddbOHKzR0sURZ+ro4z3fATW2 ------END NEW CERTIFICATE REQUEST----- - diff --git a/ipatests/test_pkcs10/test1.csr b/ipatests/test_pkcs10/test1.csr deleted file mode 100644 index 0dad3ae1e..000000000 --- a/ipatests/test_pkcs10/test1.csr +++ /dev/null @@ -1,13 +0,0 @@ ------BEGIN NEW CERTIFICATE REQUEST----- -MIIBwDCCASkCAQAwTzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWEx -EDAOBgNVBAoTB0V4YW1wbGUxGTAXBgNVBAMTEHRlc3QuZXhhbXBsZS5jb20wgZ8w -DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMK+3uy1CGwek8jutw4UO62YTpkmStlw -cKPEjTER7Ra1a1wyWJTo1mMnPhVia0GODeq8ERPgcIckCVogBu8+gL6g8NevaBNv -ij1XWU08BEQqmoqAkrFiI8EdDckKYrSoXo2cg1fiTGzlG8AWtr5eT0op5jBBo0J6 -qXX5Sf6e+n+nAgMBAAGgMTAvBgkqhkiG9w0BCQ4xIjAgMB4GA1UdEQQXMBWCE3Rl -c3Rsb3cuZXhhbXBsZS5jb20wDQYJKoZIhvcNAQEFBQADgYEAwRDa7ZOaym9mAUH7 -hudbvsRkqXHehgf51uMUq0OC9hQ6vPLWqUMAod05lxn3Tnvq6a/fVK0ybgCH5Ld7 -qpAcUruYdj7YxkFfuBc1dpAK6h94rVsJXFCWIMEZm9Fe7n5RERjhO6h2IRSXBHFz -QIszvqBamm/W1ONKdQSM2g+M4BQ= ------END NEW CERTIFICATE REQUEST----- - diff --git a/ipatests/test_pkcs10/test2.csr b/ipatests/test_pkcs10/test2.csr deleted file mode 100644 index ccc47f890..000000000 --- a/ipatests/test_pkcs10/test2.csr +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN NEW CERTIFICATE REQUEST----- -MIICETCCAXoCAQAwTzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWEx -EDAOBgNVBAoTB0V4YW1wbGUxGTAXBgNVBAMTEHRlc3QuZXhhbXBsZS5jb20wgZ8w -DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOXfP8LeiU7g6wLCclgkT1lVskK+Lxm1 -6ijE4LmEQBk5nn2P46im+E/UOgTddbDo5cdJlkoCnqXkO4RkqJckXYDxfI34KL3C -CRFPvOa5Sg02m1x5Rg3boZfS6NciP62lRp0SI+0TCt3F16wYZxMahVIOXjbJ6Lu5 -mGjNn7XaWJhFAgMBAAGggYEwfwYJKoZIhvcNAQkOMXIwcDAeBgNVHREEFzAVghN0 -ZXN0bG93LmV4YW1wbGUuY29tME4GA1UdHwRHMEUwQ6BBoD+GHGh0dHA6Ly9jYS5l -eGFtcGxlLmNvbS9teS5jcmyGH2h0dHA6Ly9vdGhlci5leGFtcGxlLmNvbS9teS5j -cmwwDQYJKoZIhvcNAQEFBQADgYEAkv8pppcgGhX7erJmvg9r2UHrRriuKaOYgKZQ -lf/eBt2N0L2mV4QvCY82H7HWuE+7T3mra9ikfvz0nYkPJQe2gntjZzECE0Jt5LWR -UZOFwX8N6wrX11U2xu0NlvsbjU6siWd6OZjZ1p5/V330lzut/q3CNzaAcW1Fx3wL -sV5SXSw= ------END NEW CERTIFICATE REQUEST----- - diff --git a/ipatests/test_pkcs10/test3.csr b/ipatests/test_pkcs10/test3.csr deleted file mode 100644 index 82c84d154..000000000 --- a/ipatests/test_pkcs10/test3.csr +++ /dev/null @@ -1,3 +0,0 @@ ------BEGIN NEW CERTIFICATE REQUEST----- -VGhpcyBpcyBhbiBpbnZhbGlkIENTUg== ------END NEW CERTIFICATE REQUEST----- diff --git a/ipatests/test_pkcs10/test4.csr b/ipatests/test_pkcs10/test4.csr deleted file mode 100644 index 9f08b802b..000000000 --- a/ipatests/test_pkcs10/test4.csr +++ /dev/null @@ -1,4 +0,0 @@ ------BEGIN NEW CERTIFICATE REQUEST----- -Invalidate data ------END NEW CERTIFICATE REQUEST----- - diff --git a/ipatests/test_pkcs10/test5.csr b/ipatests/test_pkcs10/test5.csr deleted file mode 100644 index 41c3c1f3d..000000000 --- a/ipatests/test_pkcs10/test5.csr +++ /dev/null @@ -1,20 +0,0 @@ - -Certificate request generated by Netscape certutil -Phone: (not specified) - -Common Name: test.example.com -Email: (not specified) -Organization: IPA -State: (not specified) -Country: (not specified) - ------BEGIN NEW CERTIFICATE REQUEST----- -MIIBaDCB0gIBADApMQwwCgYDVQQKEwNJUEExGTAXBgNVBAMTEHRlc3QuZXhhbXBs -ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPnSCLwl7IytP2HC7+zv -nI2fe6oRCE/J8K1jIoiqS9engx3Yfe4kaXWWzcwmuUV57VhUmWDEQIbSREPdrVSi -tWC55ilGmPOAEw+mP4qg6Ctb+d8Egmy1JVrpIYCLNXvEd3dAaimB0J+K3hKFRyHI -2MzrIuFqqohRijkDLwB8oVVdAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQACt37K -j+RMEbqG8s0Uxs3FhcfiAx8Do99CDizY/b7hZEgMyG4dLmm+vSCBbxBrG5oMlxJD -dxnpk0PQSknNkJVrCS/J1OTpOPRTi4VKATT3tHJAfDbWZTwcSelUCLQ4lREiuT3D -WP4vKrLIxDJDb+/mwuV7WWo34E6MD9iTB1xINg== ------END NEW CERTIFICATE REQUEST----- diff --git a/ipatests/test_pkcs10/test_pkcs10.py b/ipatests/test_pkcs10/test_pkcs10.py deleted file mode 100644 index df50df098..000000000 --- a/ipatests/test_pkcs10/test_pkcs10.py +++ /dev/null @@ -1,141 +0,0 @@ -# Authors: -# Rob Crittenden -# -# Copyright (C) 2009 Red Hat -# see file 'COPYING' for use and warranty information -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -""" -Test the `pkcs10.py` module. -""" - -import nose -from ipalib import pkcs10 -from ipapython import ipautil -import pytest -import os -import cryptography.x509 - - -@pytest.mark.tier0 -class test_update(object): - """ - Test the PKCS#10 Parser. - """ - - def setup(self): - self.testdir = os.path.abspath(os.path.dirname(__file__)) - if not ipautil.file_exists(os.path.join(self.testdir, - "test0.csr")): - raise nose.SkipTest("Unable to find test update files") - - def read_file(self, filename): - with open(os.path.join(self.testdir, filename), "r") as fp: - data = fp.read() - return data - - def test_0(self): - """ - Test simple CSR with no attributes - """ - csr = pkcs10.load_certificate_request(self.read_file("test0.csr")) - - subject = csr.subject - - cn = subject.get_attributes_for_oid( - cryptography.x509.NameOID.COMMON_NAME)[-1].value - assert(cn == 'test.example.com') - st = subject.get_attributes_for_oid( - cryptography.x509.NameOID.STATE_OR_PROVINCE_NAME)[-1].value - assert(st == 'California') - c = subject.get_attributes_for_oid( - cryptography.x509.NameOID.COUNTRY_NAME)[-1].value - assert(c == 'US') - - def test_1(self): - """ - Test CSR with subject alt name - """ - csr = self.read_file("test1.csr") - request = pkcs10.load_certificate_request(csr) - - subject = request.subject - - cn = subject.get_attributes_for_oid( - cryptography.x509.NameOID.COMMON_NAME)[-1].value - assert(cn == 'test.example.com') - st = subject.get_attributes_for_oid( - cryptography.x509.NameOID.STATE_OR_PROVINCE_NAME)[-1].value - assert(st == 'California') - c = subject.get_attributes_for_oid( - cryptography.x509.NameOID.COUNTRY_NAME)[-1].value - assert(c == 'US') - - san = request.extensions.get_extension_for_oid( - cryptography.x509.ExtensionOID.SUBJECT_ALTERNATIVE_NAME).value - dns = san.get_values_for_type(cryptography.x509.DNSName) - assert dns[0] == 'testlow.example.com' - - def test_2(self): - """ - Test CSR with subject alt name and a list of CRL distribution points - """ - csr = self.read_file("test2.csr") - request = pkcs10.load_certificate_request(csr) - - subject = request.subject - - cn = subject.get_attributes_for_oid( - cryptography.x509.NameOID.COMMON_NAME)[-1].value - assert(cn == 'test.example.com') - st = subject.get_attributes_for_oid( - cryptography.x509.NameOID.STATE_OR_PROVINCE_NAME)[-1].value - assert(st == 'California') - c = subject.get_attributes_for_oid( - cryptography.x509.NameOID.COUNTRY_NAME)[-1].value - assert(c == 'US') - - san = request.extensions.get_extension_for_oid( - cryptography.x509.ExtensionOID.SUBJECT_ALTERNATIVE_NAME).value - dns = san.get_values_for_type(cryptography.x509.DNSName) - assert dns[0] == 'testlow.example.com' - - crldps = request.extensions.get_extension_for_oid( - cryptography.x509.ExtensionOID.CRL_DISTRIBUTION_POINTS).value - gns = [] - for crldp in crldps: - gns.extend(crldp.full_name) - uris = [ - u'http://ca.example.com/my.crl', - u'http://other.example.com/my.crl', - ] - for uri in uris: - assert cryptography.x509.UniformResourceIdentifier(uri) in gns - - def test_3(self): - """ - Test CSR with base64-encoded bogus data - """ - csr = self.read_file("test3.csr") - - with pytest.raises(ValueError): - pkcs10.load_certificate_request(csr) - - def test_4(self): - """ - Test CSR with badly formatted base64-encoded data - """ - csr = self.read_file("test4.csr") - with pytest.raises(ValueError): - pkcs10.load_certificate_request(csr) diff --git a/ipatests/test_webui/__init__.py b/ipatests/test_webui/__init__.py index 3f1b63aa8..003034a2a 100644 --- a/ipatests/test_webui/__init__.py +++ b/ipatests/test_webui/__init__.py @@ -24,3 +24,4 @@ import ipatests.util ipatests.util.check_ipaclient_unittests() +ipatests.util.check_no_ipaapi() # also ignore in make fasttest diff --git a/ipatests/test_webui/test_user.py b/ipatests/test_webui/test_user.py index c58e0eda1..bf3d35940 100644 --- a/ipatests/test_webui/test_user.py +++ b/ipatests/test_webui/test_user.py @@ -383,7 +383,8 @@ class test_user_no_private_group(UI_driver): with pytest.raises(AssertionError) as e: self.add_record(user.ENTITY, user.DATA3) - assert e.value.message == u'Unexpected error: Default group for new users is not POSIX' + assert (str(e.value) == 'Unexpected error: Default group for new ' + 'users is not POSIX') @screenshot def test_noprivate_posix(self): diff --git a/ipatests/test_webui/ui_driver.py b/ipatests/test_webui/ui_driver.py index 23d8127a9..2cd2ba86a 100644 --- a/ipatests/test_webui/ui_driver.py +++ b/ipatests/test_webui/ui_driver.py @@ -59,6 +59,7 @@ except ImportError: NO_YAML = True from ipaplatform.paths import paths + ENV_MAP = { 'MASTER': 'ipa_server', 'ADMINID': 'ipa_admin', diff --git a/ipatests/test_xmlrpc/__init__.py b/ipatests/test_xmlrpc/__init__.py index 0ee42fb4f..ae47d9893 100644 --- a/ipatests/test_xmlrpc/__init__.py +++ b/ipatests/test_xmlrpc/__init__.py @@ -24,3 +24,4 @@ import ipatests.util ipatests.util.check_ipaclient_unittests() +ipatests.util.check_no_ipaapi() # also ignore in make fasttest diff --git a/ipatests/test_xmlrpc/test_batch_plugin.py b/ipatests/test_xmlrpc/test_batch_plugin.py index 95c682c89..e475081e3 100644 --- a/ipatests/test_xmlrpc/test_batch_plugin.py +++ b/ipatests/test_xmlrpc/test_batch_plugin.py @@ -60,7 +60,7 @@ class test_batch(Declarative): dict( desc='Batch ping', - command=('batch', [dict(method='ping', params=([], {}))], {}), + command=('batch', [dict(method=u'ping', params=([], {}))], {}), expected=dict( count=1, results=[ @@ -71,7 +71,7 @@ class test_batch(Declarative): dict( desc='Batch two pings', - command=('batch', [dict(method='ping', params=([], {}))] * 2, {}), + command=('batch', [dict(method=u'ping', params=([], {}))] * 2, {}), expected=dict( count=2, results=[ @@ -84,9 +84,9 @@ class test_batch(Declarative): dict( desc='Create and deleting a group', command=('batch', [ - dict(method='group_add', + dict(method=u'group_add', params=([group1], dict(description=u'Test desc 1'))), - dict(method='group_del', params=([group1], dict())), + dict(method=u'group_del', params=([group1], dict())), ], {}), expected=dict( count=2, @@ -118,8 +118,8 @@ class test_batch(Declarative): dict( desc='Try to delete nonexistent group twice', command=('batch', [ - dict(method='group_del', params=([group1], dict())), - dict(method='group_del', params=([group1], dict())), + dict(method=u'group_del', params=([group1], dict())), + dict(method=u'group_del', params=([group1], dict())), ], {}), expected=dict( count=2, @@ -147,8 +147,8 @@ class test_batch(Declarative): dict( desc='Try to delete non-existent group first, then create it', command=('batch', [ - dict(method='group_del', params=([group1], dict())), - dict(method='group_add', + dict(method=u'group_del', params=([group1], dict())), + dict(method=u'group_add', params=([group1], dict(description=u'Test desc 1'))), ], {}), expected=dict( @@ -185,19 +185,19 @@ class test_batch(Declarative): desc='Try bad command invocations', command=('batch', [ # bad command name - dict(method='nonexistent_ipa_command', params=([], dict())), + dict(method=u'nonexistent_ipa_command', params=([], dict())), # dash, not underscore, in command name - dict(method='user-del', params=([], dict())), + dict(method=u'user-del', params=([], dict())), # missing command name dict(params=([group1], dict())), # missing params - dict(method='user_del'), + dict(method=u'user_del'), # missing required argument - dict(method='user_add', params=([], dict())), + dict(method=u'user_add', params=([], dict())), # missing required option - dict(method='user_add', params=([], dict(givenname=first1))), + dict(method=u'user_add', params=([], dict(givenname=first1))), # bad type - dict(method='group_add', params=([group1], dict( + dict(method=u'group_add', params=([group1], dict( description=u't', gidnumber=u'bad'))), ], {}), expected=dict( diff --git a/ipatests/test_xmlrpc/test_cert_plugin.py b/ipatests/test_xmlrpc/test_cert_plugin.py index 0de5b7534..840830340 100644 --- a/ipatests/test_xmlrpc/test_cert_plugin.py +++ b/ipatests/test_xmlrpc/test_cert_plugin.py @@ -30,11 +30,11 @@ import six import tempfile from ipalib import api from ipalib import errors -from ipalib import x509 from ipaplatform.paths import paths from ipapython import ipautil from ipapython.dn import DN from ipapython.ipautil import run +from ipatests.test_xmlrpc.testcert import subject_base from ipatests.test_xmlrpc.xmlrpc_test import XMLRPC_test from nose.tools import raises, assert_raises @@ -58,7 +58,7 @@ def is_db_configured(): aliasdir = api.env.dot_ipa + os.sep + 'alias' + os.sep + '.pwd' if (api.env.xmlrpc_uri == u'http://localhost:8888/ipa/xml' and - not ipautil.file_exists(aliasdir)): + not os.path.isfile(aliasdir)): raise nose.SkipTest('developer CA not configured in %s' % aliasdir) # Test setup @@ -109,7 +109,7 @@ class BaseCert(XMLRPC_test): # Create our temporary NSS database self.run_certutil(["-N", "-f", self.pwname]) - self.subject = DN(('CN', self.host_fqdn), x509.subject_base()) + self.subject = DN(('CN', self.host_fqdn), subject_base()) def teardown(self): shutil.rmtree(self.reqdir, ignore_errors=True) diff --git a/ipatests/test_xmlrpc/test_dns_plugin.py b/ipatests/test_xmlrpc/test_dns_plugin.py index 487e7920d..7ecb39bb9 100644 --- a/ipatests/test_xmlrpc/test_dns_plugin.py +++ b/ipatests/test_xmlrpc/test_dns_plugin.py @@ -268,6 +268,7 @@ absnxname = u'does.not.exist.test.' arec1 = u'172.16.29.111' arec2 = u'172.31.254.222' arec3 = u'172.16.250.123' +aaaarec1 = u'ff02::1' fwd_ip = u'172.16.31.80' allowtransfer_tofwd = u'%s;' % fwd_ip @@ -1087,18 +1088,32 @@ class test_dns(Declarative): dict( desc='Modify AAAA record in %r in zone %r' % (name1, zone1), - command=('dnsrecord_mod', [zone1, name1], {'aaaarecord': u'ff02::1'}), + command=( + 'dnsrecord_mod', [zone1, name1], {'aaaarecord': aaaarec1} + ), expected={ 'value': name1_dnsname, 'summary': None, 'result': { 'idnsname': [name1_dnsname], 'arecord': [arec3], - 'aaaarecord': [u'ff02::1'], + 'aaaarecord': [aaaarec1], }, }, ), + dict( + desc=('Show record %r in zone %r with --structured and --all ' + 'options' % (name1, zone1)), + command=('dnsrecord_show', [zone1, name1], + {'structured': True, 'all': True}), + expected=lambda o, x: ( + 'result' in x and + 'dnsrecords' in x['result'] and + (len(x['result']['dnsrecords']) in (1, 2)) and + (any(y[u'dnsdata'] in (aaaarec1, arec3) + for y in x['result']['dnsrecords']))), + ), dict( desc='Remove AAAA record from %r in zone %r using dnsrecord_mod' % (name1, zone1), @@ -1156,8 +1171,8 @@ class test_dns(Declarative): % zone1_ns]}), expected=lambda x, output: ( type(x) == errors.ValidationError and - x.message.endswith(u'Raw value of a DNS record was already ' - u'set by "srv_rec" option'), + str(x).endswith('Raw value of a DNS record was already ' + 'set by "srv_rec" option'), ), ), @@ -2846,6 +2861,33 @@ class test_dns(Declarative): }, ), + dict( + desc='Show structured record %r in zone %r' % ( + u'_foo._tcp', idnzone1 + ), + command=( + 'dnsrecord_show', [idnzone1, u'_foo._tcp'], + {u'structured': True, u'all': True} + ), + expected={ + 'value': DNSName(u'_foo._tcp'), + 'summary': None, + 'result': { + 'dn': DN(('idnsname', u'_foo._tcp'), idnzone1_dn), + 'idnsname': [DNSName(u'_foo._tcp')], + 'dnsrecords': [{ + u'dnsdata': u'0 100 1234 {}'.format( + idnzone1_mname_punycoded), + u'dnstype': u'SRV', + u'srv_part_port': u'1234', + u'srv_part_priority': u'0', + u'srv_part_target': idnzone1_mname, + u'srv_part_weight': u'100' + }], + 'objectclass': objectclasses.dnsrecord, + }, + }, + ), dict( desc='Add AFSDB record to %r using dnsrecord_add' % (dnsafsdbres1), diff --git a/ipatests/test_xmlrpc/test_host_plugin.py b/ipatests/test_xmlrpc/test_host_plugin.py index eab5bf7b5..e0df6bc04 100644 --- a/ipatests/test_xmlrpc/test_host_plugin.py +++ b/ipatests/test_xmlrpc/test_host_plugin.py @@ -31,7 +31,7 @@ import base64 import pytest from ipapython import ipautil -from ipalib import api, errors, x509 +from ipalib import api, errors from ipapython.dn import DN from ipapython.dnsutil import DNSName from ipatests.test_util import yield_fixture @@ -41,7 +41,7 @@ from ipatests.test_xmlrpc.xmlrpc_test import (XMLRPC_test, from ipatests.test_xmlrpc.test_user_plugin import get_group_dn from ipatests.test_xmlrpc import objectclasses from ipatests.test_xmlrpc.tracker.host_plugin import HostTracker -from ipatests.test_xmlrpc.testcert import get_testcert +from ipatests.test_xmlrpc.testcert import get_testcert, subject_base from ipatests.util import assert_deepequal from ipaplatform.paths import paths @@ -97,7 +97,7 @@ hostgroup1 = u'testhostgroup1' hostgroup1_dn = DN(('cn',hostgroup1),('cn','hostgroups'),('cn','accounts'), api.env.basedn) -host_cert = get_testcert(DN(('CN', api.env.host), x509.subject_base()), +host_cert = get_testcert(DN(('CN', api.env.host), subject_base()), 'host/%s@%s' % (api.env.host, api.env.realm)) @@ -237,7 +237,7 @@ class TestCRUD(XMLRPC_test): serial_number_hex=fuzzy_hex, sha1_fingerprint=fuzzy_hash, sha256_fingerprint=fuzzy_hash, - subject=DN(('CN', api.env.host), x509.subject_base()), + subject=DN(('CN', api.env.host), subject_base()), valid_not_before=fuzzy_date, valid_not_after=fuzzy_date, )) diff --git a/ipatests/test_xmlrpc/test_schema_plugin.py b/ipatests/test_xmlrpc/test_schema_plugin.py new file mode 100644 index 000000000..c35297e32 --- /dev/null +++ b/ipatests/test_xmlrpc/test_schema_plugin.py @@ -0,0 +1,121 @@ +# +# Copyright (C) 2017 FreeIPA Contributors see COPYING for license +# + +""" +Test the `ipaserver/plugins/schema.py` module. +""" + +import pytest + +from ipalib import errors +from ipatests.test_xmlrpc.tracker.base import Tracker +from ipatests.test_xmlrpc.xmlrpc_test import XMLRPC_test + + +@pytest.mark.tier1 +class TestParamFindAndShowCommand(XMLRPC_test): + """Test functionality of the ipa param-{find,show} command""" + + tracker = Tracker() + + def test_param_find(self): + """Test param-find command""" + + # right command without criteria + result = self.tracker.run_command('param_find', u'user-add') + assert len(result['result']) != 0, result + assert result['result'][0]['name'] == 'uid', result + assert result['result'][0]['cli_name'] == 'login', result + assert result['result'][0]['label'] == 'User login', result + + # right command, right criteria + criteria = u'postalcode' + result = self.tracker.run_command('param_find', u'user-add', criteria) + assert len(result['result']) != 0, result + for item in result['result']: + assert (criteria in item['name'].lower() or + criteria in item['doc'].lower()), item + + # right command, wrong criteria + result = self.tracker.run_command('param_find', u'user-add', u'fake') + assert len(result['result']) == 0, result + + # wrong command, wrong criteria + result = self.tracker.run_command('param_find', u'fake', u'fake') + assert len(result['result']) == 0, result + + def test_param_show(self): + """Test param-show command""" + + # right command, right criteria + criteria = u'uid' + result = self.tracker.run_command('param_show', u'user-add', criteria) + assert result['result'] is not None, result + assert result['result']['name'] == 'uid', result + assert result['result']['cli_name'] == 'login', result + assert result['result']['label'] == 'User login', result + + # right command without criteria + with pytest.raises(errors.RequirementError): + self.tracker.run_command('param_show', u'user-add') + + # right command, wrong criteria + with pytest.raises(errors.NotFound): + self.tracker.run_command('param_show', u'user-add', u'fake') + + # wrong command, wrong criteria + with pytest.raises(errors.NotFound): + self.tracker.run_command('param_show', u'fake', u'fake') + + +class TestOutputFindAndShowCommand(XMLRPC_test): + """Test functionality of the ipa output-{find,show} command""" + tracker = Tracker() + + def test_output_find(self): + """Test output-find command""" + + # right command without criteria + result = self.tracker.run_command('output_find', u'user-add') + assert len(result['result']) != 0, result + assert result['result'][0]['name'] == 'summary', result + assert result['result'][0]['doc'] == \ + 'User-friendly description of action performed', result + + # right command, right criteria + criteria = u'result' + result = self.tracker.run_command('output_find', u'user-add', criteria) + assert len(result['result']) == 1, result + assert criteria in result['result'][0]['name'].lower(), result + + # right command, wrong criteria + result = self.tracker.run_command('output_find', u'user-add', u'fake') + assert len(result['result']) == 0, result + + # wrong command, wrong criteria + result = self.tracker.run_command('output_find', u'fake', u'fake') + assert len(result['result']) == 0, result + + def test_output_show(self): + """Test output-show command""" + + # right command, right criteria + criteria = u'value' + result = self.tracker.run_command('output_show', u'user-add', criteria) + assert len(result['result']) != 0, result + assert criteria in result['result']['name'].lower(), result + assert result['result']['doc'] == \ + "The primary_key value of the entry, e.g. 'jdoe' for a user", result + + # right command without criteria + with pytest.raises(errors.RequirementError): + self.tracker.run_command('output_show', u'user-add') + + # right command, wrong criteria + with pytest.raises(errors.NotFound): + self.tracker.run_command('output_show', u'user-add', u'fake') + + # wrong command, wrong criteria + with pytest.raises(errors.NotFound): + self.tracker.run_command('output_show', u'fake', u'fake') diff --git a/ipatests/test_xmlrpc/test_service_plugin.py b/ipatests/test_xmlrpc/test_service_plugin.py index 514ca5b26..6985f75ee 100644 --- a/ipatests/test_xmlrpc/test_service_plugin.py +++ b/ipatests/test_xmlrpc/test_service_plugin.py @@ -21,12 +21,12 @@ Test the `ipaserver/plugins/service.py` module. """ -from ipalib import api, errors, x509 +from ipalib import api, errors from ipatests.test_xmlrpc.xmlrpc_test import Declarative, fuzzy_uuid, fuzzy_hash from ipatests.test_xmlrpc.xmlrpc_test import fuzzy_digits, fuzzy_date, fuzzy_issuer from ipatests.test_xmlrpc.xmlrpc_test import fuzzy_hex, XMLRPC_test from ipatests.test_xmlrpc import objectclasses -from ipatests.test_xmlrpc.testcert import get_testcert +from ipatests.test_xmlrpc.testcert import get_testcert, subject_base from ipatests.test_xmlrpc.test_user_plugin import get_user_result, get_group_dn from ipatests.test_xmlrpc.tracker.service_plugin import ServiceTracker @@ -50,8 +50,8 @@ host3dn = DN(('fqdn',fqdn3),('cn','computers'),('cn','accounts'),api.env.basedn) role1 = u'Test Role' role1_dn = DN(('cn', role1), api.env.container_rolegroup, api.env.basedn) -servercert= get_testcert(DN(('CN', api.env.host), x509.subject_base()), - 'unittest/%s@%s' % (api.env.host, api.env.realm)) +servercert = get_testcert(DN(('CN', api.env.host), subject_base()), + 'unittest/%s@%s' % (api.env.host, api.env.realm)) randomissuercert = ( "MIICbzCCAdigAwIBAgICA/4wDQYJKoZIhvcNAQEFBQAwKTEnMCUGA1UEAxMeSVBBIFRlc3Q" "gQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTEwMDgwOTE1MDIyN1oXDTIwMDgwOTE1MDIyN1" @@ -485,7 +485,7 @@ class test_service(Declarative): managedby_host=[fqdn1], valid_not_before=fuzzy_date, valid_not_after=fuzzy_date, - subject=DN(('CN',api.env.host),x509.subject_base()), + subject=DN(('CN', api.env.host), subject_base()), serial_number=fuzzy_digits, serial_number_hex=fuzzy_hex, sha1_fingerprint=fuzzy_hash, @@ -522,7 +522,7 @@ class test_service(Declarative): ipakrbauthzdata=[u'MS-PAC'], valid_not_before=fuzzy_date, valid_not_after=fuzzy_date, - subject=DN(('CN',api.env.host),x509.subject_base()), + subject=DN(('CN', api.env.host), subject_base()), serial_number=fuzzy_digits, serial_number_hex=fuzzy_hex, sha1_fingerprint=fuzzy_hash, @@ -551,7 +551,7 @@ class test_service(Declarative): # test case. valid_not_before=fuzzy_date, valid_not_after=fuzzy_date, - subject=DN(('CN',api.env.host),x509.subject_base()), + subject=DN(('CN', api.env.host), subject_base()), serial_number=fuzzy_digits, serial_number_hex=fuzzy_hex, sha1_fingerprint=fuzzy_hash, @@ -576,7 +576,7 @@ class test_service(Declarative): ipakrbauthzdata=[u'MS-PAC'], valid_not_before=fuzzy_date, valid_not_after=fuzzy_date, - subject=DN(('CN',api.env.host),x509.subject_base()), + subject=DN(('CN', api.env.host), subject_base()), serial_number=fuzzy_digits, serial_number_hex=fuzzy_hex, sha1_fingerprint=fuzzy_hash, @@ -604,7 +604,7 @@ class test_service(Declarative): ipakrbauthzdata=[u'MS-PAC'], valid_not_before=fuzzy_date, valid_not_after=fuzzy_date, - subject=DN(('CN',api.env.host),x509.subject_base()), + subject=DN(('CN', api.env.host), subject_base()), serial_number=fuzzy_digits, serial_number_hex=fuzzy_hex, sha1_fingerprint=fuzzy_hash, @@ -630,7 +630,7 @@ class test_service(Declarative): ipakrbauthzdata=[u'MS-PAC'], valid_not_before=fuzzy_date, valid_not_after=fuzzy_date, - subject=DN(('CN',api.env.host),x509.subject_base()), + subject=DN(('CN', api.env.host), subject_base()), serial_number=fuzzy_digits, serial_number_hex=fuzzy_hex, sha1_fingerprint=fuzzy_hash, diff --git a/ipatests/test_xmlrpc/test_vault_plugin.py b/ipatests/test_xmlrpc/test_vault_plugin.py index 7023d6a9b..e4348c19c 100644 --- a/ipatests/test_xmlrpc/test_vault_plugin.py +++ b/ipatests/test_xmlrpc/test_vault_plugin.py @@ -22,9 +22,12 @@ Test the `ipaserver/plugins/vault.py` module. """ import nose -from ipalib import api -from ipatests.test_xmlrpc.xmlrpc_test import Declarative, fuzzy_string import pytest +import six + +from ipalib import api +from ipatests.test_xmlrpc.xmlrpc_test import Declarative, fuzzy_bytes + vault_name = u'test_vault' service_name = u'HTTP/server.example.com' @@ -35,12 +38,15 @@ symmetric_vault_name = u'symmetric_test_vault' asymmetric_vault_name = u'asymmetric_test_vault' # binary data from \x00 to \xff -secret = ''.join(chr(c) for c in range(0, 256)) +if six.PY2: + secret = b''.join(chr(c) for c in range(0, 256)) +else: + secret = bytes(range(0, 256)) password = u'password' other_password = u'other_password' -public_key = """ +public_key = b""" -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnT61EFxUOQgCJdM0tmw/ pRRPDPGchTClnU1eBtiQD3ItKYf1+weMGwGOSJXPtkto7NlE7Qs8WHAr0UjyeBDe @@ -52,7 +58,7 @@ pVThop+Xivcre3SpI0kt6oZPhBw9i8gbMnqifVmGFpVdhq+QVBqp+MVJvTbhRPG6 -----END PUBLIC KEY----- """ -private_key = """ +private_key = b""" -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAnT61EFxUOQgCJdM0tmw/pRRPDPGchTClnU1eBtiQD3ItKYf1 +weMGwGOSJXPtkto7NlE7Qs8WHAr0UjyeBDek/zeB6nSVdk47OdaW1AHrJL+44r2 @@ -82,7 +88,7 @@ kUlCMj24a8XsShzYTWBIyW2ngvGe3pQ9PfjkUdm0LGZjYITCBvgOKw== -----END RSA PRIVATE KEY----- """ -other_public_key = """ +other_public_key = b""" -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv7E/QLVyKjrgDctZ50U7 rmtL7Ks1QLoccp9WvZJ6WI1rYd0fX5FySS4dI6QTNZc6qww8NeNuZtkoxT9m1wkk @@ -94,7 +100,7 @@ TwIDAQAB -----END PUBLIC KEY----- """ -other_private_key = """ +other_private_key = b""" -----BEGIN RSA PRIVATE KEY----- MIIEpgIBAAKCAQEAv7E/QLVyKjrgDctZ50U7rmtL7Ks1QLoccp9WvZJ6WI1rYd0f X5FySS4dI6QTNZc6qww8NeNuZtkoxT9m1wkkRl/3wK7fWNLenH/+VHOaTQc20exg @@ -678,7 +684,7 @@ class test_vault_plugin(Declarative): 'result': { 'cn': [standard_vault_name], 'ipavaulttype': [u'symmetric'], - 'ipavaultsalt': [fuzzy_string], + 'ipavaultsalt': [fuzzy_bytes], 'owner_user': [u'admin'], 'username': u'admin', }, @@ -724,7 +730,7 @@ class test_vault_plugin(Declarative): 'objectclass': [u'top', u'ipaVault'], 'cn': [symmetric_vault_name], 'ipavaulttype': [u'symmetric'], - 'ipavaultsalt': [fuzzy_string], + 'ipavaultsalt': [fuzzy_bytes], 'owner_user': [u'admin'], 'username': u'admin', }, @@ -784,7 +790,7 @@ class test_vault_plugin(Declarative): 'result': { 'cn': [symmetric_vault_name], 'ipavaulttype': [u'symmetric'], - 'ipavaultsalt': [fuzzy_string], + 'ipavaultsalt': [fuzzy_bytes], 'owner_user': [u'admin'], 'username': u'admin', }, diff --git a/ipatests/test_xmlrpc/testcert.py b/ipatests/test_xmlrpc/testcert.py index 151919180..3874d75f2 100644 --- a/ipatests/test_xmlrpc/testcert.py +++ b/ipatests/test_xmlrpc/testcert.py @@ -30,16 +30,45 @@ import tempfile import shutil import six import base64 +import re from ipalib import api, x509 from ipaserver.plugins import rabase from ipapython import ipautil +from ipapython.dn import DN from ipaplatform.paths import paths if six.PY3: unicode = str +_subject_base = None + + +def subject_base(): + global _subject_base + + if _subject_base is None: + config = api.Command['config_show']()['result'] + _subject_base = DN(config['ipacertificatesubjectbase'][0]) + + return _subject_base + + +def strip_cert_header(pem): + """ + Remove the header and footer from a certificate. + """ + regexp = ( + r"^-----BEGIN CERTIFICATE-----(.*?)-----END CERTIFICATE-----" + ) + s = re.search(regexp, pem, re.MULTILINE | re.DOTALL) + if s is not None: + return s.group(1) + else: + return pem + + def get_testcert(subject, principal): """Get the certificate, creating it if it doesn't exist""" reqdir = tempfile.mkdtemp(prefix="tmp-") @@ -48,7 +77,7 @@ def get_testcert(subject, principal): principal) finally: shutil.rmtree(reqdir) - return x509.strip_header(_testcert) + return strip_cert_header(_testcert.decode('utf-8')) def run_certutil(reqdir, args, stdin=None): @@ -99,4 +128,4 @@ def makecert(reqdir, subject, principal): res = api.Command['cert_request'](csr, principal=principal, add=True) cert = x509.load_der_x509_certificate( base64.b64decode(res['result']['certificate'])) - return cert.public_bytes(x509.Encoding.PEM).decode('utf-8') + return cert.public_bytes(x509.Encoding.PEM) diff --git a/ipatests/test_xmlrpc/tracker/certmapdata.py b/ipatests/test_xmlrpc/tracker/certmapdata.py index b869640f8..47db97e4b 100644 --- a/ipatests/test_xmlrpc/tracker/certmapdata.py +++ b/ipatests/test_xmlrpc/tracker/certmapdata.py @@ -1,6 +1,8 @@ # # Copyright (C) 2015 FreeIPA Contributors see COPYING for license # +import base64 + from cryptography import x509 from cryptography.hazmat.backends import default_backend from nose.tools import assert_raises @@ -50,11 +52,9 @@ class CertmapdataMixin(object): certs = [certs] for cert in certs: - cert = x509.load_pem_x509_certificate( - (b'-----BEGIN CERTIFICATE-----\n' - b'{}-----END CERTIFICATE-----\n' - .format(cert)), - default_backend() + cert = x509.load_der_x509_certificate( + base64.b64decode(cert), + backend=default_backend() ) issuer = DN(cert.issuer).x500_text() subject = DN(cert.subject).x500_text() diff --git a/ipatests/util.py b/ipatests/util.py index 575d5cc36..1dc2a81e3 100644 --- a/ipatests/util.py +++ b/ipatests/util.py @@ -44,6 +44,7 @@ from ipalib.request import context from ipapython.dn import DN from ipapython.ipautil import run + try: # not available with client-only wheel packages from ipalib.install.kinit import kinit_keytab, kinit_password @@ -77,6 +78,18 @@ def check_ipaclient_unittests(reason="Skip in ipaclient unittest mode"): raise pytest.skip(reason) +def check_no_ipaapi(reason="Skip tests that needs an IPA API"): + """Call this in a package to skip the package in no-ipaapi mode + """ + if pytest.config.getoption('skip_ipaapi', False): + if PYTEST_VERSION[0] >= 3: + # pylint: disable=unexpected-keyword-arg + raise pytest.skip.Exception(reason, allow_module_level=True) + # pylint: enable=unexpected-keyword-arg + else: + raise pytest.skip(reason) + + class TempDir(object): def __init__(self): self.__path = tempfile.mkdtemp(prefix='ipa.tests.') @@ -247,6 +260,8 @@ class Fuzzy(object): Fuzzy('.+', <... 'str'>, at 0x...>) """ + __hash__ = None + def __init__(self, regex=None, type=None, test=None): """ Initialize. @@ -748,7 +763,7 @@ def unlock_principal_password(user, oldpw, newpw): user, api.env.container_user, api.env.basedn) args = [paths.LDAPPASSWD, '-D', userdn, '-w', oldpw, '-a', oldpw, - '-s', newpw, '-x'] + '-s', newpw, '-x', '-H', api.env.ldap_uri] return run(args) diff --git a/makeaci b/makeaci index 57622fe04..ff46f1ec0 100755 --- a/makeaci +++ b/makeaci @@ -30,8 +30,6 @@ import sys import difflib from argparse import ArgumentParser -import ignore_import_errors # pylint: disable=unused-import - from ipalib import api from ipapython.dn import DN from ipapython.ipaldap import LDAPClient diff --git a/makeapi b/makeapi index 2b1d15467..05bd684a8 100755 --- a/makeapi +++ b/makeapi @@ -33,8 +33,6 @@ import re import inspect import operator -import ignore_import_errors # pylint: disable=unused-import - from ipalib import api from ipalib.parameters import Param from ipalib.output import Output diff --git a/po/bn_IN.po b/po/bn_IN.po index c872b8a23..b34c25ece 100644 --- a/po/bn_IN.po +++ b/po/bn_IN.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -14,6 +14,10 @@ msgstr "" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +#, python-format +msgid "Added user \"%(value)s\"" +msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে" + #, python-format msgid "%(count)d variables" msgstr "%(count)d ভেরিয়াবেল" @@ -24,16 +28,6 @@ msgid_plural "%(count)d plugins loaded" msgstr[0] "%(count)d প্লাগ-ইন লোড করা হয়েছে" msgstr[1] "%(count)d প্লাগ-ইন লোড করা হয়েছে" -msgid "Passwords do not match" -msgstr "পাসওয়ার্ড দুটি মিলছে না" - -msgid "This is already a posix group" -msgstr "একটি পসিক্স (posix) গ্রুপ আগে থেকে উপস্থিত" - -#, python-format -msgid "%(info)s" -msgstr "%(info)s" - msgid "incorrect type" msgstr "ভুল প্রকার" @@ -43,6 +37,12 @@ msgstr "কেবলমাত্র একটি মান অনুমদিত msgid "must be a decimal number" msgstr "একটি দশমিক সংখ্যা হওয়া জরুরি" +msgid "Passwords do not match" +msgstr "পাসওয়ার্ড দুটি মিলছে না" + +msgid "This is already a posix group" +msgstr "একটি পসিক্স (posix) গ্রুপ আগে থেকে উপস্থিত" + #, python-format -msgid "Added user \"%(value)s\"" -msgstr "\"%(value)s\" ব্যবহারকারী যোগ করা হয়েছে" +msgid "%(info)s" +msgstr "%(info)s" diff --git a/po/ca.po b/po/ca.po index d066a9d0d..fa984b299 100644 --- a/po/ca.po +++ b/po/ca.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -14,14 +14,8 @@ msgstr "" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -msgid "Passwords do not match" -msgstr "Les contrasenyes no coincideixen" - -msgid "Command not implemented" -msgstr "No s'ha implementat l'ordre" - -msgid "Debugging output" -msgstr "Sortida de depuració" +msgid "Server Name" +msgstr "Nom del servidor" msgid "filename" msgstr "nomdelfitxer" @@ -29,96 +23,36 @@ msgstr "nomdelfitxer" msgid "password" msgstr "contrasenya" -msgid "Server Name" -msgstr "Nom del servidor" - -msgid "User name" -msgstr "Nom d'usuari" +msgid "Debugging output" +msgstr "Sortida de depuració" msgid "Rights" msgstr "Drets" -msgid "Username" +msgid "User name" msgstr "Nom d'usuari" -msgid "Password" -msgstr "Contrasenya" - -msgid "Certificate" -msgstr "Certificat" - -msgid "Force" -msgstr "Força" - msgid "Description" msgstr "Descripció" -msgid "Enabled" -msgstr "S'ha habilitat" +msgid "Group name" +msgstr "Nom del grup" -msgid "Users" -msgstr "Usuaris" +msgid "User login" +msgstr "Entrada" -msgid "Commands" -msgstr "Ordres" +msgid "UID" +msgstr "UID" -msgid "Permissions" -msgstr "Permisos" +msgid "Home directory" +msgstr "Directori de l'usuari" -msgid "Attributes" -msgstr "Atributs" - -msgid "Type" -msgstr "Tipus" - -msgid "Filter" -msgstr "Filtre" - -msgid "Subtree" -msgstr "Subarbre" +msgid "Login shell" +msgstr "Intèrpret d'ordres de l'inici de sessió" msgid "Rename" msgstr "Canvia el nom" -msgid "Host name" -msgstr "Nom de l'amfitrió" - -msgid "Locality" -msgstr "Localitat" - -msgid "Location" -msgstr "Ubicació" - -msgid "Platform" -msgstr "Plataforma" - -msgid "Operating system" -msgstr "Sistema operatiu" - -msgid "IP Address" -msgstr "Adreça IP" - -msgid "user" -msgstr "usuari" - -msgid "Permission" -msgstr "Permís" - -msgid "Continue" -msgstr "Continua" - -msgid "Key" -msgstr "Tecla" - -msgid "description" -msgstr "descripció" - -msgid "Map" -msgstr "Mapa" - -msgid "Mount point" -msgstr "Punt de muntatge" - msgid "Group" msgstr "Grup" @@ -128,8 +62,41 @@ msgstr "Prioritat" msgid "User" msgstr "Usuari" -msgid "User login" -msgstr "Entrada" +msgid "Enabled" +msgstr "S'ha habilitat" + +msgid "Users" +msgstr "Usuaris" + +msgid "Netgroup name" +msgstr "Nom de grup de xarxa" + +msgid "user" +msgstr "usuari" + +msgid "group" +msgstr "grup" + +msgid "Permissions" +msgstr "Permisos" + +msgid "Attributes" +msgstr "Atributs" + +msgid "Certificate" +msgstr "Certificat" + +msgid "Force" +msgstr "Força" + +msgid "Services" +msgstr "Serveis" + +msgid "permissions" +msgstr "permisos" + +msgid "Domain" +msgstr "Domini" msgid "First name" msgstr "Nom" @@ -143,17 +110,11 @@ msgstr "Nom complet" msgid "Initials" msgstr "Inicials" -msgid "Home directory" -msgstr "Directori de l'usuari" - -msgid "Login shell" -msgstr "Intèrpret d'ordres de l'inici de sessió" - msgid "Email address" msgstr "Adreça de correu electrònic" -msgid "UID" -msgstr "UID" +msgid "Password" +msgstr "Contrasenya" msgid "City" msgstr "Ciutat" @@ -176,23 +137,80 @@ msgstr "Càrrec" msgid "Manager" msgstr "Gestor" +msgid "Class" +msgstr "Classe" + +msgid "Server" +msgstr "Servidor" + +msgid "Type" +msgstr "Tipus" + +msgid "Disabled" +msgstr "Inhabilitat" + +msgid "Key" +msgstr "Tecla" + +msgid "Algorithm" +msgstr "Algorisme" + +msgid "Subtree" +msgstr "Subarbre" + +msgid "Permission" +msgstr "Permís" + +msgid "Filter" +msgstr "Filtre" + +msgid "Host name" +msgstr "Nom de l'amfitrió" + +msgid "Locality" +msgstr "Localitat" + +msgid "Location" +msgstr "Ubicació" + +msgid "Platform" +msgstr "Plataforma" + +msgid "Operating system" +msgstr "Sistema operatiu" + +msgid "IP Address" +msgstr "Adreça IP" + +msgid "Warning" +msgstr "Avís" + +msgid "Continue" +msgstr "Continua" + +msgid "Commands" +msgstr "Ordres" + msgid "Self" msgstr "Ell mateix" -msgid "group" -msgstr "grup" +msgid "description" +msgstr "descripció" -msgid "Group name" -msgstr "Nom del grup" +msgid "Map" +msgstr "Mapa" -msgid "New Password" -msgstr "Contrasenya nova" +msgid "Mount point" +msgstr "Punt de muntatge" -msgid "Netgroup name" -msgstr "Nom de grup de xarxa" +msgid "Subject" +msgstr "Assumpte" -msgid "Class" -msgstr "Classe" +msgid "Reason" +msgstr "Raó" + +msgid "Serial number" +msgstr "Número de sèrie" msgid "Subtype" msgstr "Subtipus" @@ -200,18 +218,15 @@ msgstr "Subtipus" msgid "Hostname" msgstr "Nom de l'ordinador" -msgid "Algorithm" -msgstr "Algorisme" - msgid "Target" msgstr "Objectiu" -msgid "Flags" -msgstr "Indicadors" - msgid "Size" msgstr "Mida" +msgid "Flags" +msgstr "Indicadors" + msgid "Regular Expression" msgstr "Expressió regular" @@ -224,32 +239,11 @@ msgstr "Port" msgid "Fingerprint" msgstr "Empremta" -msgid "Services" -msgstr "Serveis" +msgid "New Password" +msgstr "Contrasenya nova" -msgid "Warning" -msgstr "Avís" - -msgid "Serial number" -msgstr "Número de sèrie" - -msgid "Reason" -msgstr "Raó" - -msgid "Domain" -msgstr "Domini" - -msgid "Server" -msgstr "Servidor" - -msgid "Disabled" -msgstr "Inhabilitat" - -msgid "permissions" -msgstr "permisos" - -msgid "Subject" -msgstr "Assumpte" +msgid "Username" +msgstr "Nom d'usuari" msgid "Invalid credentials" msgstr "Credencials no vàlides" @@ -260,8 +254,35 @@ msgstr "Dades" msgid "Error" msgstr "Error" -msgid "Out of memory\n" -msgstr "Sense memòria\n" +msgid "Unknown" +msgstr "Desconegut" + +msgid "Active Directory domain" +msgstr "Domini d'Active Directory" + +msgid "users" +msgstr "usuaris" + +msgid "Role" +msgstr "Rol" + +msgid "services" +msgstr "serveis" + +msgid "Serial Number" +msgstr "Número de sèrie" + +msgid "Issuer" +msgstr "Emissor" + +msgid "Not Before" +msgstr "No abans" + +msgid "Not After" +msgstr "No després" + +msgid "Access time" +msgstr "Temps d'accés" msgid "Apply" msgstr "Aplica" @@ -425,9 +446,6 @@ msgstr "Organització" msgid "Organizational Unit" msgstr "Unitat organitzativa" -msgid "Serial Number" -msgstr "Número de sèrie" - msgid "SHA1 Fingerprint" msgstr "Empremta digital SHA1" @@ -443,9 +461,6 @@ msgstr "Sense especificar" msgid "Validity" msgstr "Validesa" -msgid "Issuer" -msgstr "Emissor" - msgid "Options" msgstr "Opcions" @@ -485,9 +500,6 @@ msgstr "Ordinador central" msgid "Modified" msgstr "Modificat" -msgid "Active Directory domain" -msgstr "Domini d'Active Directory" - msgid "Allow" msgstr "Permet" @@ -533,35 +545,23 @@ msgstr "Anterior" msgid "entry" msgstr "entrada" -msgid "services" -msgstr "serveis" - -msgid "Not Before" -msgstr "No abans" - -msgid "Not After" -msgstr "No després" - -msgid "users" -msgstr "usuaris" +msgid "Configuration" +msgstr "Configuració" msgid "Time now" msgstr "L'hora actual" -msgid "Role" -msgstr "Rol" - -msgid "Access time" -msgstr "Temps d'accés" +msgid "Trust" +msgstr "Confiança" msgid "Revoked" msgstr "Revocat" -msgid "Unknown" -msgstr "Desconegut" +msgid "Passwords do not match" +msgstr "Les contrasenyes no coincideixen" -msgid "Trust" -msgstr "Confiança" +msgid "Command not implemented" +msgstr "No s'ha implementat l'ordre" -msgid "Configuration" -msgstr "Configuració" +msgid "Out of memory\n" +msgstr "Sense memòria\n" diff --git a/po/cs.po b/po/cs.po index c20128dac..ce28f944e 100644 --- a/po/cs.po +++ b/po/cs.po @@ -1,9 +1,9 @@ # Josef Hruška , 2015. #zanata msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -14,6 +14,57 @@ msgstr "" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" +#, c-format +msgid "Passwords do not match!" +msgstr "Hesla se neshodují!" + +msgid "A string searched in all relevant object attributes" +msgstr "Řetězec vyhledávaný ve všech odpovídajících atributech objektu" + +msgid "Operating system" +msgstr "Operační systém" + +msgid "User password" +msgstr "Uživatelské heslo" + +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "Vložte znovu své %(label)s, aby se ověřila jeho správnost." + +msgid "No matching entries found" +msgstr "Nenalezeny žádné shodné položky" + +msgid "Topic or Command" +msgstr "Téma nebo příkaz" + +msgid "The topic or command name." +msgstr "Název tématu nebo příkazu." + +msgid "Topic commands:" +msgstr "Příkazy tématu:" + +msgid "To get command help, use:" +msgstr "Chceteli získat nápovědu k příkazu, použijte:" + +msgid " ipa --help" +msgstr " ipa --help" + +msgid "Command name" +msgstr "Název příkazu" + +msgid "Positional arguments" +msgstr "Poziční argumenty" + +#, python-format +msgid "Same as --%s" +msgstr "Stejné jako --%s" + +msgid "Deprecated options" +msgstr "Zastaralé volby" + +msgid "No file to read" +msgstr "Žádný soubor k přečtení" + #, python-format msgid "%(cver)s client incompatible with %(sver)s server at '%(server)s'" msgstr "" @@ -72,54 +123,3 @@ msgstr "Nenalezena mezipamět ověřovacích údajů" #, python-format msgid "%(reason)s" msgstr "%(reason)s" - -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "Vložte znovu své %(label)s, aby se ověřila jeho správnost." - -#, c-format -msgid "Passwords do not match!" -msgstr "Hesla se neshodují!" - -msgid "No matching entries found" -msgstr "Nenalezeny žádné shodné položky" - -msgid "Topic or Command" -msgstr "Téma nebo příkaz" - -msgid "The topic or command name." -msgstr "Název tématu nebo příkazu." - -msgid "Topic commands:" -msgstr "Příkazy tématu:" - -msgid "To get command help, use:" -msgstr "Chceteli získat nápovědu k příkazu, použijte:" - -msgid " ipa --help" -msgstr " ipa --help" - -msgid "Command name" -msgstr "Název příkazu" - -msgid "Positional arguments" -msgstr "Poziční argumenty" - -#, python-format -msgid "Same as --%s" -msgstr "Stejné jako --%s" - -msgid "Deprecated options" -msgstr "Zastaralé volby" - -msgid "No file to read" -msgstr "Žádný soubor k přečtení" - -msgid "A string searched in all relevant object attributes" -msgstr "Řetězec vyhledávaný ve všech odpovídajících atributech objektu" - -msgid "Operating system" -msgstr "Operační systém" - -msgid "User password" -msgstr "Uživatelské heslo" diff --git a/po/de.po b/po/de.po index bace0fe05..22bc3839f 100644 --- a/po/de.po +++ b/po/de.po @@ -3,659 +3,69 @@ # Tomas Babej , 2015. #zanata # David Kreitschmann , 2016. #zanata # Martin Bašti , 2016. #zanata +# Paul Ritter , 2017. #zanata msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2016-10-22 06:12-0400\n" -"Last-Translator: David Kreitschmann \n" +"PO-Revision-Date: 2017-11-27 08:40-0500\n" +"Last-Translator: Paul Ritter \n" "Language-Team: German\n" "Language: de\n" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#, python-format -msgid "objectclass %s not found" -msgstr "objektklasse %s nicht gefunden" +#, c-format +msgid "No keys accepted by KDC\n" +msgstr "KDC akzeptiert keine Schlüssel\n" -msgid "Show environment variables." -msgstr "Umgebungsvariablen anzeigen." +#, c-format +msgid "Out of memory \n" +msgstr "Nicht genügend Speicher\n" -#, python-format -msgid "%(count)d variables" -msgstr "%(count)d Variablen" +#, c-format +msgid "Unable to initialize ldap library!\n" +msgstr "ldap-Bibliothek konnte nicht initialisiert werden!\n" -msgid "Show all loaded plugins." -msgstr "Alle geladenen Plugins anzeigen." +#, c-format +msgid "Out of Memory!\n" +msgstr "Nicht genügend Speicher!\n" -#, python-format -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "%(count)d Plugin geladen" -msgstr[1] "%(count)d Plugins geladen" +msgid "New Principal Password" +msgstr "Neues Principal-Passwort" -msgid "Number of plugins loaded" -msgstr "Anzahl der geladenen Plugins" - -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at '%(server)s'" -msgstr "%(cver)s Client ist inkompatibel mit %(sver)s server auf '%(server)s'" - -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" -msgstr "Unbekannter Fehler %(code)d von %(server)s: %(error)s" - -msgid "an internal error has occurred" -msgstr "Ein interner Fehler ist aufgetreten" - -#, python-format -msgid "an internal error has occurred on server at '%(server)s'" -msgstr "In interner Fehler ist auf dem Server '%(server)s' aufgetreten." - -#, python-format -msgid "unknown command '%(name)s'" -msgstr "Unbekannter Befehl '%(name)s'" - -#, python-format -msgid "error on server '%(server)s': %(error)s" -msgstr "Fehler auf Server '%(server)s': %(error)s" - -#, python-format -msgid "cannot connect to '%(uri)s': %(error)s" -msgstr "Kann nicht zu '%(uri)s' verbinden: %(error)s" - -#, python-format -msgid "Invalid JSON-RPC request: %(error)s" -msgstr "Ungültige JSON-RPC-Anfrage: %(error)s" - -#, python-format -msgid "Missing or invalid HTTP Referer, %(referer)s" -msgstr "Fehlende oder ungültige HTTP-Referenz, %(referer)s" - -#, python-format -msgid "Kerberos error: %(major)s/%(minor)s" -msgstr "Kerberos-Fehler: %(major)s/%(minor)s" - -msgid "did not receive Kerberos credentials" -msgstr "Kerberos-Anmeldedaten wurden nicht empfangen" - -#, python-format -msgid "Service '%(service)s' not found in Kerberos database" -msgstr "Service '%(service)s' in Kerberos-Datenbank nicht gefunden" - -msgid "No credentials cache found" -msgstr "Keine Anmeldeinformationen-Cache gefunden" - -msgid "Ticket expired" -msgstr "Ticket abgelaufen" - -msgid "Credentials cache permissions incorrect" -msgstr "Zugriffsrechte des Anmeldedaten-Zwischenspeichers sind inkorrekt." - -msgid "Bad format in credentials cache" -msgstr "Falsches Format im Anmeldedaten-Zwischenspeicher" - -msgid "Cannot resolve KDC for requested realm" -msgstr "KDC für angeforderten Realm konnte nicht aufgelöst werden." - -msgid "Session error" -msgstr "Sitzungsfehler" - -#, python-format -msgid "Insufficient access: %(info)s" -msgstr "Unzureichender Zugriff: %(info)s" - -#, python-format -msgid "command '%(name)s' takes no arguments" -msgstr "Befehl '%(name)s' nimmt keine Argumente" - -#, python-format -msgid "command '%(name)s' takes at most %(count)d argument" -msgid_plural "command '%(name)s' takes at most %(count)d arguments" -msgstr[0] "Befehl '%(name)s' nimmt maximal %(count)d Argument" -msgstr[1] "Befehl '%(name)s' nimmt maximal %(count)d Argumente" - -#, python-format -msgid "overlapping arguments and options: %(names)s" -msgstr "Überlappende Argumente und Optionen: %(names)s" - -#, python-format -msgid "'%(name)s' is required" -msgstr "'%(name)s' wird benötigt" - -#, python-format -msgid "invalid '%(name)s': %(error)s" -msgstr "Ungültig '%(name)s': %(error)s" - -msgid "Passwords do not match" -msgstr "Passwörter stimmen nicht überein" - -msgid "Command not implemented" -msgstr "Befehl nicht implementiert" - -msgid "Client is not configured. Run ipa-client-install." -msgstr "Client ist nicht konfiguriert. Rufen Sie ipa-client-install auf." - -#, python-format -msgid "Could not get %(name)s interactively" -msgstr "%(name)s konnte nicht interaktiv ermittelt werden" - -#, python-format -msgid "Command '%(name)s' has been deprecated" -msgstr "Befehl '%(name)s' ist veraltet" - -#, python-format -msgid "%(reason)s" -msgstr "%(reason)s" - -msgid "This entry already exists" -msgstr "Dieser Eintrag existiert bereits" - -#, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" -msgstr "" -"Principal des Dienstes folgt nicht der Form »Dienst/voll ausgeschriebener " -"Hostname«: %(reason)s" - -msgid "" -"The realm for the principal does not match the realm for this IPA server" -msgstr "Der Realm des Principals passt nicht zum Realm dieses IPA-Servers." - -msgid "This command requires root access" -msgstr "Dieser Befehl erfordert Root-Zugriff" - -msgid "This is already a posix group" -msgstr "Dies ist bereits eine POSIX-Gruppe" - -#, python-format -msgid "Principal is not of the form user@REALM: '%(principal)s'" -msgstr "Principal ist nicht in der Form user@REALM: '%(principal)s'" - -msgid "This entry is already enabled" -msgstr "Dieser Eintrag ist bereits aktiviert" - -msgid "This entry is already disabled" -msgstr "Dieser Eintrag ist bereits deaktiviert" - -msgid "This entry cannot be enabled or disabled" -msgstr "Dieser Eintrag kann nicht aktiviert oder deaktiviert werden" - -msgid "This entry is not a member" -msgstr "Dieser Eintrag ist kein Mitglied" - -msgid "A group may not be a member of itself" -msgstr "Eine Gruppe kann kein Mitglied von sich selbst sein" - -msgid "This entry is already a member" -msgstr "Dieser Eintrag ist bereits ein Mitglied" - -#, python-format -msgid "Base64 decoding failed: %(reason)s" -msgstr "Base64-Dekodierung fehlgeschlagen: %(reason)s" - -msgid "A group may not be added as a member of itself" -msgstr "Eine Gruppe kann nicht als Mitglied von sich selbst hinzugefügt werden" - -msgid "The default users group cannot be removed" -msgstr "Die vorgegebene Benutzergruppe kann nicht entfernt werden" - -msgid "Deleting a managed group is not allowed. It must be detached first." -msgstr "" -"Das Löschen einer verwalteten Gruppe ist unzulässig. Sie muss zuerst aus der " -"Verwaltung entfernt werden." - -msgid "A managed group cannot have a password policy." -msgstr "Eine verwaltete Gruppe kann keine Passwort-Policy haben." - -#, python-format -msgid "'%(entry)s' doesn't have a certificate." -msgstr "»%(entry)s« verfügt nicht über ein Zertifikat." - -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." -msgstr "" -"Die private Gruppe konnte nicht erstellt werden. Eine Gruppe »%(group)s« " -"existiert bereits." - -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" -msgstr "" -"Ein Problem trat bei der Überprüfung auf, ob alle Mitglieder %(verb)s waren: " -"%(exc)s" - -#, python-format -msgid "%(attr)s does not contain '%(value)s'" -msgstr "%(attr)s enthält nicht »%(value)s«" - -#, python-format -msgid "" -"The search criteria was not specific enough. Expected 1 and found %(found)d." -msgstr "" -"Die Suchkriterien waren nicht spezifisch genug. 1 wurde erwartet, aber " -"%(found)d gefunden." - -msgid "This group already allows external members" -msgstr "Diese Gruppe erlaubt bereits externe Mitglieder" - -msgid "This group cannot be posix because it is external" -msgstr "Diese Gruppe kann nicht POSIX sein, weil sie extern ist" - -msgid "This is already a posix group and cannot be converted to external one" -msgstr "" -"Dies ist bereits eine POSIX-Gruppe, sie kann nicht zu einer externen " -"konvertiert werden" - -#, python-format -msgid "no command nor help topic '%(topic)s'" -msgstr "kein Befehl oder Hilfethema '%(topic)s'" - -msgid "change collided with another change" -msgstr "Änderung kollidiert mit einer anderen Änderung" - -msgid "no modifications to be performed" -msgstr "Keine anzuwendenden Änderungen" - -#, python-format -msgid "%(desc)s: %(info)s" -msgstr "%(desc)s: %(info)s" - -msgid "limits exceeded for this query" -msgstr "Begrenzung wurde für diese Abfrage überschritten." - -#, python-format -msgid "%(info)s" -msgstr "%(info)s" - -msgid "modifying primary key is not allowed" -msgstr "Ändern des primären Schlüssels ist nicht erlaubt." - -#, python-format -msgid "%(attr)s: Only one value allowed." -msgstr "%(attr)s: Nur ein Wert erlaubt." - -#, python-format -msgid "%(attr)s: Invalid syntax." -msgstr "%(attr)s: Ungültige Syntax." - -#, python-format -msgid "Bad search filter %(info)s" -msgstr "Falscher Suchfilter %(info)s" - -msgid "Not allowed on non-leaf entry" -msgstr "Bei einem Nicht-Blatt-Eintrag nicht erlaubt" - -msgid "LDAP timeout" -msgstr "LDAP Timeout" - -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" -msgstr "Zertifikat-Operation kann nicht abgeschlossen werden: %(error)s" - -#, python-format -msgid "Certificate format error: %(error)s" -msgstr "Formatfehler im Zertifikat: %(error)s" - -msgid "Already registered" -msgstr "Bereits registriert" - -msgid "Not registered yet" -msgstr "Noch nicht registriert" - -#, python-format -msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it" -msgstr "" -"%(key)s kann nicht gelöscht werden, weil es von %(label)s %(dependent)s " -"benötigt wird." - -#, python-format -msgid "" -"%(key)s cannot be deleted or disabled because it is the last member of " -"%(label)s %(container)s" -msgstr "" -"%(key)s kann nicht gelöscht oder deaktiviert werden weil es das letzte " -"Mitglied von %(label)s %(container)s ist" - -#, python-format -msgid "%(label)s %(key)s cannot be deleted/modified: %(reason)s" -msgstr "%(label)s %(key)s kann nicht gelöscht/bearbeitet werden: %(reason)s" - -#, python-format -msgid "%(name)s certificate is not valid" -msgstr "%(name)s Zertifikat ist ungültig" - -#, python-format -msgid "DNS check failed: Expected {%(expected)s} got {%(got)s}" -msgstr "DNS Check fehlerhaft: Erwartet {%(expected)s} bekommen {%(got)s}" - -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "Geben Sie %(label)s zur Bestätigung nochmals ein: " +msgid "Verify Principal Password" +msgstr "Principal-Passwort bestätigen" #, c-format msgid "Passwords do not match!" msgstr "Passwörter stimmen nicht überein!" -msgid "No matching entries found" -msgstr "Keine passenden Einträge gefunden" +msgid "Output only on errors" +msgstr "Ausgabe nur bei Fehlern" -msgid "Topic or Command" -msgstr "Thema oder Befehl" +msgid "Server Name" +msgstr "Servername" -msgid "The topic or command name." -msgstr "Das Thema oder der Befehlsname" - -msgid "Topic commands:" -msgstr "Thema-Befehle:" - -msgid "To get command help, use:" -msgstr "Um Hilfe zu Befehlen zu bekommen benutzen sie:" - -msgid " ipa --help" -msgstr " ipa --help" - -msgid "Command name" -msgstr "Befehlsname" - -msgid "Positional arguments" -msgstr "Positionale Argumente" - -#, python-format -msgid "Same as --%s" -msgstr "Das gleiche wie --%s" - -msgid "Deprecated options" -msgstr "Veraltete Optionen" - -msgid "No file to read" -msgstr "Keine Datei zum Lesen" - -msgid "Additional instructions:" -msgstr "Zusätzliche Anweisungen:" - -#, python-format -msgid "" -"API Version number was not sent, forward compatibility not guaranteed. " -"Assuming server's API version, %(server_version)s" -msgstr "" -"API Versionsnummer wurde nicht gesendet, Vorwärtskompatibiltät nicht " -"garantiert. Nehme API Version %(server_version)s für Server an." - -#, python-format -msgid "" -"DNSSEC support is experimental.\n" -"%(additional_info)s" -msgstr "" -"DNSSEC Unterstützung ist experimentell.\n" -"%(additional_info)s" - -#, python-format -msgid "'%(option)s' option is deprecated. %(additional_info)s" -msgstr "'%(option)s' Option ist veraltet. %(additional_info)s" - -#, python-format -msgid "" -"Semantic of %(label)s was changed. %(current_behavior)s\n" -"%(hint)s" -msgstr "" -"Semantik von %(label)s wurde geändert. %(current_behavior)s\n" -"%(hint)s" - -#, python-format -msgid "DNS server %(server)s: %(error)s." -msgstr "DNS Server %(server)s: %(error)s." - -#, python-format -msgid "" -"DNS server %(server)s does not support DNSSEC: %(error)s.\n" -"If DNSSEC validation is enabled on IPA server(s), please disable it." -msgstr "" -"DNS Server %(server)s unterstützt kein DNSSEC: %(error)s.\n" -"Wenn DNSSEC-Überprüfung auf den IPA Servern aktiviert ist bitte deaktivieren." - -#, python-format -msgid "" -"DNSSEC validation failed: %(error)s.\n" -"Please verify your DNSSEC configuration or disable DNSSEC validation on all " -"IPA servers." -msgstr "" -"DNSSEC Überprüfung fehlgeschlagen: %(error)s.\n" -"Bitte überprüfen Sie die DNSSEC Konfigurationen oder deaktivieren die DNSSEC " -"Überprüfung auf allen IPA Servern." - -#, python-format -msgid "'%(command)s' is deprecated. %(additional_info)s" -msgstr "'%(command)s' ist veraltet. %(additional_info)s" - -msgid "Results are truncated, try a more specific search" -msgstr "" -"Ergebnisse wurden abgeschnitten, versuchen Sie eine spezifischere Suche." - -#, python-format -msgid "Unknown option: %(option)s" -msgstr "Unbekannte Option: %(option)s" - -msgid "" -"Retrieve and print all attributes from the server. Affects command output." -msgstr "" -"Ermittelt alle Attribute des Servers und gibt diese aus. Dies wirkt sich auf " -"die Befehlsausgabe aus." - -msgid "Print entries as stored on the server. Only affects output format." -msgstr "" -"Gibt die Einträge so aus, wie sie auf dem Server gespeichert sind. Dies " -"wirkt sich nur auf das Ausgabeformat aus." - -msgid "Client version. Used to determine if server will accept request." -msgstr "" -"Client-Version. Dadurch wird bestimmt, ob der Server die Anfrage akzeptiert." - -msgid "Forward to server instead of running locally" -msgstr "Zum Server weiterleiten, anstatt lokal auszuführen" - -msgid "incorrect type" -msgstr "inkorrekter Typ" - -msgid "Only one value is allowed" -msgstr "Nur ein Wert ist erlaubt" - -msgid "this option is deprecated" -msgstr "diese Option ist veraltet" - -msgid "must be True or False" -msgstr "muss »True« oder »False« sein" - -msgid "must be an integer" -msgstr "muss eine Ganzzahl sein" - -#, python-format -msgid "must be at least %(minvalue)d" -msgstr "muss mindestens %(minvalue)d sein" - -#, python-format -msgid "can be at most %(maxvalue)d" -msgstr "darf höchstens %(maxvalue)d sein" - -msgid "must be a decimal number" -msgstr "muss eine Dezimalzahl sein" - -#, python-format -msgid "must be at least %(minvalue)s" -msgstr "muss mindestens %(minvalue)s sein" - -#, python-format -msgid "can be at most %(maxvalue)s" -msgstr "darf höchstens %(maxvalue)s sein" - -#, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "muss dem Muster »%(pattern)s« entsprechen" - -msgid "must be binary data" -msgstr "muss im Binärformat sein" - -#, python-format -msgid "must be at least %(minlength)d bytes" -msgstr "muss mindestens %(minlength)d Bytes groß sein" - -#, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "darf höchstens %(maxlength)d Bytes groß sein" - -#, python-format -msgid "must be exactly %(length)d bytes" -msgstr "muss genau %(length)d Bytes groß sein" - -msgid "must be Unicode text" -msgstr "muss Unicode-Text sein" - -msgid "Leading and trailing spaces are not allowed" -msgstr "Führende und angehängte Leerzeichen sind nicht erlaubt." - -#, python-format -msgid "must be at least %(minlength)d characters" -msgstr "muss mindestens %(minlength)d Zeichen lang sein" - -#, python-format -msgid "can be at most %(maxlength)d characters" -msgstr "darf höchstens %(maxlength)d Zeichen lang sein" - -#, python-format -msgid "must be exactly %(length)d characters" -msgstr "muss genau %(length)d Zeichen lang sein" - -#, python-format -msgid "must be '%(value)s'" -msgstr "muss '%(value)s' sein" - -#, python-format -msgid "must be one of %(values)s" -msgstr "muss eines von %(values)s sein" - -msgid "must be datetime value" -msgstr "muss ein datetime-Wert sein" - -msgid "must be DNS name" -msgstr "muss ein DNS-Name sein" - -msgid "must be absolute" -msgstr "muss absolut sein" - -msgid "must be relative" -msgstr "muss relativ sein" - -msgid "A string searched in all relevant object attributes" -msgstr "" -"Eine Zeichenkette, nach der in allen relevanten Objektattributen gesucht wird" - -msgid "A list of LDAP entries" -msgstr "Eine Liste von LDAP-Einträgen" - -msgid "All commands should at least have a result" -msgstr "Alle Befehle sollten mindestens ein Ergebnis haben." - -msgid "User-friendly description of action performed" -msgstr "Benutzerfreundliche Beschreibung der ausgeführten Aktion" - -msgid "The primary_key value of the entry, e.g. 'jdoe' for a user" -msgstr "" -"Der Wert von »primary_key« des Eintrags, z.B. »jdoe« für einen Benutzer" - -msgid "Number of entries returned" -msgstr "Anzahl der zurückgegebenen Einträge" - -msgid "True if not all results were returned" -msgstr "»True«, falls nicht alle Ergebnisse ausgegeben wurden" - -msgid "List of deletions that failed" -msgstr "Liste der fehlgeschlagenen Löschvorgänge" - -msgid "True means the operation was successful" -msgstr "»True« bedeutet, dass die Operation erfolgreich abgeschlossen wurde." - -#, python-format -msgid "Permission denied: %(file)s" -msgstr "Zugriff verweigert: %(file)s" - -msgid "too many '@' characters" -msgstr "Zu viele »@«-Zeichen" - -msgid "cannot be longer that 255 characters" -msgstr "darf nicht länger als 255 Zeichen sein" - -msgid "not fully qualified" -msgstr "nicht voll ausgeschrieben" - -msgid "invalid SSH public key" -msgstr "Ungültiger öffentlicher SSH-Schlüssel" - -#, python-format -msgid "invalid domain-name: %s" -msgstr "Ungültiger Domainname: %s" - -#, python-format -msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!" -msgstr "" -"Ungültige IP-Adressversion (ist %(value)d, muss %(required_value)d) sein!" - -msgid "invalid IP address format" -msgstr "Ungültiges IP-Adressformat" - -#, python-format -msgid "%(port)s is not a valid port" -msgstr "%(port)s kein gültiger Port" - -#, c-format -msgid "cannot open configuration file %s\n" -msgstr "Konfigurationsdatei %s konnte nicht geöffnet werden\n" - -#, c-format -msgid "cannot stat() configuration file %s\n" -msgstr "Aufruf von »stat« für Konfigurationsdatei %s nicht möglich\n" - -#, c-format -msgid "out of memory\n" -msgstr "Nicht genügend Speicher\n" - -#, c-format -msgid "read error\n" -msgstr "Lesefehler\n" - -#, c-format -msgid "Removing principal %s\n" -msgstr "Principal %s wird entfernt\n" - -#, c-format -msgid "principal not found\n" -msgstr "Principal nicht gefunden\n" - -#, c-format -msgid "realm not found\n" -msgstr "Realm nicht gefunden\n" - -msgid "Print debugging information" -msgstr "Ausgabe von Debug-Informationen" - -msgid "Debugging output" -msgstr "Debugging-Ausgabe" - -msgid "Remove all principals in this realm" -msgstr "Alle Principals in diesem Realm entfernen" - -msgid "Realm name" -msgstr "Realm-Name" +msgid "LDAP password" +msgstr "LDAP-Passwort" #, c-format msgid "Kerberos context initialization failed\n" msgstr "Initialisierung des Kerberos-Kontexts fehlgschlagen\n" +#, c-format +msgid "Supported encryption types:\n" +msgstr "Unterstützte Verschlüsselungstypen:\n" + +#, c-format +msgid "Warning: failed to convert type (#%d)\n" +msgstr "Warnung: Typ konnte nicht umgewandelt werden (#%d)\n" + #, c-format msgid "Out of memory!" msgstr "Nicht genügend Speicher!" @@ -736,55 +146,72 @@ msgid "password" msgstr "Passwort" #, c-format -msgid "No keys accepted by KDC\n" -msgstr "KDC akzeptiert keine Schlüssel\n" +msgid "Removing principal %s\n" +msgstr "Principal %s wird entfernt\n" #, c-format -msgid "Out of memory \n" +msgid "principal not found\n" +msgstr "Principal nicht gefunden\n" + +#, c-format +msgid "realm not found\n" +msgstr "Realm nicht gefunden\n" + +msgid "Print debugging information" +msgstr "Ausgabe von Debug-Informationen" + +msgid "Debugging output" +msgstr "Debugging-Ausgabe" + +msgid "Remove all principals in this realm" +msgstr "Alle Principals in diesem Realm entfernen" + +msgid "Realm name" +msgstr "Realm-Name" + +#, c-format +msgid "cannot open configuration file %s\n" +msgstr "Konfigurationsdatei %s konnte nicht geöffnet werden\n" + +#, c-format +msgid "cannot stat() configuration file %s\n" +msgstr "Aufruf von »stat« für Konfigurationsdatei %s nicht möglich\n" + +#, c-format +msgid "out of memory\n" msgstr "Nicht genügend Speicher\n" #, c-format -msgid "Unable to initialize ldap library!\n" -msgstr "ldap-Bibliothek konnte nicht initialisiert werden!\n" +msgid "read error\n" +msgstr "Lesefehler\n" -#, c-format -msgid "Out of Memory!\n" -msgstr "Nicht genügend Speicher!\n" +#, python-format +msgid "objectclass %s not found" +msgstr "Objektklasse %s nicht gefunden" -msgid "New Principal Password" -msgstr "Neues Principal-Passwort" +msgid "Failed members" +msgstr "Fehler bei Mitgliedern" -msgid "Verify Principal Password" -msgstr "Principal-Passwort bestätigen" +msgid "Failed hosts/hostgroups" +msgstr "Fehler bei Hosts/Hostgruppen" -msgid "Output only on errors" -msgstr "Ausgabe nur bei Fehlern" +msgid "Failed users/groups" +msgstr "Fehlerhafte Benutzer/Gruppen" -msgid "Server Name" -msgstr "Servername" +msgid "Failed service/service groups" +msgstr "Fehler bei Diensten/Dienstgruppen" -msgid "LDAP password" -msgstr "LDAP-Passwort" +msgid "Failed to remove" +msgstr "Entfernen fehlgeschlagen" -#, c-format -msgid "Supported encryption types:\n" -msgstr "Unterstützte Verschlüsselungstypen:\n" +msgid "Failed RunAs" +msgstr "RunAs fehlgeschlagen" -#, c-format -msgid "Warning: failed to convert type (#%d)\n" -msgstr "Warnung: Typ konnte nicht umgewandelt werden (#%d)\n" +msgid "Failed RunAsGroup" +msgstr "RunAsGroup fehlgeschlagen" -msgid "Name of object to export" -msgstr "Name des zu exportierenden Objekts" - -msgid "Name of method to export" -msgstr "Name des zu exportierenden Methode" - -msgid "Name of command to export" -msgstr "Name des zu exportierenden Befehls" - -msgid "User name" -msgstr "Benutzername" +msgid "Delegation name" +msgstr "Delegationsname" msgid "" "Set an attribute to a name/value pair. Format is attr=value.\n" @@ -803,11 +230,59 @@ msgstr "" "Das Attribut muss Teil des Schemas sein." msgid "" -"Delete an attribute/value pair. The option will be evaluated\n" -"last, after all sets and adds." +"Retrieve and print all attributes from the server. Affects command output." msgstr "" -"Ein Attribut-Wert-Paar löschen. Diese Option wird zuletzt angewendet,\n" -"nach allen Optionen, die etwas festlegen oder hinzufügen." +"Ermittelt alle Attribute des Servers und gibt diese aus. Dies wirkt sich auf " +"die Befehlsausgabe aus." + +msgid "Print entries as stored on the server. Only affects output format." +msgstr "" +"Gibt die Einträge so aus, wie sie auf dem Server gespeichert sind. Dies " +"wirkt sich nur auf das Ausgabeformat aus." + +msgid "User-friendly description of action performed" +msgstr "Benutzerfreundliche Beschreibung der ausgeführten Aktion" + +msgid "The primary_key value of the entry, e.g. 'jdoe' for a user" +msgstr "" +"Der Wert von »primary_key« des Eintrags, z.B. »jdoe« für einen Benutzer" + +msgid "Members that could not be added" +msgstr "Mitglieder, die nicht hinzugefügt werden konnten" + +msgid "Number of members added" +msgstr "Zahl der hinzugefügten Mitglieder" + +msgid "Continuous mode: Don't stop on errors." +msgstr "Fortlaufender Modus: Kein Abbruch bei Fehlern." + +msgid "List of deletions that failed" +msgstr "Liste der fehlgeschlagenen Löschvorgänge" + +msgid "A string searched in all relevant object attributes" +msgstr "" +"Eine Zeichenkette, nach der in allen relevanten Objektattributen gesucht wird" + +msgid "Time Limit" +msgstr "Zeitbegrenzung" + +msgid "Size Limit" +msgstr "Größenbeschränkung" + +msgid "Primary key only" +msgstr "Nur primärer Schlüssel" + +msgid "Number of entries returned" +msgstr "Anzahl der zurückgegebenen Einträge" + +msgid "True if not all results were returned" +msgstr "»True«, falls nicht alle Ergebnisse ausgegeben wurden" + +msgid "Members that could not be removed" +msgstr "Mitglieder, die nicht entfernt werden konnten" + +msgid "Number of members removed" +msgstr "Anzahl der entfernten Mitglieder" msgid "Rights" msgstr "Rechte" @@ -819,527 +294,78 @@ msgstr "" "Zugriffsrechte dieses Eintrags anzeigen (erfordert --all). In der " "Handbuchseite zu ipa finden Sie weitere Details." -msgid "Continuous mode: Don't stop on errors." -msgstr "Fortlaufender Modus: Kein Abbruch bei Fehlern." - -msgid "Time Limit" -msgstr "Zeitbegrenzung" - -msgid "Time limit of search in seconds" -msgstr "Zeitbegrenzung für den Suchvorgang in Sekunden" - -msgid "Size Limit" -msgstr "Größenbeschränkung" - -msgid "Maximum number of entries returned" -msgstr "Maximale Anzahl der zurückgegebenen Einträge" - -msgid "Primary key only" -msgstr "Nur primärer Schlüssel" - -msgid "Username" +msgid "User name" msgstr "Benutzername" -msgid "Password" -msgstr "Passwort" - -msgid "Principal" -msgstr "Principal" - -msgid "Service principal" -msgstr "Dienst-Principal" - -msgid "Certificate" -msgstr "Zertifikat" - -msgid "Base-64 encoded server certificate" -msgstr "Base-64-kodiertes Serverzertifikat" - -msgid "Keytab" -msgstr "Schlüsseltabelle" - -msgid "Add a new IPA new service." -msgstr "Einen neuen IPA-Dienst hinzufügen." - -msgid "Add hosts that can manage this service." -msgstr "Hosts hinzufügen, die diesen Dienst verwalten können." - -msgid "Members that could not be added" -msgstr "Mitglieder, die nicht hinzugefügt werden konnten" - -msgid "Number of members added" -msgstr "Zahl der hinzugefügten Mitglieder" - -msgid "Delete an IPA service." -msgstr "Einen IPA-Dienst entfernen." - -msgid "Disable the Kerberos key and SSL certificate of a service." +msgid "" +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." msgstr "" -"Den Kerberos-Schlüssel und das SSL-Zertifikat eines Dienstes deaktivieren." - -msgid "Search for IPA services." -msgstr "Nach IPA-Diensten suchen." - -msgid "host" -msgstr "host" - -msgid "Modify an existing IPA service." -msgstr "Einen existierenden IPA-Dienst bearbeiten." - -msgid "Remove hosts that can manage this service." -msgstr "Hosts entfernen, die diesen Dienst verwalten können." - -msgid "Members that could not be removed" -msgstr "Mitglieder, die nicht entfernt werden konnten" - -msgid "Number of members removed" -msgstr "Anzahl der entfernten Mitglieder" - -msgid "Display information about an IPA service." -msgstr "Informationen zu einem IPA-Dienst anzeigen." - -msgid "Rule name" -msgstr "Regelname" +"Ein Attribut-Wert-Paar löschen. Diese Option wird zuletzt angewendet,\n" +"nach allen Optionen, die etwas festlegen oder hinzufügen." msgid "Description" msgstr "Beschreibung" -msgid "Enabled" -msgstr "Aktiviert" +msgid "Group name" +msgstr "Gruppenname" -msgid "User category" -msgstr "Benutzerkategorie" +msgid "GID" +msgstr "Gruppen-ID" -msgid "User category the rule applies to" -msgstr "Benutzerkategorie, auf welche die Regel angewendet werden soll" +msgid "Group ID Number" +msgstr "Gruppen-ID" -msgid "Host category" -msgstr "Host-Kategorie" +msgid "User login" +msgstr "Anmeldename" -msgid "Host category the rule applies to" -msgstr "Host-Kategorie, auf welche die Regel angewendet werden soll" +msgid "UID" +msgstr "UID" -msgid "Command category" -msgstr "Befehlskategorie" +msgid "GECOS" +msgstr "GECOS" -msgid "Command category the rule applies to" -msgstr "Befehlskategorie, auf die die Regel angewendet werden soll" +msgid "Home directory" +msgstr "Home-Verzeichnis" -msgid "Users" -msgstr "Benutzer" - -msgid "User Groups" -msgstr "Benutzergruppen" - -msgid "Hosts" -msgstr "Hosts" - -msgid "Host Groups" -msgstr "Host-Gruppen" - -msgid "External User" -msgstr "Externer Benutzer" - -msgid "Sudo Option" -msgstr "Sudo-Option" - -msgid "External host" -msgstr "Externer Host" - -msgid "Disable a Sudo Rule." -msgstr "Eine Sudo-Regel deaktivieren." - -msgid "Enable a Sudo Rule." -msgstr "Eine Sudo-Regel aktivieren." - -msgid "Search for Sudo Rule." -msgstr "Nach Sudo-Regel suchen." - -msgid "Display Sudo Rule." -msgstr "Sudo-Regel anzeigen." - -msgid "Sudo Command Group" -msgstr "Sudo-Befehlsgruppe" - -msgid "Group description" -msgstr "Gruppenbeschreibung" - -msgid "Commands" -msgstr "Befehle" - -msgid "Sudo Command Groups" -msgstr "Sudo-Befehlsgruppen" - -msgid "Permission name" -msgstr "Berechtigungsname" - -msgid "Permissions" -msgstr "Berechtigungen" - -msgid "Attributes" -msgstr "Attribute" - -msgid "Type" -msgstr "Typ" - -msgid "Filter" -msgstr "Filter" - -msgid "Legal LDAP filter (e.g. ou=Engineering)" -msgstr "Gültiger LDAP filter (z.B. ou=Engineering)" - -msgid "Subtree" -msgstr "Subtree" - -msgid "Target group" -msgstr "Ziel-Gruppe" - -msgid "Indirect Member of roles" -msgstr "Indirektes Mitglied von Rollen" - -msgid "Rename" -msgstr "Umbenennen" - -msgid "HBAC Rule" -msgstr "HBAC-Regel" - -msgid "HBAC Rule that defines the users, groups and hostgroups" -msgstr "HBAC Regel die Benutzer, Gruppen und Hostgruppen definiert" - -msgid "Host name" -msgstr "Hostname" - -msgid "A description of this host" -msgstr "Beschreibung des Hosts" - -msgid "Locality" -msgstr "Ort" - -msgid "Host locality (e.g. \"Baltimore, MD\")" -msgstr "Ort des Hosts (z.B. \"Baltimore, MD\")" - -msgid "Location" -msgstr "Ort" - -msgid "Platform" -msgstr "Plattform" - -msgid "Host hardware platform (e.g. \"Lenovo T61\")" -msgstr "Hardwareplattform (z.B. \"Lenovo T61\")" - -msgid "Operating system" -msgstr "Betriebssystem" - -msgid "Host operating system and version (e.g. \"Fedora 9\")" -msgstr "Betriebssystem und Version (z.B. \"Fedora 9\")" - -msgid "User password" -msgstr "Benutzerpasswort" - -msgid "Random password" -msgstr "Zufälliges Passwort" - -msgid "Principal name" -msgstr "Principal-Name" - -msgid "MAC address" -msgstr "MAC-Adresse" +msgid "Login shell" +msgstr "Anmeldeshell" msgid "SSH public key" msgstr "Öffentlicher SSH Schlüssel" -msgid "Member of host-groups" -msgstr "Mitglied von Host-Gruppen" +msgid "Rename" +msgstr "Umbenennen" -msgid "Roles" -msgstr "Rollen" +msgid "hosts" +msgstr "hosts" -msgid "Add a new host." -msgstr "Neuen Host hinzufügen." +msgid "TOTP authentication Window" +msgstr "TOTP Authentifizierungsfenster" -msgid "force host name even if not in DNS" -msgstr "Hostname erzwingen auch wenn nicht im DNS" +msgid "TOTP Synchronization Window" +msgstr "TOTP Sychnronisierungsfenster" -msgid "IP Address" -msgstr "IP-Adresse" +msgid "HOTP Authentication Window" +msgstr "HOTP Authentifizierungsfenster" -msgid "Add the host to DNS with this IP address" -msgstr "Host mit dieser IP zum DNS hinzufügen" +msgid "HOTP Synchronization Window" +msgstr "HOTP Sychnronisierungsfenster" -msgid "Add hosts that can manage this host." -msgstr "Hosts hinzufügen die diesen Host verwalten dürfen." +msgid "Modify OTP configuration options." +msgstr "OTP Konfigurationsoptionen bearbeiten." -msgid "Delete a host." -msgstr "Host löschen." +msgid "Show the current OTP configuration." +msgstr "Aktuelle OTP Konfiguration anzeigen" -msgid "Remove entries from DNS" -msgstr "DNS Einträge löschen" +msgid "The IPA realm" +msgstr "Der IPA-Realm" -msgid "Disable the Kerberos key, SSL certificate and all services of a host." -msgstr "" -"Kerberos-Schlüssel, SSL-Zertifikat und alle Dienste des Hosts deaktivieren." +msgid "Hardware platform of the host (e.g. Lenovo T61)" +msgstr "Hardwareplattform des Hosts (z.B. Lenovo T400)" -msgid "Search for hosts." -msgstr "Nach Hosts suchen." - -msgid "host group" -msgstr "Hostgruppe" - -msgid "role" -msgstr "Rolle" - -msgid "HBAC rule" -msgstr "HBAC-Regel" - -msgid "sudo rule" -msgstr "Sudo-Regel" - -msgid "user" -msgstr "Benutzer" - -msgid "Modify information about a host." -msgstr "Hostinformationen ändern." - -msgid "Kerberos principal name for this host" -msgstr "Kerberos-Principal für diesen Host" - -msgid "Update DNS entries" -msgstr "DNS Einträge aktualisieren" - -msgid "Remove hosts that can manage this host." -msgstr "Hosts entfernen die diesen Host verwalten dürfen." - -msgid "Display information about a host." -msgstr "Informationen über Host anzeigen." - -msgid "Service group name" -msgstr "Dienstgruppenname" - -msgid "HBAC service group description" -msgstr "Beschreibung der HBAC-Dienstgruppe" - -msgid "Member HBAC service" -msgstr "Mitglieds-HBAC-Dienst" - -msgid "Add a new HBAC service group." -msgstr "Eine neue HBAC-Dienstgruppe hinzufügen." - -msgid "Add members to an HBAC service group." -msgstr "Mitglieder zur einer HBAC-Dienstgruppe hinzufügen." - -msgid "Delete an HBAC service group." -msgstr "HBAC-Dienstgruppe löschen" - -msgid "Search for an HBAC service group." -msgstr "Suche nach HBAC Dienstgruppe" - -msgid "Modify an HBAC service group." -msgstr "HBAC-Dienstgruppe bearbeiten" - -msgid "Remove members from an HBAC service group." -msgstr "Mitglieder von einer HBAC-Dienstgruppe entfernen." - -msgid "Display information about an HBAC service group." -msgstr "Informationen über eine HBAC-Dienstgruppe anzeigen" - -msgid "ACI name" -msgstr "ACI-Name" - -msgid "Permission" -msgstr "Berechtigung" - -msgid "Permission ACI grants access to" -msgstr "Berechtigungs-ACI erlaubt Zugriff auf" - -msgid "User group" -msgstr "Benutzer-Gruppe" - -msgid "User group ACI grants access to" -msgstr "Benutzergruppen-ACI erlaubt Zugriff auf" - -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" -msgstr "Typ des IPA-Objekts (user, group, host, hostgroup, service, netgroup)" - -msgid "Member of" -msgstr "Mitglied von" - -msgid "Member of a group" -msgstr "Mitglied einer Gruppe" - -msgid "Subtree to apply ACI to" -msgstr "Subtree auf den ACI angewendet wird" - -msgid "Target your own entry (self)" -msgstr "Auf eigenen Eintrag anwenden (self)" - -msgid "ACI prefix" -msgstr "ACI-Präfix" - -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" -msgstr "" -"Präfix zur Unterscheidung der ACI-Typen (permission, delegation, " -"selfservice, none)" - -msgid "Test the ACI syntax but don't write anything" -msgstr "ACI-Syntax testen, aber nicht schreiben" - -msgid "New ACI name" -msgstr "Neuer ACI-Name" - -msgid "Service name" -msgstr "Dienstname" - -msgid "HBAC service" -msgstr "HBAC-Dienst" - -msgid "HBAC service description" -msgstr "Beschreibung des HBAC-Dienstes" - -msgid "Add a new HBAC service." -msgstr "Einen neuen HBAC-Dienst hinzufügen." - -msgid "Delete an existing HBAC service." -msgstr "Einen existierenden HBAC Dienst löschen." - -msgid "Search for HBAC services." -msgstr "Nach HBAC-Diensten suchen." - -msgid "Modify an HBAC service." -msgstr "HBAC Dienst ändern" - -msgid "Display information about an HBAC service." -msgstr "Informationen zu einem HBAC-Dienst anzeigen." - -msgid "LDAP URI" -msgstr "LDAP-URI" - -msgid "bind password" -msgstr "Bind-Passwort" - -msgid "Bind DN" -msgstr "Bind-DN" - -msgid "LDAP schema" -msgstr "LDAP-Schema" - -msgid "" -"The schema used on the LDAP server. Supported values are RFC2307 and " -"RFC2307bis. The default is RFC2307bis" -msgstr "" -"Das auf dem LDAP-Server verwendete Schema. Zulässige Werte sind RFC2307 und " -"RFC2307bis. Der Vorgabewert ist RFC2307bis." - -msgid "Lists of objects migrated; categorized by type." -msgstr "Liste der migrierten Objekte, nach Typ geordnet." - -msgid "Lists of objects that could not be migrated; categorized by type." -msgstr "" -"Liste der Objekte, die nicht migriert werden konnten, nach Typ geordnet." - -msgid "A description of this auto member rule" -msgstr "Beschreibung der Auto-Mitgliedschaftsregel" - -msgid "Default (fallback) Group" -msgstr "Standard (Rückfall) Gruppe" - -msgid "Default group for entries to land" -msgstr "Vorgegebene Gruppe für Einträge" - -msgid "Automember Rule" -msgstr "Auto-Mitgliedschaftsregel" - -msgid "Grouping Type" -msgstr "Gruppierungstyp" - -msgid "Grouping to which the rule applies" -msgstr "Gruppierung, auf die die Regel angewendet wird" - -msgid "Inclusive Regex" -msgstr "Einschließende Regex" - -msgid "Exclusive Regex" -msgstr "Ausschließende Regex" - -msgid "Attribute Key" -msgstr "Attribut Schlüssel" - -msgid "" -"Attribute to filter via regex. For example fqdn for a host, or manager for a " -"user" -msgstr "" -"Dieses Attribut wird per Regex gefiltert. Zum Beispiel FQDN für einen Host, " -"oder Manager für einen Benutzer" - -msgid "Conditions that could not be added" -msgstr "Bedingungen, die nicht hinzugefügt werden konnten" - -msgid "Number of conditions added" -msgstr "Anzahl der hinzugefügten Bedingungen" - -msgid "Conditions that could not be removed" -msgstr "Bedingungen, die nicht entfernt werden konnten" - -msgid "Number of conditions removed" -msgstr "Anzahl der entfernten Bedingungen" - -msgid "Sudo Command" -msgstr "Sudo-Befehl" - -msgid "A description of this command" -msgstr "Eine Beschreibung dieses Befehls" - -msgid "Create new Sudo Command." -msgstr "Neuen Sudo-Befehl erzeugen." - -msgid "Delete Sudo Command." -msgstr "Sudo-Befehl löschen." - -msgid "Search for Sudo Commands." -msgstr "Nach Sudo-Befehlen suchen." - -msgid "Modify Sudo Command." -msgstr "Sudo-Befehl ändern." - -msgid "Display Sudo Command." -msgstr "Sudo-Befehl anzeigen." - -msgid "Key" -msgstr "Schlüssel" - -msgid "Mount information" -msgstr "Einhänge-Informationen" - -msgid "description" -msgstr "Beschreibung" - -msgid "Automount location name." -msgstr "Automount-Ort" - -msgid "Map" -msgstr "Karte" - -msgid "Automount map name." -msgstr "Automount-Map Name." - -msgid "Create a new automount location." -msgstr "Neuen Automount-Ort erstellen." - -msgid "Delete an automount location." -msgstr "Automount-Ort löschen." - -msgid "Search for an automount location." -msgstr "Automount-Ort suchen." - -msgid "Display an automount location." -msgstr "Automount-Ort anzeigen." - -msgid "Mount point" -msgstr "Einhängepunkt" - -msgid "Delegation name" -msgstr "Delegationsname" +msgid "Operating System and version of the host (e.g. Fedora 9)" +msgstr "Betriebssystem und Version des Hosts (z.B. Fedora 20)" msgid "Group" msgstr "Gruppe" @@ -1422,199 +448,62 @@ msgstr "Benutzer" msgid "Display effective policy for a specific user" msgstr "Aktive Passwortregel für einen bestimmten Benutzer anzeigen" -msgid "User login" -msgstr "Anmeldename" +msgid "Rule name" +msgstr "Regelname" -msgid "First name" -msgstr "Vorname" +msgid "Enabled" +msgstr "Aktiviert" -msgid "Last name" -msgstr "Nachname" +msgid "User category" +msgstr "Benutzerkategorie" -msgid "Full name" -msgstr "Vollständiger Name" +msgid "User category the rule applies to" +msgstr "Benutzerkategorie, auf welche die Regel angewendet werden soll" -msgid "Display name" -msgstr "Angezeigter Name" +msgid "Host category" +msgstr "Host-Kategorie" -msgid "Initials" -msgstr "Initialen" +msgid "Host category the rule applies to" +msgstr "Host-Kategorie, auf welche die Regel angewendet werden soll" -msgid "Home directory" -msgstr "Home-Verzeichnis" +msgid "Command category" +msgstr "Befehlskategorie" -msgid "Login shell" -msgstr "Anmeldeshell" +msgid "Command category the rule applies to" +msgstr "Befehlskategorie, auf die die Regel angewendet werden soll" -msgid "Kerberos principal" -msgstr "Kerberos-Principal" +msgid "Users" +msgstr "Benutzer" -msgid "Email address" -msgstr "Email-Adresse" +msgid "User Groups" +msgstr "Benutzergruppen" -msgid "Prompt to set the user password" -msgstr "Zum Setzen des Passworts auffordern" +msgid "External User" +msgstr "Externer Benutzer" -msgid "Generate a random user password" -msgstr "Ein zufälliges Benutzerpasswort erzeugen" +msgid "Hosts" +msgstr "Hosts" -msgid "UID" -msgstr "UID" +msgid "Host Groups" +msgstr "Host-Gruppen" -msgid "User ID Number (system will assign one if not provided)" -msgstr "" -"Benutzer-ID (wird durch das System zugewiesen, falls diese nicht angegeben " -"wird)" +msgid "External host" +msgstr "Externer Host" -msgid "GID" -msgstr "Gruppen-ID" +msgid "Sudo Option" +msgstr "Sudo-Option" -msgid "Group ID Number" -msgstr "Gruppen-ID" +msgid "Disable a Sudo Rule." +msgstr "Eine Sudo-Regel deaktivieren." -msgid "Street address" -msgstr "Straße" +msgid "Enable a Sudo Rule." +msgstr "Eine Sudo-Regel aktivieren." -msgid "City" -msgstr "Ort" +msgid "Search for Sudo Rule." +msgstr "Nach Sudo-Regel suchen." -msgid "State/Province" -msgstr "Staat/Bundesland" - -msgid "ZIP" -msgstr "Postleitzahl" - -msgid "Telephone Number" -msgstr "Telefonnummer" - -msgid "Mobile Telephone Number" -msgstr "Mobiltelefonnummer" - -msgid "Pager Number" -msgstr "Pagernummer" - -msgid "Fax Number" -msgstr "Faxnummer" - -msgid "Org. Unit" -msgstr "Org. Einheit" - -msgid "Job Title" -msgstr "Tätigkeit" - -msgid "Manager" -msgstr "Manager" - -msgid "Car License" -msgstr "Kfz-Kennzeichen" - -msgid "Account disabled" -msgstr "Konto ist deaktiviert" - -msgid "Member of groups" -msgstr "Mitglied der Gruppen" - -msgid "Kerberos keys available" -msgstr "Kerberos-Schlüssel verfügbar" - -msgid "Add a new user." -msgstr "Einen neuen Benutzer hinzufügen." - -msgid "Delete a user." -msgstr "Einen Benutzer löschen." - -msgid "Disable a user account." -msgstr "Ein Benutzerkonto deaktivieren." - -msgid "Enable a user account." -msgstr "Ein Benutzerkonto aktivieren." - -msgid "Search for users." -msgstr "Nach Benutzern suchen." - -msgid "Self" -msgstr "Selbst" - -msgid "Display user record for current Kerberos principal" -msgstr "Benutzer-Datensatz für den aktuellen Kerberos-Principal anzeigen" - -msgid "group" -msgstr "Gruppe" - -msgid "Modify a user." -msgstr "Einen Benutzer bearbeiten." - -msgid "Display information about a user." -msgstr "Informationen zu einem Benutzer anzeigen." - -msgid "Group name" -msgstr "Gruppenname" - -msgid "GID (use this option to set it manually)" -msgstr "Gruppen-ID (verwenden Sie diese Option, um die ID manuell anzugeben)" - -msgid "Member users" -msgstr "Mitglieds-Benutzer" - -msgid "Member groups" -msgstr "Mitglieds-Gruppen" - -msgid "Indirect Member users" -msgstr "Indirekte Mitglieds-Benutzer" - -msgid "Indirect Member groups" -msgstr "Indirekte Mitglieds-Gruppen" - -msgid "Create a new group." -msgstr "Eine neue Gruppe erstellen." - -msgid "Create as a non-POSIX group" -msgstr "Als Nicht-POSIX-Gruppe erstellen" - -msgid "Add members to a group." -msgstr "Mitglieder zu einer Gruppe hinzufügen." - -msgid "External member" -msgstr "Externes Mitglied" - -msgid "Delete group." -msgstr "Gruppe löschen." - -msgid "Search for groups." -msgstr "Nach Gruppen suchen." - -msgid "search for private groups" -msgstr "nach privaten Gruppen suchen" - -msgid "Modify a group." -msgstr "Eine Gruppe ändern." - -msgid "change to a POSIX group" -msgstr "in eine POSIC-Gruppe ändern" - -msgid "Remove members from a group." -msgstr "Mitglieder aus einer Gruppe entfernen." - -msgid "Display information about a named group." -msgstr "Informationen zu einer genannten Gruppe anzeigen." - -msgid "Set a user's password." -msgstr "Passwort für einen Benutzer setzen." - -msgid "New Password" -msgstr "Neues Passwort" - -msgid "Current Password" -msgstr "Aktuelles Passwort" - -msgid "The IPA realm" -msgstr "Der IPA-Realm" - -msgid "Hardware platform of the host (e.g. Lenovo T61)" -msgstr "Hardwareplattform des Hosts (z.B. Lenovo T400)" - -msgid "Operating System and version of the host (e.g. Fedora 9)" -msgstr "Betriebssystem und Version des Hosts (z.B. Fedora 20)" +msgid "Display Sudo Rule." +msgstr "Sudo-Regel anzeigen." msgid "Role name" msgstr "Rollenname" @@ -1622,12 +511,21 @@ msgstr "Rollenname" msgid "A description of this role-group" msgstr "Beschreibung der Rollengruppe" +msgid "Member users" +msgstr "Mitglieds-Benutzer" + +msgid "Member groups" +msgstr "Mitglieds-Gruppen" + msgid "Member hosts" msgstr "Mitglieds-Hosts" msgid "Member host-groups" msgstr "Mitglieds-Hostgruppen" +msgid "Member services" +msgstr "Mitglieds-Dienste" + msgid "Add a new role." msgstr "Neue Rolle hinzufügen." @@ -1661,164 +559,124 @@ msgstr "Anzahl der entfernten Berechtigungen" msgid "Display information about a role." msgstr "Informationen über eine Rolle anzeigen." -msgid "Host-group" -msgstr "Hostgruppen" - -msgid "Name of host-group" -msgstr "Name der Hostgruppe" - -msgid "A description of this host-group" -msgstr "Beschreibung der Hostgruppe" - -msgid "Indirect Member hosts" -msgstr "Indirekte Mitglieds-Hosts" - -msgid "Indirect Member host-groups" -msgstr "Indirekte Mitglieds-Hostgruppen" - -msgid "Add a new hostgroup." -msgstr "Hostgruppe hinzufügen." - -msgid "Add members to a hostgroup." -msgstr "Mitglieder zur Hostgruppe hinzufügen." - -msgid "Delete a hostgroup." -msgstr "Hostgruppe löschen." - -msgid "Search for hostgroups." -msgstr "Nach Hostgruppen suchen." - -msgid "Modify a hostgroup." -msgstr "Hostgruppe ändern." - -msgid "Remove members from a hostgroup." -msgstr "Mitglieder von Hostgruppe entfernen." - -msgid "Display information about a hostgroup." -msgstr "Informationen über die Hostgruppe anzeigen." - msgid "Member Host" msgstr "Mitglieds-Host" -msgid "Record name" -msgstr "Datensatzname" +msgid "user" +msgstr "Benutzer" -msgid "Time to live" -msgstr "Lebensdauer" +msgid "group" +msgstr "Gruppe" -msgid "Class" -msgstr "Klasse" +msgid "host" +msgstr "host" -msgid "DNS class" -msgstr "DNS-Klasse" +msgid "host group" +msgstr "Hostgruppe" -msgid "Records" -msgstr "Datensätze" +msgid "Permissions" +msgstr "Berechtigungen" -msgid "Record type" -msgstr "Datensatztyp" +msgid "Permissions to grant (read, write). Default is write." +msgstr "Berechtigungen (read, write). Standard ist write" -msgid "Subtype" -msgstr "Untertyp" +msgid "Attributes" +msgstr "Attribute" -msgid "Hostname" -msgstr "Hostname" +msgid "User group" +msgstr "Benutzer-Gruppe" -msgid "Certificate Type" -msgstr "Zertifikattyp" +msgid "User group ACI grants access to" +msgstr "Benutzergruppen-ACI erlaubt Zugriff auf" -msgid "Algorithm" -msgstr "Algorithmus" +msgid "True means the operation was successful" +msgstr "»True« bedeutet, dass die Operation erfolgreich abgeschlossen wurde." -msgid "Certificate/CRL" -msgstr "Zertifikat/CRL" +msgid "Principal" +msgstr "Principal" -msgid "Target" -msgstr "Ziel" +msgid "Service principal" +msgstr "Dienst-Principal" -msgid "Digest Type" -msgstr "Prüfsummentyp" +msgid "Certificate" +msgstr "Zertifikat" -msgid "Digest" -msgstr "Prüfsumme" +msgid "Base-64 encoded server certificate" +msgstr "Base-64-kodiertes Serverzertifikat" -msgid "Flags" -msgstr "Flags" +msgid "Roles" +msgstr "Rollen" -msgid "Altitude" -msgstr "Höhe" +msgid "Keytab" +msgstr "Schlüsseltabelle" -msgid "Size" -msgstr "Größe" +msgid "Users allowed to retrieve keytab" +msgstr "Benutzer die Schlüsseltabelle abrufen dürfen" -msgid "Horizontal Precision" -msgstr "Horizontale Genauigkeit" +msgid "Groups allowed to retrieve keytab" +msgstr "Gruppen die Schlüsseltabelle abrufen dürfen" -msgid "Vertical Precision" -msgstr "Vertikale Genauigkeit" +msgid "Hosts allowed to retrieve keytab" +msgstr "Hosts die Schlüsseltabelle abrufen dürfen" -msgid "Order" -msgstr "Reihenfolge" +msgid "Host Groups allowed to retrieve keytab" +msgstr "Hostgruppen die Schlüsseltabelle abrufen dürfen" -msgid "Preference" -msgstr "Bevorzugung" +msgid "Users allowed to create keytab" +msgstr "Benutzer die Schlüsseltabelle erstellen dürfen" -msgid "Service" -msgstr "Dienst" +msgid "Groups allowed to create keytab" +msgstr "Gruppen die Schlüsseltabelle erstellen dürfen" -msgid "Regular Expression" -msgstr "Regulärer Ausdruck" +msgid "Hosts allowed to create keytab" +msgstr "Hosts die Schlüsseltabelle erstellen dürfen" -msgid "Replacement" -msgstr "Ersetzung" +msgid "Host Groups allowed to create keytab" +msgstr "Hostgruppen die Schlüsseltabelle erstellen dürfen" -msgid "Weight" -msgstr "Gewicht" +msgid "Add a new IPA new service." +msgstr "Einen neuen IPA-Dienst hinzufügen." -msgid "Port" -msgstr "Port" +msgid "Add hosts that can manage this service." +msgstr "Hosts hinzufügen, die diesen Dienst verwalten können." -msgid "Fingerprint Type" -msgstr "Fingerabdruck-Typ" +msgid "Delete an IPA service." +msgstr "Einen IPA-Dienst entfernen." -msgid "Fingerprint" -msgstr "Fingerabdruck" +msgid "Disable the Kerberos key and SSL certificate of a service." +msgstr "" +"Den Kerberos-Schlüssel und das SSL-Zertifikat eines Dienstes deaktivieren." -msgid "Text Data" -msgstr "Textdaten" +msgid "Search for IPA services." +msgstr "Nach IPA-Diensten suchen." -msgid "Zone name" -msgstr "Zonenname" +msgid "Modify an existing IPA service." +msgstr "Einen existierenden IPA-Dienst bearbeiten." -msgid "Zone name (FQDN)" -msgstr "Zonenname (FQDN)" +msgid "Remove hosts that can manage this service." +msgstr "Hosts entfernen, die diesen Dienst verwalten können." -msgid "Administrator e-mail address" -msgstr "E-Mail-Adresse des Administrators" +msgid "Display information about an IPA service." +msgstr "Informationen zu einem IPA-Dienst anzeigen." -msgid "Active zone" -msgstr "Aktive Zone" +msgid "" +"\n" +"Raise the IPA Domain Level.\n" +msgstr "" +"\n" +"IPA Domain Level erhöhen.\n" -msgid "Is zone active?" -msgstr "Ist die Zone aktiv?" +msgid "Query current Domain Level." +msgstr "Aktuelles Domain Level abfragen." -msgid "Dynamic update" -msgstr "Dynamische Aktualisierung" +msgid "Current domain level:" +msgstr "Aktuelles Domain Level:" -msgid "Allow dynamic updates." -msgstr "Dynamische Aktualisierungen erlauben." +msgid "Change current Domain Level." +msgstr "Aktuelles Domain Level ändern." -msgid "Structured" -msgstr "Strukturiert" - -msgid "Delete all associated records" -msgstr "Alle zugehörigen Datensätze löschen" - -msgid "Search for DNS resources." -msgstr "Nach DNS-Ressourcen suchen." - -msgid "Display DNS resource." -msgstr "DNS-Ressource anzeigen." +msgid "Domain Level" +msgstr "Domain Level" msgid "Rule type" msgstr "Regeltyp" @@ -1871,312 +729,128 @@ msgstr "Benutzer und Gruppen von einer HBAC-Regel entfernen." msgid "Display the properties of an HBAC rule." msgstr "Einstellungen der HBAC-Regel anzeigen." -msgid "Simulate use of Host-based access controls" -msgstr "HBAC Nutzung simulieren" - -msgid "Target host" -msgstr "Ziel-Host" - -msgid "Warning" -msgstr "Warnung" - -msgid "Matched rules" -msgstr "Zutreffende Regeln" - -msgid "Not matched rules" -msgstr "Nicht zutreffende Regeln" - -msgid "Non-existent or invalid rules" -msgstr "Nicht-existente oder ungültige Regeln" - -msgid "Result of simulation" -msgstr "Ergebnis der Simulation" - msgid "Granting privilege to roles" msgstr "Gebe Berechtigung den Rollen" msgid "permission" msgstr "Berechtigung" -msgid "Serial number" -msgstr "Seriennummer" - -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" -msgstr "" -"Seriennummer in Dezimalschreibweise oder (bei Präfix 0x) in " -"Hexadezimalschreibweise" - -msgid "Submit a certificate signing request." -msgstr "Eine Signaturanfrage (CSR) senden." - -msgid "CSR" -msgstr "CSR" - -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" -msgstr "Dienst-Principal für dieses Zertifikat (z.B. HTTP/test.example.com)" - -msgid "automatically add the principal if it doesn't exist" -msgstr "Den Principal automatisch hinzufügen, falls dieser nicht existiert" - -msgid "Revoke a certificate." -msgstr "Ein Zertifikat widerrufen." - -msgid "Reason" -msgstr "Grund" - -msgid "Reason for revoking the certificate (0-10)" -msgstr "Grund für den Widerruf des Zertifikats (0-10)" - -msgid "Retrieve an existing certificate." -msgstr "Ein existierendes Zertifikat holen." - -msgid "Output filename" -msgstr "Name der Ausgabedatei" - -msgid "File to store the certificate in." -msgstr "Datei, in der das Zertifikat gespeichert werden soll." - -msgid "Check the status of a certificate signing request." -msgstr "Den Status der Signaturanfrage des Zertifikats überprüfen." - -msgid "Request id" -msgstr "Anfrage-ID" +msgid "permissions" +msgstr "Berechtigungen" msgid "Domain" msgstr "Domain" -msgid "Maximum username length" -msgstr "Maximale Länge des Benutzernamens" +msgid "Service name" +msgstr "Dienstname" -msgid "Home directory base" -msgstr "Basis für Home-Verzeichnisse" +msgid "HBAC service" +msgstr "HBAC-Dienst" -msgid "Default location of home directories" -msgstr "Vorgegebener Ort für Home-Verzeichnisse" +msgid "HBAC service description" +msgstr "Beschreibung des HBAC-Dienstes" -msgid "Default shell" -msgstr "Vorgabe-Shell" +msgid "Add a new HBAC service." +msgstr "Einen neuen HBAC-Dienst hinzufügen." -msgid "Default shell for new users" -msgstr "Vorgegebene Shell für neue Benutzer" +msgid "Delete an existing HBAC service." +msgstr "Einen existierenden HBAC Dienst löschen." -msgid "Default users group" -msgstr "Vorgegebene Gruppe des Benutzers" +msgid "Search for HBAC services." +msgstr "Nach HBAC-Diensten suchen." -msgid "Default group for new users" -msgstr "Vorgegebene Gruppe für neue Benutzer" +msgid "Modify an HBAC service." +msgstr "HBAC Dienst ändern" -msgid "Search time limit" -msgstr "Zeitlimit für Suche" +msgid "Display information about an HBAC service." +msgstr "Informationen zu einem HBAC-Dienst anzeigen." -msgid "" -"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" -msgstr "Maximale Zeit in Sekunden für eine Suche (>0 oder -1 für unbegrenzt)" +msgid "First name" +msgstr "Vorname" -msgid "Search size limit" -msgstr "Größenlimit für Suche" +msgid "Last name" +msgstr "Nachname" -msgid "Maximum number of records to search (-1 is unlimited)" -msgstr "Maximale Anzahl an Ergebnissen für Suche (-1 ist unbegrenzt)" +msgid "Full name" +msgstr "Vollständiger Name" -msgid "User search fields" -msgstr "Benutzer Suchfelder" +msgid "Display name" +msgstr "Angezeigter Name" -msgid "A comma-separated list of fields to search in when searching for users" -msgstr "" -"Eine mit Komma getrennte Liste von Feldnamen die bei der Suche nach " -"Benutzern durchsucht werden" +msgid "Initials" +msgstr "Initialen" -msgid "A comma-separated list of fields to search in when searching for groups" -msgstr "" -"Eine mit Komma getrennte Liste von Feldnamen die bei der Suche nach Gruppen " -"durchsucht werden" - -msgid "Enable migration mode" -msgstr "Migrationsmodus aktivieren" - -msgid "Default group objectclasses" -msgstr "Standard objectclass für Gruppen" - -msgid "Default group objectclasses (comma-separated list)" -msgstr "Standard objectclass für Gruppen (komma-separierte Liste)" - -msgid "Default user objectclasses" -msgstr "Standard objectclass für Benutzer" - -msgid "Default user objectclasses (comma-separated list)" -msgstr "Standard objectclass für Benutzer (komma-separierte Liste)" - -msgid "Password Expiration Notification (days)" -msgstr "Benachrichtigung über den Passwortablauf (Tage)" - -msgid "Number of days's notice of impending password expiration" -msgstr "Anzahl der Tage die vor einem Passwortablauf gewarnt wird" - -msgid "Password plugin features" -msgstr "Passwort-Plugin-Funktionen" - -msgid "Extra hashes to generate in password plug-in" -msgstr "Im Passwort-Plugin zusätzlich zu erzeugende Prüfsummen" - -msgid "Default SELinux user" -msgstr "Vorgegebener SELinux-Benutzer" - -msgid "Default SELinux user when no match is found in SELinux map rule" -msgstr "" -"Vorgegebener SELinux-Benutzer, sofern in den Zuweisungsregeln von SELinux " -"nichts anderes bestimmt ist" - -msgid "Default PAC types" -msgstr "Standard PAC-Typen" - -msgid "Modify configuration options." -msgstr "Konfigurationsoptionen bearbeiten." - -msgid "Show the current configuration." -msgstr "Die aktuelle Konfiguration anzeigen." - -msgid "Users allowed to retrieve keytab" -msgstr "Benutzer die Schlüsseltabelle abrufen dürfen" - -msgid "Groups allowed to retrieve keytab" -msgstr "Gruppen die Schlüsseltabelle abrufen dürfen" - -msgid "Hosts allowed to retrieve keytab" -msgstr "Hosts die Schlüsseltabelle abrufen dürfen" - -msgid "Host Groups allowed to retrieve keytab" -msgstr "Hostgruppen die Schlüsseltabelle abrufen dürfen" - -msgid "Users allowed to create keytab" -msgstr "Benutzer die Schlüsseltabelle erstellen dürfen" - -msgid "Groups allowed to create keytab" -msgstr "Gruppen die Schlüsseltabelle erstellen dürfen" - -msgid "Hosts allowed to create keytab" -msgstr "Hosts die Schlüsseltabelle erstellen dürfen" - -msgid "Host Groups allowed to create keytab" -msgstr "Hostgruppen die Schlüsseltabelle erstellen dürfen" - -msgid "GECOS" -msgstr "GECOS" - -msgid "hosts" -msgstr "hosts" - -msgid "" -"\n" -"Raise the IPA Domain Level.\n" -msgstr "" -"\n" -"IPA Domain Level erhöhen.\n" - -msgid "Query current Domain Level." -msgstr "Aktuelles Domain Level abfragen." - -msgid "Current domain level:" -msgstr "Aktuelles Domain Level:" - -msgid "Change current Domain Level." -msgstr "Aktuelles Domain Level ändern." - -msgid "Domain Level" -msgstr "Domain Level" - -msgid "Permissions to grant (read, write). Default is write." -msgstr "Berechtigungen (read, write). Standard ist write" - -msgid "" -"Allow users, groups, hosts or host groups to create a keytab of this host." -msgstr "" -"Benutzern, Gruppen, Hosts und Hostgruppen erlauben die Schlüsseltabelle zu " -"erstellen." - -msgid "" -"Allow users, groups, hosts or host groups to retrieve a keytab of this host." -msgstr "" -"Benutzern, Gruppen, Hosts und Hostgruppen erlauben die Schlüsseltabelle zu " -"erhalten." - -msgid "" -"Disallow users, groups, hosts or host groups to create a keytab of this host." -msgstr "" -"Benutzern, Gruppen, Hosts und Hostgruppen verbieten die Schlüsseltabelle zu " -"erstellen." - -msgid "" -"Disallow users, groups, hosts or host groups to retrieve a keytab of this " -"host." -msgstr "" -"Benutzern, Gruppen, Hosts und Hostgruppen verbieten die Schlüsseltabelle zu " -"erhalten." - -msgid "Attributes to which the permission applies" -msgstr "Attribute auf die die Berechtigung angewendet wird" - -msgid "Location of the ACI" -msgstr "Ort der ACI" - -msgid "Member services" -msgstr "Mitglieds-Dienste" - -msgid "Rebuild auto membership." -msgstr "Auto-Mitgliedschaft neu erstellen" - -msgid "Rebuild membership for all members of a grouping" -msgstr "" -"Auto-Mitgliedschaft für alle Mitglieder einer Gruppierung neu erstellen" - -msgid "Rebuild membership for specified users" -msgstr "Auto-Mitgliedschaft für ausgewählte Benutzer neu erstellen" - -msgid "Rebuild membership for specified hosts" -msgstr "Auto-Mitgliedschaft für ausgewählte Hosts neu erstellen" - -msgid "No wait" -msgstr "Keine Wartezeit" - -msgid "ACL name" -msgstr "ACL Name" - -msgid "Profile category" -msgstr "Profilkategorie" - -msgid "Profile category the ACL applies to" -msgstr "Profilkategorie auf die ACL angewendet wird" - -msgid "User category the ACL applies to" -msgstr "Benutzerkategorie auf die ACL angewendet wird" - -msgid "Host category the ACL applies to" -msgstr "Hostkategorie auf die ACL angewendet wird" - -msgid "Service category the ACL applies to" -msgstr "Dienstkategorie auf die ACL angewendet wird" - -msgid "Profiles" -msgstr "Profile" - -msgid "Create a new CA ACL." -msgstr "Erstelle eine neue CA ACL." - -msgid "Delete a CA ACL." -msgstr "CA ACL löschen." - -msgid "Modify a CA ACL." -msgstr "CA ACL ändern" +msgid "Kerberos principal" +msgstr "Kerberos-Principal" msgid "Kerberos principal expiration" msgstr "Kerberos-Principal Ablauf" +msgid "Email address" +msgstr "Email-Adresse" + +msgid "Password" +msgstr "Passwort" + +msgid "Prompt to set the user password" +msgstr "Zum Setzen des Passworts auffordern" + +msgid "Generate a random user password" +msgstr "Ein zufälliges Benutzerpasswort erzeugen" + +msgid "Random password" +msgstr "Zufälliges Passwort" + +msgid "User ID Number (system will assign one if not provided)" +msgstr "" +"Benutzer-ID (wird durch das System zugewiesen, falls diese nicht angegeben " +"wird)" + +msgid "Street address" +msgstr "Straße" + +msgid "City" +msgstr "Ort" + +msgid "State/Province" +msgstr "Staat/Bundesland" + +msgid "ZIP" +msgstr "Postleitzahl" + +msgid "Telephone Number" +msgstr "Telefonnummer" + +msgid "Mobile Telephone Number" +msgstr "Mobiltelefonnummer" + +msgid "Pager Number" +msgstr "Pagernummer" + +msgid "Fax Number" +msgstr "Faxnummer" + +msgid "Org. Unit" +msgstr "Org. Einheit" + +msgid "Job Title" +msgstr "Tätigkeit" + +msgid "Manager" +msgstr "Manager" + +msgid "Car License" +msgstr "Kfz-Kennzeichen" + msgid "User authentication types" msgstr "Authentifizierungsmethoden" msgid "Types of supported user authentication" msgstr "Unterstützte Authentifizierungsmethoden" +msgid "Class" +msgstr "Klasse" + msgid "RADIUS proxy configuration" msgstr "RADIUS-Proxy Konfiguration" @@ -2195,54 +869,69 @@ msgstr "Personaltyp" msgid "Preferred Language" msgstr "Bevorzugte Sprache" -msgid "Preserved user" -msgstr "Aufbewahrter Benutzer" +msgid "Member of groups" +msgstr "Mitglied der Gruppen" -msgid "Move deleted user into staged area" -msgstr "Gelöschten Benutzer in vorbereitete Benutzer verschieben" +msgid "Kerberos keys available" +msgstr "Kerberos-Schlüssel verfügbar" -msgid "Undelete a delete user account." -msgstr "Gelöschten Benutzer wiederherstellen" +msgid "Activate a stage user." +msgstr "Vorbereiteten Benutzer aktivieren." -msgid "OTP" -msgstr "OTP" +msgid "Add a new stage user." +msgstr "Einen neuen vorbereiteten Benutzer hinzufügen." -msgid "One Time Password" -msgstr "Einmalpasswort" +msgid "Create Stage user in from a delete user" +msgstr "Erstelle vorbereiteten Benutzer aus einem gelöschten Benutzer" -msgid "Server name" -msgstr "Servername" +msgid "Add a manager to the stage user entry" +msgstr "Manager zum vorbereiteten Benutzer hinzufügen" -msgid "IPA server hostname" -msgstr "IPA-Server Hostname" +msgid "Delete a stage user." +msgstr "Einen vorbereiteten Benutzer löschen." + +msgid "Search for stage users." +msgstr "Nach vorbereiteten Benutzern suchen." + +msgid "role" +msgstr "Rolle" + +msgid "HBAC rule" +msgstr "HBAC-Regel" + +msgid "sudo rule" +msgstr "Sudo-Regel" + +msgid "Modify a stage user." +msgstr "Einen vorbereiteten Benutzer ändern." + +msgid "Display information about a stage user." +msgstr "Informationen zu einem vorbereiteten Benutzer anzeigen." msgid "Server" msgstr "Server" +msgid "Show environment variables." +msgstr "Umgebungsvariablen anzeigen." + +msgid "Forward to server instead of running locally" +msgstr "Zum Server weiterleiten, anstatt lokal auszuführen" + +msgid "Show all loaded plugins." +msgstr "Alle geladenen Plugins anzeigen." + +msgid "Number of plugins loaded" +msgstr "Anzahl der geladenen Plugins" + msgid "Profile ID" msgstr "Profil-ID" -msgid "TOTP authentication Window" -msgstr "TOTP Authentifizierungsfenster" - -msgid "TOTP Synchronization Window" -msgstr "TOTP Sychnronisierungsfenster" - -msgid "HOTP Authentication Window" -msgstr "HOTP Authentifizierungsfenster" - -msgid "HOTP Synchronization Window" -msgstr "HOTP Sychnronisierungsfenster" - -msgid "Modify OTP configuration options." -msgstr "OTP Konfigurationsoptionen bearbeiten." - -msgid "Show the current OTP configuration." -msgstr "Aktuelle OTP Konfiguration anzeigen" - msgid "Unique ID" msgstr "Eindeutige ID" +msgid "Type" +msgstr "Typ" + msgid "Type of the token" msgstr "Token-Typ" @@ -2294,9 +983,15 @@ msgstr "Seriennummer" msgid "Token serial (informational only)" msgstr "Token-Seriennummer (nur informativ)" +msgid "Key" +msgstr "Schlüssel" + msgid "Token secret (Base32; default: random)" msgstr "Token-Geheimis (Base32; Standard: zufällig)" +msgid "Algorithm" +msgstr "Algorithmus" + msgid "Token hash algorithm" msgstr "Token Hash-Algorithmus" @@ -2351,53 +1046,843 @@ msgstr "Nutzer entfernen die diesen Token verwalten können" msgid "Display information about an OTP token." msgstr "Informationen über OTP Token anzeigen." -msgid "Permission value" -msgstr "Berechtigungswert" +msgid "Name of object to export" +msgstr "Name des zu exportierenden Objekts" -msgid "permissions" -msgstr "Berechtigungen" +msgid "Name of method to export" +msgstr "Name des zu exportierenden Methode" -msgid "Subject" -msgstr "Betreff" +msgid "Name of command to export" +msgstr "Name des zu exportierenden Befehls" -msgid "Principal for this certificate (e.g. HTTP/test.example.com)" -msgstr "Principal für dieses Zertifikat (z.B. HTTP/test.example.com)" +msgid "A description of this auto member rule" +msgstr "Beschreibung der Auto-Mitgliedschaftsregel" -msgid "Certificate Profile to use" -msgstr "Benutze Zertifikatsprofil" +msgid "Default (fallback) Group" +msgstr "Standard (Rückfall) Gruppe" + +msgid "Default group for entries to land" +msgstr "Vorgegebene Gruppe für Einträge" + +msgid "Automember Rule" +msgstr "Auto-Mitgliedschaftsregel" + +msgid "Grouping Type" +msgstr "Gruppierungstyp" + +msgid "Grouping to which the rule applies" +msgstr "Gruppierung, auf die die Regel angewendet wird" + +msgid "Inclusive Regex" +msgstr "Einschließende Regex" + +msgid "Exclusive Regex" +msgstr "Ausschließende Regex" + +msgid "Attribute Key" +msgstr "Attribut Schlüssel" + +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a " +"user" +msgstr "" +"Dieses Attribut wird per Regex gefiltert. Zum Beispiel FQDN für einen Host, " +"oder Manager für einen Benutzer" + +msgid "Conditions that could not be added" +msgstr "Bedingungen, die nicht hinzugefügt werden konnten" + +msgid "Number of conditions added" +msgstr "Anzahl der hinzugefügten Bedingungen" + +msgid "Rebuild auto membership." +msgstr "Auto-Mitgliedschaft neu erstellen" + +msgid "Rebuild membership for all members of a grouping" +msgstr "" +"Auto-Mitgliedschaft für alle Mitglieder einer Gruppierung neu erstellen" + +msgid "Rebuild membership for specified users" +msgstr "Auto-Mitgliedschaft für ausgewählte Benutzer neu erstellen" + +msgid "Rebuild membership for specified hosts" +msgstr "Auto-Mitgliedschaft für ausgewählte Hosts neu erstellen" + +msgid "No wait" +msgstr "Keine Wartezeit" + +msgid "Conditions that could not be removed" +msgstr "Bedingungen, die nicht entfernt werden konnten" + +msgid "Number of conditions removed" +msgstr "Anzahl der entfernten Bedingungen" + +msgid "Permission name" +msgstr "Berechtigungsname" + +msgid "Subtree" +msgstr "Subtree" + +msgid "Target group" +msgstr "Ziel-Gruppe" + +msgid "Indirect Member of roles" +msgstr "Indirektes Mitglied von Rollen" + +msgid "Service group name" +msgstr "Dienstgruppenname" + +msgid "HBAC service group description" +msgstr "Beschreibung der HBAC-Dienstgruppe" + +msgid "Member HBAC service" +msgstr "Mitglieds-HBAC-Dienst" + +msgid "Add a new HBAC service group." +msgstr "Eine neue HBAC-Dienstgruppe hinzufügen." + +msgid "Add members to an HBAC service group." +msgstr "Mitglieder zur einer HBAC-Dienstgruppe hinzufügen." + +msgid "Delete an HBAC service group." +msgstr "HBAC-Dienstgruppe löschen" + +msgid "Search for an HBAC service group." +msgstr "Suche nach HBAC Dienstgruppe" + +msgid "Modify an HBAC service group." +msgstr "HBAC-Dienstgruppe bearbeiten" + +msgid "Remove members from an HBAC service group." +msgstr "Mitglieder von einer HBAC-Dienstgruppe entfernen." + +msgid "Display information about an HBAC service group." +msgstr "Informationen über eine HBAC-Dienstgruppe anzeigen" + +msgid "ACI name" +msgstr "ACI-Name" + +msgid "Permission" +msgstr "Berechtigung" + +msgid "Permission ACI grants access to" +msgstr "Berechtigungs-ACI erlaubt Zugriff auf" + +msgid "Attributes to which the permission applies" +msgstr "Attribute auf die die Berechtigung angewendet wird" + +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +msgstr "Typ des IPA-Objekts (user, group, host, hostgroup, service, netgroup)" + +msgid "Member of" +msgstr "Mitglied von" + +msgid "Member of a group" +msgstr "Mitglied einer Gruppe" + +msgid "Filter" +msgstr "Filter" + +msgid "Legal LDAP filter (e.g. ou=Engineering)" +msgstr "Gültiger LDAP filter (z.B. ou=Engineering)" + +msgid "Subtree to apply ACI to" +msgstr "Subtree auf den ACI angewendet wird" + +msgid "Target your own entry (self)" +msgstr "Auf eigenen Eintrag anwenden (self)" + +msgid "ACI prefix" +msgstr "ACI-Präfix" + +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" +msgstr "" +"Präfix zur Unterscheidung der ACI-Typen (permission, delegation, " +"selfservice, none)" + +msgid "Test the ACI syntax but don't write anything" +msgstr "ACI-Syntax testen, aber nicht schreiben" + +msgid "New ACI name" +msgstr "Neuer ACI-Name" + +msgid "Location of the ACI" +msgstr "Ort der ACI" + +msgid "Server name" +msgstr "Servername" + +msgid "IPA server hostname" +msgstr "IPA-Server Hostname" + +msgid "Host name" +msgstr "Hostname" + +msgid "A description of this host" +msgstr "Beschreibung des Hosts" + +msgid "Locality" +msgstr "Ort" + +msgid "Host locality (e.g. \"Baltimore, MD\")" +msgstr "Ort des Hosts (z.B. \"Baltimore, MD\")" + +msgid "Location" +msgstr "Ort" + +msgid "Platform" +msgstr "Plattform" + +msgid "Host hardware platform (e.g. \"Lenovo T61\")" +msgstr "Hardwareplattform (z.B. \"Lenovo T61\")" + +msgid "Operating system" +msgstr "Betriebssystem" + +msgid "Host operating system and version (e.g. \"Fedora 9\")" +msgstr "Betriebssystem und Version (z.B. \"Fedora 9\")" + +msgid "User password" +msgstr "Benutzerpasswort" + +msgid "Principal name" +msgstr "Principal-Name" + +msgid "MAC address" +msgstr "MAC-Adresse" + +msgid "Member of host-groups" +msgstr "Mitglied von Host-Gruppen" + +msgid "Add a new host." +msgstr "Neuen Host hinzufügen." + +msgid "force host name even if not in DNS" +msgstr "Hostname erzwingen auch wenn nicht im DNS" + +msgid "IP Address" +msgstr "IP-Adresse" + +msgid "Add the host to DNS with this IP address" +msgstr "Host mit dieser IP zum DNS hinzufügen" + +msgid "Add hosts that can manage this host." +msgstr "Hosts hinzufügen die diesen Host verwalten dürfen." + +msgid "" +"Allow users, groups, hosts or host groups to create a keytab of this host." +msgstr "" +"Benutzern, Gruppen, Hosts und Hostgruppen erlauben die Schlüsseltabelle zu " +"erstellen." + +msgid "" +"Allow users, groups, hosts or host groups to retrieve a keytab of this host." +msgstr "" +"Benutzern, Gruppen, Hosts und Hostgruppen erlauben die Schlüsseltabelle zu " +"erhalten." + +msgid "Delete a host." +msgstr "Host löschen." + +msgid "Remove entries from DNS" +msgstr "DNS Einträge löschen" + +msgid "Disable the Kerberos key, SSL certificate and all services of a host." +msgstr "" +"Kerberos-Schlüssel, SSL-Zertifikat und alle Dienste des Hosts deaktivieren." + +msgid "" +"Disallow users, groups, hosts or host groups to create a keytab of this host." +msgstr "" +"Benutzern, Gruppen, Hosts und Hostgruppen verbieten die Schlüsseltabelle zu " +"erstellen." + +msgid "" +"Disallow users, groups, hosts or host groups to retrieve a keytab of this " +"host." +msgstr "" +"Benutzern, Gruppen, Hosts und Hostgruppen verbieten die Schlüsseltabelle zu " +"erhalten." + +msgid "Search for hosts." +msgstr "Nach Hosts suchen." + +msgid "Modify information about a host." +msgstr "Hostinformationen ändern." + +msgid "Kerberos principal name for this host" +msgstr "Kerberos-Principal für diesen Host" + +msgid "Update DNS entries" +msgstr "DNS Einträge aktualisieren" + +msgid "Remove hosts that can manage this host." +msgstr "Hosts entfernen die diesen Host verwalten dürfen." + +msgid "Display information about a host." +msgstr "Informationen über Host anzeigen." + +msgid "Host-group" +msgstr "Hostgruppen" + +msgid "Name of host-group" +msgstr "Name der Hostgruppe" + +msgid "A description of this host-group" +msgstr "Beschreibung der Hostgruppe" + +msgid "Indirect Member hosts" +msgstr "Indirekte Mitglieds-Hosts" + +msgid "Indirect Member host-groups" +msgstr "Indirekte Mitglieds-Hostgruppen" + +msgid "Add a new hostgroup." +msgstr "Hostgruppe hinzufügen." + +msgid "Add members to a hostgroup." +msgstr "Mitglieder zur Hostgruppe hinzufügen." + +msgid "Delete a hostgroup." +msgstr "Hostgruppe löschen." + +msgid "Search for hostgroups." +msgstr "Nach Hostgruppen suchen." + +msgid "Modify a hostgroup." +msgstr "Hostgruppe ändern." + +msgid "Remove members from a hostgroup." +msgstr "Mitglieder von Hostgruppe entfernen." + +msgid "Display information about a hostgroup." +msgstr "Informationen über die Hostgruppe anzeigen." + +msgid "Maximum username length" +msgstr "Maximale Länge des Benutzernamens" + +msgid "Home directory base" +msgstr "Basis für Home-Verzeichnisse" + +msgid "Default location of home directories" +msgstr "Vorgegebener Ort für Home-Verzeichnisse" + +msgid "Default shell" +msgstr "Vorgabe-Shell" + +msgid "Default shell for new users" +msgstr "Vorgegebene Shell für neue Benutzer" + +msgid "Default users group" +msgstr "Vorgegebene Gruppe des Benutzers" + +msgid "Default group for new users" +msgstr "Vorgegebene Gruppe für neue Benutzer" + +msgid "Search time limit" +msgstr "Zeitlimit für Suche" + +msgid "Search size limit" +msgstr "Größenlimit für Suche" + +msgid "User search fields" +msgstr "Benutzer Suchfelder" + +msgid "A comma-separated list of fields to search in when searching for users" +msgstr "" +"Eine mit Komma getrennte Liste von Feldnamen die bei der Suche nach " +"Benutzern durchsucht werden" + +msgid "A comma-separated list of fields to search in when searching for groups" +msgstr "" +"Eine mit Komma getrennte Liste von Feldnamen die bei der Suche nach Gruppen " +"durchsucht werden" + +msgid "Enable migration mode" +msgstr "Migrationsmodus aktivieren" + +msgid "Default group objectclasses" +msgstr "Standard objectclass für Gruppen" + +msgid "Default group objectclasses (comma-separated list)" +msgstr "Standard objectclass für Gruppen (komma-separierte Liste)" + +msgid "Default user objectclasses" +msgstr "Standard objectclass für Benutzer" + +msgid "Default user objectclasses (comma-separated list)" +msgstr "Standard objectclass für Benutzer (komma-separierte Liste)" + +msgid "Password Expiration Notification (days)" +msgstr "Benachrichtigung über den Passwortablauf (Tage)" + +msgid "Number of days's notice of impending password expiration" +msgstr "Anzahl der Tage die vor einem Passwortablauf gewarnt wird" + +msgid "Password plugin features" +msgstr "Passwort-Plugin-Funktionen" + +msgid "Extra hashes to generate in password plug-in" +msgstr "Im Passwort-Plugin zusätzlich zu erzeugende Prüfsummen" + +msgid "Default SELinux user" +msgstr "Vorgegebener SELinux-Benutzer" + +msgid "Default SELinux user when no match is found in SELinux map rule" +msgstr "" +"Vorgegebener SELinux-Benutzer, sofern in den Zuweisungsregeln von SELinux " +"nichts anderes bestimmt ist" + +msgid "Default PAC types" +msgstr "Standard PAC-Typen" msgid "Default user authentication types" msgstr "Standard Authentifizierungsmethoden" -msgid "Activate a stage user." -msgstr "Vorbereiteten Benutzer aktivieren." +msgid "Modify configuration options." +msgstr "Konfigurationsoptionen bearbeiten." -msgid "Add a new stage user." -msgstr "Einen neuen vorbereiteten Benutzer hinzufügen." +msgid "Show the current configuration." +msgstr "Die aktuelle Konfiguration anzeigen." -msgid "Create Stage user in from a delete user" -msgstr "Erstelle vorbereiteten Benutzer aus einem gelöschten Benutzer" +msgid "ACL name" +msgstr "ACL Name" -msgid "Delete a stage user." -msgstr "Einen vorbereiteten Benutzer löschen." +msgid "Profile category" +msgstr "Profilkategorie" -msgid "Search for stage users." -msgstr "Nach vorbereiteten Benutzern suchen." +msgid "Profile category the ACL applies to" +msgstr "Profilkategorie auf die ACL angewendet wird" -msgid "Modify a stage user." -msgstr "Einen vorbereiteten Benutzer ändern." +msgid "User category the ACL applies to" +msgstr "Benutzerkategorie auf die ACL angewendet wird" -msgid "Display information about a stage user." -msgstr "Informationen zu einem vorbereiteten Benutzer anzeigen." +msgid "Host category the ACL applies to" +msgstr "Hostkategorie auf die ACL angewendet wird" + +msgid "Service category the ACL applies to" +msgstr "Dienstkategorie auf die ACL angewendet wird" + +msgid "Profiles" +msgstr "Profile" + +msgid "Create a new CA ACL." +msgstr "Erstelle eine neue CA ACL." + +msgid "Delete a CA ACL." +msgstr "CA ACL löschen." + +msgid "Modify a CA ACL." +msgstr "CA ACL ändern" + +msgid "Simulate use of Host-based access controls" +msgstr "HBAC Nutzung simulieren" + +msgid "Target host" +msgstr "Ziel-Host" + +msgid "Service" +msgstr "Dienst" + +msgid "Warning" +msgstr "Warnung" + +msgid "Matched rules" +msgstr "Zutreffende Regeln" + +msgid "Not matched rules" +msgstr "Nicht zutreffende Regeln" + +msgid "Non-existent or invalid rules" +msgstr "Nicht-existente oder ungültige Regeln" + +msgid "Result of simulation" +msgstr "Ergebnis der Simulation" + +msgid "LDAP URI" +msgstr "LDAP-URI" + +msgid "bind password" +msgstr "Bind-Passwort" + +msgid "Bind DN" +msgstr "Bind-DN" + +msgid "LDAP schema" +msgstr "LDAP-Schema" + +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" +msgstr "" +"Das auf dem LDAP-Server verwendete Schema. Zulässige Werte sind RFC2307 und " +"RFC2307bis. Der Vorgabewert ist RFC2307bis." + +msgid "Lists of objects migrated; categorized by type." +msgstr "Liste der migrierten Objekte, nach Typ geordnet." + +msgid "Lists of objects that could not be migrated; categorized by type." +msgstr "" +"Liste der Objekte, die nicht migriert werden konnten, nach Typ geordnet." + +msgid "HBAC Rule" +msgstr "HBAC-Regel" + +msgid "HBAC Rule that defines the users, groups and hostgroups" +msgstr "HBAC Regel die Benutzer, Gruppen und Hostgruppen definiert" + +msgid "Sudo Command Group" +msgstr "Sudo-Befehlsgruppe" + +msgid "Group description" +msgstr "Gruppenbeschreibung" + +msgid "Commands" +msgstr "Befehle" + +msgid "Sudo Command Groups" +msgstr "Sudo-Befehlsgruppen" + +msgid "Account disabled" +msgstr "Konto ist deaktiviert" + +msgid "Preserved user" +msgstr "Aufbewahrter Benutzer" + +msgid "Add a new user." +msgstr "Einen neuen Benutzer hinzufügen." msgid "Add a manager to the user entry" msgstr "Manager zum Benutzer hinzufügen" +msgid "Delete a user." +msgstr "Einen Benutzer löschen." + +msgid "Disable a user account." +msgstr "Ein Benutzerkonto deaktivieren." + +msgid "Enable a user account." +msgstr "Ein Benutzerkonto aktivieren." + +msgid "Search for users." +msgstr "Nach Benutzern suchen." + +msgid "Self" +msgstr "Selbst" + +msgid "Display user record for current Kerberos principal" +msgstr "Benutzer-Datensatz für den aktuellen Kerberos-Principal anzeigen" + +msgid "Modify a user." +msgstr "Einen Benutzer bearbeiten." + msgid "Remove a manager to the user entry" msgstr "Manager vom Benutzer entfernen" -msgid "Add a manager to the stage user entry" -msgstr "Manager zum vorbereiteten Benutzer hinzufügen" +msgid "Display information about a user." +msgstr "Informationen zu einem Benutzer anzeigen." + +msgid "Move deleted user into staged area" +msgstr "Gelöschten Benutzer in vorbereitete Benutzer verschieben" + +msgid "Undelete a delete user account." +msgstr "Gelöschten Benutzer wiederherstellen" + +msgid "Mount information" +msgstr "Einhänge-Informationen" + +msgid "description" +msgstr "Beschreibung" + +msgid "Automount location name." +msgstr "Automount-Ort" + +msgid "Map" +msgstr "Karte" + +msgid "Automount map name." +msgstr "Automount-Map Name." + +msgid "Create a new automount location." +msgstr "Neuen Automount-Ort erstellen." + +msgid "Delete an automount location." +msgstr "Automount-Ort löschen." + +msgid "Search for an automount location." +msgstr "Automount-Ort suchen." + +msgid "Display an automount location." +msgstr "Automount-Ort anzeigen." + +msgid "Mount point" +msgstr "Einhängepunkt" + +msgid "Subject" +msgstr "Betreff" + +msgid "Reason" +msgstr "Grund" + +msgid "Reason for revoking the certificate (0-10)" +msgstr "Grund für den Widerruf des Zertifikats (0-10)" + +msgid "Serial number" +msgstr "Seriennummer" + +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +msgstr "" +"Seriennummer in Dezimalschreibweise oder (bei Präfix 0x) in " +"Hexadezimalschreibweise" + +msgid "Submit a certificate signing request." +msgstr "Eine Signaturanfrage (CSR) senden." + +msgid "CSR" +msgstr "CSR" + +msgid "Principal for this certificate (e.g. HTTP/test.example.com)" +msgstr "Principal für dieses Zertifikat (z.B. HTTP/test.example.com)" + +msgid "automatically add the principal if it doesn't exist" +msgstr "Den Principal automatisch hinzufügen, falls dieser nicht existiert" + +msgid "Certificate Profile to use" +msgstr "Benutze Zertifikatsprofil" + +msgid "Revoke a certificate." +msgstr "Ein Zertifikat widerrufen." + +msgid "Retrieve an existing certificate." +msgstr "Ein existierendes Zertifikat holen." + +msgid "Output filename" +msgstr "Name der Ausgabedatei" + +msgid "File to store the certificate in." +msgstr "Datei, in der das Zertifikat gespeichert werden soll." + +msgid "Check the status of a certificate signing request." +msgstr "Den Status der Signaturanfrage des Zertifikats überprüfen." + +msgid "Request id" +msgstr "Anfrage-ID" + +msgid "GID (use this option to set it manually)" +msgstr "Gruppen-ID (verwenden Sie diese Option, um die ID manuell anzugeben)" + +msgid "Indirect Member users" +msgstr "Indirekte Mitglieds-Benutzer" + +msgid "Indirect Member groups" +msgstr "Indirekte Mitglieds-Gruppen" + +msgid "Create a new group." +msgstr "Eine neue Gruppe erstellen." + +msgid "Create as a non-POSIX group" +msgstr "Als Nicht-POSIX-Gruppe erstellen" + +msgid "Add members to a group." +msgstr "Mitglieder zu einer Gruppe hinzufügen." + +msgid "External member" +msgstr "Externes Mitglied" + +msgid "Delete group." +msgstr "Gruppe löschen." + +msgid "Search for groups." +msgstr "Nach Gruppen suchen." + +msgid "search for private groups" +msgstr "nach privaten Gruppen suchen" + +msgid "Modify a group." +msgstr "Eine Gruppe ändern." + +msgid "change to a POSIX group" +msgstr "in eine POSIC-Gruppe ändern" + +msgid "Remove members from a group." +msgstr "Mitglieder aus einer Gruppe entfernen." + +msgid "Display information about a named group." +msgstr "Informationen zu einer genannten Gruppe anzeigen." + +msgid "Sudo Command" +msgstr "Sudo-Befehl" + +msgid "A description of this command" +msgstr "Eine Beschreibung dieses Befehls" + +msgid "Create new Sudo Command." +msgstr "Neuen Sudo-Befehl erzeugen." + +msgid "Delete Sudo Command." +msgstr "Sudo-Befehl löschen." + +msgid "Search for Sudo Commands." +msgstr "Nach Sudo-Befehlen suchen." + +msgid "Modify Sudo Command." +msgstr "Sudo-Befehl ändern." + +msgid "Display Sudo Command." +msgstr "Sudo-Befehl anzeigen." + +msgid "Zone name" +msgstr "Zonenname" + +msgid "Zone name (FQDN)" +msgstr "Zonenname (FQDN)" + +msgid "Active zone" +msgstr "Aktive Zone" + +msgid "Is zone active?" +msgstr "Ist die Zone aktiv?" + +msgid "Record name" +msgstr "Datensatzname" + +msgid "Time to live" +msgstr "Lebensdauer" + +msgid "Records" +msgstr "Datensätze" + +msgid "Record type" +msgstr "Datensatztyp" + +msgid "Subtype" +msgstr "Untertyp" + +msgid "Hostname" +msgstr "Hostname" + +msgid "Certificate Type" +msgstr "Zertifikattyp" + +msgid "Certificate/CRL" +msgstr "Zertifikat/CRL" + +msgid "Digest Type" +msgstr "Prüfsummentyp" + +msgid "Digest" +msgstr "Prüfsumme" + +msgid "Target" +msgstr "Ziel" + +msgid "Altitude" +msgstr "Höhe" + +msgid "Size" +msgstr "Größe" + +msgid "Horizontal Precision" +msgstr "Horizontale Genauigkeit" + +msgid "Vertical Precision" +msgstr "Vertikale Genauigkeit" + +msgid "Order" +msgstr "Reihenfolge" + +msgid "Preference" +msgstr "Bevorzugung" + +msgid "Flags" +msgstr "Flags" + +msgid "Regular Expression" +msgstr "Regulärer Ausdruck" + +msgid "Replacement" +msgstr "Ersetzung" + +msgid "Weight" +msgstr "Gewicht" + +msgid "Port" +msgstr "Port" + +msgid "Fingerprint Type" +msgstr "Fingerabdruck-Typ" + +msgid "Fingerprint" +msgstr "Fingerabdruck" + +msgid "Text Data" +msgstr "Textdaten" + +msgid "Administrator e-mail address" +msgstr "E-Mail-Adresse des Administrators" + +msgid "Dynamic update" +msgstr "Dynamische Aktualisierung" + +msgid "Allow dynamic updates." +msgstr "Dynamische Aktualisierungen erlauben." + +msgid "Permission value" +msgstr "Berechtigungswert" + +msgid "Structured" +msgstr "Strukturiert" + +msgid "Delete all associated records" +msgstr "Alle zugehörigen Datensätze löschen" + +msgid "Search for DNS resources." +msgstr "Nach DNS-Ressourcen suchen." + +msgid "Display DNS resource." +msgstr "DNS-Ressource anzeigen." + +msgid "Set a user's password." +msgstr "Passwort für einen Benutzer setzen." + +msgid "New Password" +msgstr "Neues Passwort" + +msgid "Current Password" +msgstr "Aktuelles Passwort" + +msgid "OTP" +msgstr "OTP" + +msgid "One Time Password" +msgstr "Einmalpasswort" + +msgid "Time limit of search in seconds" +msgstr "Zeitbegrenzung für den Suchvorgang in Sekunden" + +msgid "Maximum number of entries returned" +msgstr "Maximale Anzahl der zurückgegebenen Einträge" + +msgid "" +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" +msgstr "Maximale Zeit in Sekunden für eine Suche (>0 oder -1 für unbegrenzt)" + +msgid "Maximum number of records to search (-1 is unlimited)" +msgstr "Maximale Anzahl an Ergebnissen für Suche (-1 ist unbegrenzt)" + +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +msgstr "Dienst-Principal für dieses Zertifikat (z.B. HTTP/test.example.com)" + +msgid "Username" +msgstr "Benutzername" + +msgid "DNS class" +msgstr "DNS-Klasse" + +msgid "The principal for this request doesn't exist." +msgstr "Der Principal für diese Anfrage existiert nicht" #, python-format msgid "Enabled Sudo Rule \"%s\"" @@ -2407,54 +1892,6 @@ msgstr "Sudo-Regel »%s« wurde aktiviert." msgid "Disabled Sudo Rule \"%s\"" msgstr "Sudo-Regel »%s« wurde deaktiviert." -msgid "Invalid credentials" -msgstr "Ungültige Zugangsdaten" - -msgid "Change password" -msgstr "Passwort ändern" - -msgid "Data" -msgstr "Daten" - -msgid "Failed to add" -msgstr "Hinzufügen fehlgeschlagen" - -msgid "Master file" -msgstr "Masterdatei" - -msgid "Automount master file." -msgstr "Automount-Masterdatei" - -#, python-format -msgid "File %(file)s not found" -msgstr "Datei %(file)s nicht gefunden" - -msgid "" -"\n" -"YubiKey Tokens\n" -msgstr "" -"\n" -"YubiKey Tokens\n" - -msgid "" -"\n" -"Manage YubiKey tokens.\n" -msgstr "" -"\n" -"YubiKey Tokens verwalten.\n" - -msgid "The principal for this request doesn't exist." -msgstr "Der Principal für diese Anfrage existiert nicht" - -msgid "Delete a user, keeping the entry available for future use" -msgstr "Einen Benutzer löschen, Eintrag für zukünfigte Verwendung aufbewahren" - -msgid "Delete a user" -msgstr "Einen Benutzer löschen" - -msgid "preserve and no-preserve cannot be both set" -msgstr "preserve und no-preserve kann nicht gleichzeitig gesetzt sein" - msgid "Synchronize an OTP token." msgstr "OTP Token synchronisieren." @@ -2470,6 +1907,43 @@ msgstr "Zweiter Code" msgid "Token ID" msgstr "Token ID" +msgid "Failed to add" +msgstr "Hinzufügen fehlgeschlagen" + +msgid "Delete a user, keeping the entry available for future use" +msgstr "Einen Benutzer löschen, Eintrag für zukünfigte Verwendung aufbewahren" + +msgid "Delete a user" +msgstr "Einen Benutzer löschen" + +msgid "preserve and no-preserve cannot be both set" +msgstr "preserve und no-preserve kann nicht gleichzeitig gesetzt sein" + +msgid "Master file" +msgstr "Masterdatei" + +msgid "Automount master file." +msgstr "Automount-Masterdatei" + +#, python-format +msgid "File %(file)s not found" +msgstr "Datei %(file)s nicht gefunden" + +msgid "Invalid credentials" +msgstr "Ungültige Zugangsdaten" + +msgid "Change password" +msgstr "Passwort ändern" + +msgid "Data" +msgstr "Daten" + +msgid "Unrevoked" +msgstr "Nicht widerrufen" + +msgid "Error" +msgstr "Fehler" + msgid "No option to modify specific record provided." msgstr "Keine Option zum Ändern des spezifischen Datensatzes angegeben." @@ -2490,44 +1964,350 @@ msgstr "Alles löschen?" msgid "Delete %(name)s '%(value)s'?" msgstr "Wert von %(name)s auf »%(value)s« löschen?" -msgid "Unrevoked" -msgstr "Nicht widerrufen" +msgid "" +"\n" +"YubiKey Tokens\n" +msgstr "" +"\n" +"YubiKey Tokens\n" -msgid "Error" -msgstr "Fehler" +msgid "" +"\n" +"Manage YubiKey tokens.\n" +msgstr "" +"\n" +"YubiKey Tokens verwalten.\n" -msgid "Failed members" -msgstr "Fehler bei Mitgliedern" +#, python-format +msgid "Unknown option: %(option)s" +msgstr "Unbekannte Option: %(option)s" -msgid "Failed hosts/hostgroups" -msgstr "Fehler bei Hosts/Hostgruppen" +#, python-format +msgid "member %s" +msgstr "Mitglied %s" -msgid "Failed users/groups" -msgstr "Fehlerhafte Benutzer/Gruppen" +msgid "roles" +msgstr "Rollen" -msgid "Failed service/service groups" -msgstr "Fehler bei Diensten/Dienstgruppen" +msgid "Kerberos Ticket Policy" +msgstr "Kerberos-Ticket Richtlinien" -msgid "Failed to remove" -msgstr "Entfernen fehlgeschlagen" +msgid "OTP configuration options" +msgstr "OTP-Konfigurationsoptionen" -msgid "Failed RunAs" -msgstr "RunAs fehlgeschlagen" +msgid "OTP Configuration" +msgstr "OTP Konfiguration" -msgid "Failed RunAsGroup" -msgstr "RunAsGroup fehlgeschlagen" +msgid "PKINIT" +msgstr "PKINIT" -msgid "Out of memory\n" -msgstr "Nicht genügend Speicher\n" +msgid "password policy" +msgstr "Passwortregel" -msgid "Out of memory!?\n" -msgstr "Nicht genügend Speicher!?\n" +msgid "password policies" +msgstr "Passwortregeln" -msgid "Failed to create random key!\n" -msgstr "Zufallsschlüssel konnte nicht erzeugt werden!\n" +msgid "Password Policies" +msgstr "Passwortregeln" -msgid "Failed to create key!\n" -msgstr "Schlüssel konnte nicht erzeugt werden!\n" +msgid "Password Policy" +msgstr "Passwort-Regeln" + +msgid "Maximum password life must be greater than minimum." +msgstr "Maximale Lebensdauer muss größer als das Minimum sein." + +msgid "cannot delete global password policy" +msgstr "Die Globale Passwortregel kann nicht gelöscht werden" + +msgid "priority cannot be set on global policy" +msgstr "Priorität der globalen Regel kann nicht gesetzt werden" + +msgid "this option has been deprecated." +msgstr "Diese Option ist veraltet." + +msgid "sudo rules" +msgstr "Sudo-Regeln" + +msgid "Sudo Rules" +msgstr "Sudo-Regeln" + +msgid "Sudo Rule" +msgstr "Sudo-Regel" + +msgid "users" +msgstr "Benutzer" + +msgid "Role" +msgstr "Rolle" + +#, python-format +msgid "Added role \"%(value)s\"" +msgstr "Rolle \"%(value)s\" hinzugefügt" + +#, python-format +msgid "Deleted role \"%(value)s\"" +msgstr "Rolle \"%(value)s\" gelöscht" + +#, python-format +msgid "Modified role \"%(value)s\"" +msgstr "Rolle \"%(value)s\" geändert" + +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "%(count)d Rolle gefunden" +msgstr[1] "%(count)d Rollen gefunden" + +msgid "user category cannot be set to 'all' while there are allowed users" +msgstr "" +"Benutzerkategorie kann nicht auf 'Alle' gesetzt werden wenn es erlaubte " +"Benutzer gibt" + +msgid "delegation" +msgstr "Delegation" + +msgid "delegations" +msgstr "Delegationen" + +msgid "Delegations" +msgstr "Delegationen" + +msgid "Delegation" +msgstr "Delegation" + +msgid "ACI" +msgstr "ACI" + +msgid "service" +msgstr "Dienst" + +msgid "services" +msgstr "Dienste" + +msgid "Serial Number" +msgstr "Seriennummer" + +msgid "Serial Number (hex)" +msgstr "Seriennummer (hex)" + +msgid "Issuer" +msgstr "Ausgabestelle" + +msgid "Not Before" +msgstr "Nicht vor" + +msgid "Not After" +msgstr "Nicht nach" + +msgid "Fingerprint (SHA1)" +msgstr "Fingerabdruck (SHA1)" + +msgid "Revocation reason" +msgstr "Grund des Widerrufs" + +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "Dienst »%(value)s« hinzugefügt" + +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "Dienst »%(value)s« gelöscht" + +#, python-format +msgid "Modified service \"%(value)s\"" +msgstr "Dienst »%(value)s« geändert" + +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "%(count)d passender Dienst" +msgstr[1] "%(count)d passende Dienste" + +#, python-format +msgid "Disabled service \"%(value)s\"" +msgstr "Dienst »%(value)s« deaktiviert" + +msgid "Domain Level cannot be lowered." +msgstr "Domain Level kann nicht gesenkt werden." + +#, python-brace-format +msgid "Domain Level cannot be raised to {0}, server {1} does not support it." +msgstr "" +"Domain Level kann nicht auf {0} erhöht werden, Server {1} unterstützt das " +"nicht." + +msgid "DNS is not configured" +msgstr "DNS ist nicht konfiguriert" + +msgid "HBAC rules" +msgstr "HBAC-Regeln" + +msgid "HBAC Rules" +msgstr "HBAC-Regeln" + +#, python-format +msgid "Added HBAC rule \"%(value)s\"" +msgstr "HBAC-Regel \"%(value)s\" hinzugefügt" + +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" +msgstr "HBAC-Regel \"%(value)s\" gelöscht" + +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" +msgstr "HBAC-Regel \"%(value)s\" geändert" + +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "%(count)d HBAC-Regel gefunden" +msgstr[1] "%(count)d HBAC-Regeln gefunden" + +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" +msgstr "HBAC-Regel \"%(value)s\" aktiviert" + +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" +msgstr "HBAC-Regel \"%(value)s\" deaktiviert" + +msgid "Access time" +msgstr "Zugriffszeit" + +msgid "HBAC services" +msgstr "HBAC-Dienste" + +msgid "HBAC Services" +msgstr "HBAC-Dienste" + +msgid "HBAC Service" +msgstr "HBAC-Dienst" + +#, python-format +msgid "Added HBAC service \"%(value)s\"" +msgstr "HBAC Dienst \"%(value)s\" hinzugefügt" + +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" +msgstr "HBAC Dienst \"%(value)s\" gelöscht" + +#, python-format +msgid "Modified HBAC service \"%(value)s\"" +msgstr "HBAC Dienst \"%(value)s\" geändert" + +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "%(count)d HBAC-Dienst gefunden" +msgstr[1] "%(count)d HBAC-Dienste gefunden" + +msgid "Stage Users" +msgstr "Vorbereitete Benutzer" + +msgid "Stage User" +msgstr "Vorbereiteter Benutzer" + +msgid "stage user" +msgstr "Vorbereiteter Benutzer" + +msgid "stage users" +msgstr "Vorbereitete Benutzer" + +#, python-format +msgid "Added stage user \"%(value)s\"" +msgstr "Vorbereiteten Benutzer »%(value)s« hinzugefügt" + +msgid "givenname is required" +msgstr "givenname wird benötigt" + +msgid "sn is required" +msgstr "sn wird benötigt" + +#, python-format +msgid "can be at most %(len)d characters" +msgstr "darf höchstens %(len)d Zeichen lang sein" + +#, python-format +msgid "Deleted stage user \"%(value)s\"" +msgstr "Vorbereiteten Benutzer \"%(value)s\" gelöscht" + +#, python-format +msgid "Modified stage user \"%(value)s\"" +msgstr "Vorbereiteten Benutzer »%(value)s« geändert" + +#, python-format +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "%(count)d passender Benutzer" +msgstr[1] "%(count)d passende Benutzer" + +#, python-format +msgid "Activate a stage user \"%(value)s\"" +msgstr "Vorbereiteten Benutzer \"%(value)s\" aktivieren." + +#, python-format +msgid "active user with name \"%(user)s\" already exists" +msgstr "Aktiver Benutzer mit Name \"%(user)s\" existiert bereits" + +#, python-format +msgid "Stage user %s activated" +msgstr "Vorbereiteten Benutzer %s aktiviert" + +msgid "RADIUS Servers" +msgstr "Radius Server" + +msgid "CA is not configured" +msgstr "CA ist nicht konfiguriert" + +msgid "" +"\n" +"OTP Tokens\n" +msgstr "" +"\n" +"OTP Tokens\n" + +msgid "" +"\n" +"Manage OTP tokens.\n" +msgstr "" +"\n" +"OTP-Tokens bearbeiten.\n" + +msgid "OTP token" +msgstr "OTP Token" + +msgid "OTP tokens" +msgstr "OTP Tokens" + +msgid "OTP Tokens" +msgstr "OTP Token" + +msgid "OTP Token" +msgstr "OTP Token" + +msgid "URI" +msgstr "URI" + +#, python-format +msgid "Added OTP token \"%(value)s\"" +msgstr "OTP token \"%(value)s\" hinzugefügt" + +#, python-format +msgid "Deleted OTP token \"%(value)s\"" +msgstr "OTP token \"%(value)s\" gelöscht" + +#, python-format +msgid "Modified OTP token \"%(value)s\"" +msgstr "OTP Token \"%(value)s\" geändert" + +#, python-format +msgid "%(count)d OTP token matched" +msgid_plural "%(count)d OTP tokens matched" +msgstr[0] "%(count)d OTP Token gefunden" +msgstr[1] "%(count)d OTP Tokens gefunden" + +msgid "commands for controlling sudo configuration" +msgstr "Befehle zum Steuern der sudo-Konfiguration" msgid "Your session has expired. Please re-login." msgstr "Die Session ist abgelaufen. Bitte neu einloggen." @@ -2920,9 +2700,6 @@ msgstr "Zertifikate" msgid "Expires On" msgstr "Läuft ab am" -msgid "Revocation reason" -msgstr "Grund des Widerrufs" - msgid "Issued By" msgstr "Ausgegeben von" @@ -2944,12 +2721,6 @@ msgstr "Organisation" msgid "Organizational Unit" msgstr "Organisationseinheit" -msgid "Serial Number" -msgstr "Seriennummer" - -msgid "Serial Number (hex)" -msgstr "Seriennummer (hex)" - msgid "SHA1 Fingerprint" msgstr "SHA1-Fingerabdruck" @@ -2962,9 +2733,6 @@ msgstr "Nicht angegeben" msgid "Validity" msgstr "Gültigkeit" -msgid "Issuer" -msgstr "Ausgabestelle" - msgid "Group Options" msgstr "Gruppenoptionen" @@ -3097,9 +2865,6 @@ msgstr "Benutzer zum Überschreiben" msgid "Group to override" msgstr "Gruppe zum Überschreiben" -msgid "Kerberos Ticket Policy" -msgstr "Kerberos-Ticket Richtlinien" - msgid "Host" msgstr "Host" @@ -3161,9 +2926,6 @@ msgstr "Neu: Schlüssel nicht gesetzt" msgid "New: key set" msgstr "Neu: Schlüssel gesetzt" -msgid "Password Policy" -msgstr "Passwort-Regeln" - msgid "Force Update" msgstr "Update erzwingen" @@ -3491,339 +3253,6 @@ msgstr "Maximaler Wert ist ${value}" msgid "Minimum value is ${value}" msgstr "Minimaler Wert ist ${value}" -msgid "roles" -msgstr "Rollen" - -msgid "Member service groups" -msgstr "Mitglieds-Dienstgruppen" - -msgid "Member HBAC service groups" -msgstr "Mitglieds-HBAC-Servicegruppen" - -msgid "Indirect Member permissions" -msgstr "Indirekte Mitglieds-Berechtigungen" - -msgid "Indirect Member HBAC service" -msgstr "Indirekte Mitgli" - -msgid "Indirect Member HBAC service group" -msgstr "Indirekte Mitglieds-HBAC-Servicegruppe" - -msgid "Invalid format. Should be name=value" -msgstr "Ungültiges Format. Sollte name=wert sein." - -msgid "An IPA master host cannot be deleted or disabled" -msgstr "Ein IPA Masterhost kann nicht deaktiviert oder gelöscht werden" - -msgid "entry" -msgstr "Eintrag" - -msgid "entries" -msgstr "Einträge" - -msgid "Entry" -msgstr "Eintrag" - -#, python-format -msgid "container entry (%(container)s) not found" -msgstr "Container-Eintrag (%(container)s) nicht gefunden" - -#, python-format -msgid "%(parent)s: %(oname)s not found" -msgstr "%(parent)s: %(oname)s nicht gefunden" - -#, python-format -msgid "%(pkey)s: %(oname)s not found" -msgstr "%(pkey)s: %(oname)s nicht gefunden" - -#, python-format -msgid "%(oname)s with name \"%(pkey)s\" already exists" -msgstr "%(oname)s mit dem Namen »%(pkey)s« existiert bereits" - -#, python-format -msgid "attribute \"%(attribute)s\" not allowed" -msgstr "Attribut \"%(attribute)s\" ist nicht erlaubt" - -msgid "attribute is not configurable" -msgstr "Attribut ist nicht konfigurierbar" - -#, python-format -msgid "Rename the %(ldap_obj_name)s object" -msgstr "Das %(ldap_obj_name)s-Objekt umbenennen" - -msgid "the entry was deleted while being modified" -msgstr "Der Eintrag wurde während der Änderung entfernt." - -#, python-format -msgid "%s" -msgstr "%s" - -#, python-format -msgid "member %s" -msgstr "Mitglied %s" - -#, python-format -msgid "%s to add" -msgstr "%s zum hinzufügen" - -#, python-format -msgid "%s to remove" -msgstr "%s zum entfernen" - -msgid "service" -msgstr "Dienst" - -msgid "services" -msgstr "Dienste" - -msgid "Not Before" -msgstr "Nicht vor" - -msgid "Not After" -msgstr "Nicht nach" - -msgid "Fingerprint (SHA1)" -msgstr "Fingerabdruck (SHA1)" - -#, python-format -msgid "Added service \"%(value)s\"" -msgstr "Dienst »%(value)s« hinzugefügt" - -#, python-format -msgid "Deleted service \"%(value)s\"" -msgstr "Dienst »%(value)s« gelöscht" - -#, python-format -msgid "Modified service \"%(value)s\"" -msgstr "Dienst »%(value)s« geändert" - -#, python-format -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" -msgstr[0] "%(count)d passender Dienst" -msgstr[1] "%(count)d passende Dienste" - -#, python-format -msgid "Disabled service \"%(value)s\"" -msgstr "Dienst »%(value)s« deaktiviert" - -msgid "this option has been deprecated." -msgstr "Diese Option ist veraltet." - -msgid "sudo rules" -msgstr "Sudo-Regeln" - -msgid "Sudo Rules" -msgstr "Sudo-Regeln" - -msgid "Sudo Rule" -msgstr "Sudo-Regel" - -msgid "users" -msgstr "Benutzer" - -msgid "sudo command group" -msgstr "Sudo-Befehlsgruppe" - -msgid "sudo command groups" -msgstr "Sudo-Befehlsgruppen" - -msgid "One time password commands" -msgstr "Einmalpasswort Befehle" - -msgid "Domain Level cannot be lowered." -msgstr "Domain Level kann nicht gesenkt werden." - -#, python-brace-format -msgid "Domain Level cannot be raised to {0}, server {1} does not support it." -msgstr "" -"Domain Level kann nicht auf {0} erhöht werden, Server {1} unterstützt das " -"nicht." - -msgid "ACI" -msgstr "ACI" - -msgid "must be TRUE or FALSE" -msgstr "muss TRUE oder FALSE sein" - -msgid "SSH public key fingerprint" -msgstr "Fingerabdruck des öffentlichen SSH-Schlüssels" - -#, python-format -msgid "invalid e-mail format: %(email)s" -msgstr "Ungültiges E-Mail-Format: %(email)s" - -#, python-format -msgid "manager %(manager)s not found" -msgstr "Manager %(manager)s nicht gefunden" - -#, python-format -msgid "can be at most %(len)d characters" -msgstr "darf höchstens %(len)d Zeichen lang sein" - -msgid "PKINIT" -msgstr "PKINIT" - -#, python-format -msgid "HBAC rule %(rule)s not found" -msgstr "HBAC-Regel %(rule)s nicht gefunden" - -#, python-format -msgid "Added host \"%(value)s\"" -msgstr "Host \"%(value)s\" hinzugefügt" - -#, python-format -msgid "The host was added but the DNS update failed with: %(exc)s" -msgstr "Der Host wurde hinzugefügt aber DNS Update ist fehlgeschlagen: %(exc)s" - -#, python-format -msgid "Deleted host \"%(value)s\"" -msgstr "Host \"%(value)s\" gelöscht" - -#, python-format -msgid "Modified host \"%(value)s\"" -msgstr "Host \"%(value)s\" geändert" - -#, python-format -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "%(count)d Host gefunden" -msgstr[1] "%(count)d Hosts gefunden" - -#, python-format -msgid "Disabled host \"%(value)s\"" -msgstr "Host \"%(value)s\" deaktiviert" - -msgid "HBAC service group" -msgstr "HBAC-Dienstgruppe" - -msgid "HBAC service groups" -msgstr "HBAC-Dienstgruppen" - -msgid "HBAC Service Groups" -msgstr "HBAC-Dienstgruppen" - -msgid "HBAC Service Group" -msgstr "HBAC-Dienstgruppe" - -#, python-format -msgid "Added HBAC service group \"%(value)s\"" -msgstr "HBAC-Dienstgruppe »%(value)s« hinzugefügt" - -#, python-format -msgid "Deleted HBAC service group \"%(value)s\"" -msgstr "HBAC-Dienstgruppe »%(value)s« gelöscht" - -#, python-format -msgid "Modified HBAC service group \"%(value)s\"" -msgstr "HBAC-Dienstgruppe »%(value)s« geändert" - -#, python-format -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "%(count)d HBAC-Dienstgruppe gefunden" -msgstr[1] "%(count)d HBAC-Dienstgruppen gefunden" - -msgid "A list of ACI values" -msgstr "Liste von ACI-Werten" - -msgid "type, filter, subtree and targetgroup are mutually exclusive" -msgstr "" -"»type«, »filter«, »subtree« und »targetgroup« schließen sich gegenseitig aus." - -msgid "ACI prefix is required" -msgstr "ACI-Präfix ist erforderlich" - -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" -msgstr "" -"mindestens eines von »type«, »filter«, »subtree«, »targetgroup«, »attrs« " -"oder »memberof« wird benötigt" - -msgid "filter and memberof are mutually exclusive" -msgstr "»filter« und »memberof« schließen sich gegenseitig aus" - -msgid "group, permission and self are mutually exclusive" -msgstr "»group«, »permission« und »self« schließen sich gegenseitig aus" - -msgid "One of group, permission or self is required" -msgstr "Eines von »group«, »permission« oder »self« wird benötigt" - -#, python-format -msgid "Group '%s' does not exist" -msgstr "Gruppe »%s« existiert nicht" - -msgid "empty filter" -msgstr "Filter ist leer" - -#, python-format -msgid "Syntax Error: %(error)s" -msgstr "Syntaxfehler: %(error)s" - -#, python-format -msgid "invalid DN (%s)" -msgstr "ungültiger DN (%s)" - -#, python-format -msgid "ACI with name \"%s\" not found" -msgstr "ACI mit dem Namen »%s« nicht gefunden" - -msgid "ACIs" -msgstr "ACIs" - -#, python-format -msgid "Created ACI \"%(value)s\"" -msgstr "ACI erstellt \"%(value)s\"" - -#, python-format -msgid "Deleted ACI \"%(value)s\"" -msgstr "ACI gelöscht \"%(value)s\"" - -#, python-format -msgid "Modified ACI \"%(value)s\"" -msgstr "ACI geändert \"%(value)s\"" - -#, python-format -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "%(count)d ACI gefunden" -msgstr[1] "%(count)d ACIs gefunden" - -#, python-format -msgid "Renamed ACI to \"%(value)s\"" -msgstr "ACI umbenannt zu \"%(value)s\"" - -msgid "DNS is not configured" -msgstr "DNS ist nicht konfiguriert" - -msgid "HBAC services" -msgstr "HBAC-Dienste" - -msgid "HBAC Services" -msgstr "HBAC-Dienste" - -msgid "HBAC Service" -msgstr "HBAC-Dienst" - -#, python-format -msgid "Added HBAC service \"%(value)s\"" -msgstr "HBAC Dienst \"%(value)s\" hinzugefügt" - -#, python-format -msgid "Deleted HBAC service \"%(value)s\"" -msgstr "HBAC Dienst \"%(value)s\" gelöscht" - -#, python-format -msgid "Modified HBAC service \"%(value)s\"" -msgstr "HBAC Dienst \"%(value)s\" geändert" - -#, python-format -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "%(count)d HBAC-Dienst gefunden" -msgstr[1] "%(count)d HBAC-Dienste gefunden" - msgid "" "\n" "Auto Membership Rule.\n" @@ -3955,52 +3384,262 @@ msgstr "Aufgabe für die Neuerstellung der Auto-Mitgliedschaft gestartet" msgid "Task DN = '%s'" msgstr "Aufgaben DN = '%s'" -msgid "sudo command" -msgstr "Sudo-Befehl" +msgid "HBAC service group" +msgstr "HBAC-Dienstgruppe" -msgid "sudo commands" -msgstr "Sudo-Befehle" +msgid "HBAC service groups" +msgstr "HBAC-Dienstgruppen" -msgid "Sudo Commands" -msgstr "Sudo-Befehle" +msgid "HBAC Service Groups" +msgstr "HBAC-Dienstgruppen" -msgid "automount location" -msgstr "Automount-Ort" - -msgid "automount locations" -msgstr "Automount-Orte" - -msgid "Automount Locations" -msgstr "Automount-Orte" - -msgid "Automount Location" -msgstr "Automount-Ort" +msgid "HBAC Service Group" +msgstr "HBAC-Dienstgruppe" #, python-format -msgid "Added automount location \"%(value)s\"" -msgstr "Automount Ort \"%(value)s\" hinzugefügt" +msgid "Added HBAC service group \"%(value)s\"" +msgstr "HBAC-Dienstgruppe »%(value)s« hinzugefügt" #, python-format -msgid "Deleted automount location \"%(value)s\"" -msgstr "Automount-Ort \"%(value)s\" gelöscht" +msgid "Deleted HBAC service group \"%(value)s\"" +msgstr "HBAC-Dienstgruppe »%(value)s« gelöscht" #, python-format -msgid "%(count)d automount location matched" -msgid_plural "%(count)d automount locations matched" -msgstr[0] "%(count)d Automount-Ort gefunden" -msgstr[1] "%(count)d Automount-Orte gefunden" +msgid "Modified HBAC service group \"%(value)s\"" +msgstr "HBAC-Dienstgruppe »%(value)s« geändert" -msgid "automount map" -msgstr "Automount-Map" +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "%(count)d HBAC-Dienstgruppe gefunden" +msgstr[1] "%(count)d HBAC-Dienstgruppen gefunden" -msgid "automount maps" -msgstr "Automount-Maps" +msgid "A list of ACI values" +msgstr "Liste von ACI-Werten" -msgid "Automount Maps" -msgstr "Automount-Maps" +msgid "type, filter, subtree and targetgroup are mutually exclusive" +msgstr "" +"»type«, »filter«, »subtree« und »targetgroup« schließen sich gegenseitig aus." -msgid "Automount Map" -msgstr "Automount-Map" +msgid "ACI prefix is required" +msgstr "ACI-Präfix ist erforderlich" + +msgid "" +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" +msgstr "" +"mindestens eines von »type«, »filter«, »subtree«, »targetgroup«, »attrs« " +"oder »memberof« wird benötigt" + +msgid "filter and memberof are mutually exclusive" +msgstr "»filter« und »memberof« schließen sich gegenseitig aus" + +msgid "group, permission and self are mutually exclusive" +msgstr "»group«, »permission« und »self« schließen sich gegenseitig aus" + +msgid "One of group, permission or self is required" +msgstr "Eines von »group«, »permission« oder »self« wird benötigt" + +#, python-format +msgid "Group '%s' does not exist" +msgstr "Gruppe »%s« existiert nicht" + +msgid "empty filter" +msgstr "Filter ist leer" + +#, python-format +msgid "Syntax Error: %(error)s" +msgstr "Syntaxfehler: %(error)s" + +#, python-format +msgid "invalid DN (%s)" +msgstr "ungültiger DN (%s)" + +#, python-format +msgid "ACI with name \"%s\" not found" +msgstr "ACI mit dem Namen »%s« nicht gefunden" + +msgid "ACIs" +msgstr "ACIs" + +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "ACI erstellt \"%(value)s\"" + +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "ACI gelöscht \"%(value)s\"" + +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "ACI geändert \"%(value)s\"" + +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "%(count)d ACI gefunden" +msgstr[1] "%(count)d ACIs gefunden" + +#, python-format +msgid "Renamed ACI to \"%(value)s\"" +msgstr "ACI umbenannt zu \"%(value)s\"" + +msgid "" +"\n" +"IPA servers\n" +msgstr "" +"\n" +"IPA-Server\n" + +msgid "server" +msgstr "Server" + +msgid "servers" +msgstr "Server" + +msgid "IPA Servers" +msgstr "IPA-Server" + +msgid "Member service groups" +msgstr "Mitglieds-Dienstgruppen" + +msgid "Member HBAC service groups" +msgstr "Mitglieds-HBAC-Servicegruppen" + +msgid "Indirect Member permissions" +msgstr "Indirekte Mitglieds-Berechtigungen" + +msgid "Indirect Member HBAC service" +msgstr "Indirekte Mitgli" + +msgid "Indirect Member HBAC service group" +msgstr "Indirekte Mitglieds-HBAC-Servicegruppe" + +msgid "Invalid format. Should be name=value" +msgstr "Ungültiges Format. Sollte name=wert sein." + +msgid "An IPA master host cannot be deleted or disabled" +msgstr "Ein IPA Masterhost kann nicht deaktiviert oder gelöscht werden" + +msgid "entry" +msgstr "Eintrag" + +msgid "entries" +msgstr "Einträge" + +msgid "Entry" +msgstr "Eintrag" + +#, python-format +msgid "container entry (%(container)s) not found" +msgstr "Container-Eintrag (%(container)s) nicht gefunden" + +#, python-format +msgid "%(parent)s: %(oname)s not found" +msgstr "%(parent)s: %(oname)s nicht gefunden" + +#, python-format +msgid "%(pkey)s: %(oname)s not found" +msgstr "%(pkey)s: %(oname)s nicht gefunden" + +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" +msgstr "%(oname)s mit dem Namen »%(pkey)s« existiert bereits" + +#, python-format +msgid "attribute \"%(attribute)s\" not allowed" +msgstr "Attribut \"%(attribute)s\" ist nicht erlaubt" + +msgid "attribute is not configurable" +msgstr "Attribut ist nicht konfigurierbar" + +#, python-format +msgid "Rename the %(ldap_obj_name)s object" +msgstr "Das %(ldap_obj_name)s-Objekt umbenennen" + +msgid "the entry was deleted while being modified" +msgstr "Der Eintrag wurde während der Änderung entfernt." + +#, python-format +msgid "%s" +msgstr "%s" + +#, python-format +msgid "%s to add" +msgstr "%s zum hinzufügen" + +#, python-format +msgid "%s to remove" +msgstr "%s zum entfernen" + +msgid "SSH public key fingerprint" +msgstr "Fingerabdruck des öffentlichen SSH-Schlüssels" + +#, python-format +msgid "Added host \"%(value)s\"" +msgstr "Host \"%(value)s\" hinzugefügt" + +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" +msgstr "Der Host wurde hinzugefügt aber DNS Update ist fehlgeschlagen: %(exc)s" + +#, python-format +msgid "Deleted host \"%(value)s\"" +msgstr "Host \"%(value)s\" gelöscht" + +#, python-format +msgid "Modified host \"%(value)s\"" +msgstr "Host \"%(value)s\" geändert" + +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "%(count)d Host gefunden" +msgstr[1] "%(count)d Hosts gefunden" + +#, python-format +msgid "Disabled host \"%(value)s\"" +msgstr "Host \"%(value)s\" deaktiviert" + +msgid "host groups" +msgstr "Hostgruppen" + +msgid "Host Group" +msgstr "Hostgruppe" + +#, python-format +msgid "Added hostgroup \"%(value)s\"" +msgstr "Hostgruppe \"%(value)s\" hinzugefügt" + +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" +msgstr "Hostgruppe \"%(value)s\" gelöscht" + +#, python-format +msgid "Modified hostgroup \"%(value)s\"" +msgstr "Hostgruppe \"%(value)s\" geändert" + +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "%(count)d Hostgruppe gefunden" +msgstr[1] "%(count)d Hostgruppen gefunden" + +msgid "configuration options" +msgstr "Konfigurationsoptionen" + +msgid "Configuration" +msgstr "Konfiguration" + +msgid "The group doesn't exist" +msgstr "Die Gruppe existiert nicht" + +#, python-format +msgid "attribute \"%s\" not allowed" +msgstr "Attribut »%s« ist nicht erlaubt" + +msgid "May not be empty" +msgstr "Darf nicht leer sein" msgid "CA ACL" msgstr "CA ACL" @@ -4026,40 +3665,33 @@ msgstr "" "Profilkategorie kann nicht auf 'Alle' gesetzt werden wenn es erlaubte " "Profile gibt" -msgid "user category cannot be set to 'all' while there are allowed users" -msgstr "" -"Benutzerkategorie kann nicht auf 'Alle' gesetzt werden wenn es erlaubte " -"Benutzer gibt" +#, python-format +msgid "Access granted: %s" +msgstr "Zugriff gewährt: %s" -msgid "delegation" -msgstr "Delegation" +msgid "must be TRUE or FALSE" +msgstr "muss TRUE oder FALSE sein" -msgid "delegations" -msgstr "Delegationen" +#, python-format +msgid "invalid e-mail format: %(email)s" +msgstr "Ungültiges E-Mail-Format: %(email)s" -msgid "Delegations" -msgstr "Delegationen" +#, python-format +msgid "manager %(manager)s not found" +msgstr "Manager %(manager)s nicht gefunden" -msgid "Delegation" -msgstr "Delegation" +msgid "One time password commands" +msgstr "Einmalpasswort Befehle" -msgid "password policy" -msgstr "Passwortregel" +#, python-format +msgid "HBAC rule %(rule)s not found" +msgstr "HBAC-Regel %(rule)s nicht gefunden" -msgid "password policies" -msgstr "Passwortregeln" +msgid "sudo command group" +msgstr "Sudo-Befehlsgruppe" -msgid "Password Policies" -msgstr "Passwortregeln" - -msgid "Maximum password life must be greater than minimum." -msgstr "Maximale Lebensdauer muss größer als das Minimum sein." - -msgid "cannot delete global password policy" -msgstr "Die Globale Passwortregel kann nicht gelöscht werden" - -msgid "priority cannot be set on global policy" -msgstr "Priorität der globalen Regel kann nicht gesetzt werden" +msgid "sudo command groups" +msgstr "Sudo-Befehlsgruppen" #, python-format msgid "Added user \"%(value)s\"" @@ -4077,12 +3709,6 @@ msgstr "%s: Benutzer ist bereits aufbewahrt" msgid "Modified user \"%(value)s\"" msgstr "Benutzer »%(value)s« geändert" -#, python-format -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "%(count)d passender Benutzer" -msgstr[1] "%(count)d passende Benutzer" - #, python-format msgid "Undeleted user account \"%(value)s\"" msgstr "Benutzerkonto \"%(value)s\" wiederhergestellt" @@ -4123,6 +3749,60 @@ msgstr "Aktuelle Zeit" msgid "Account disabled: %(disabled)s" msgstr "Konto deaktiviert: %(disabled)s" +msgid "automount location" +msgstr "Automount-Ort" + +msgid "automount locations" +msgstr "Automount-Orte" + +msgid "Automount Locations" +msgstr "Automount-Orte" + +msgid "Automount Location" +msgstr "Automount-Ort" + +#, python-format +msgid "Added automount location \"%(value)s\"" +msgstr "Automount Ort \"%(value)s\" hinzugefügt" + +#, python-format +msgid "Deleted automount location \"%(value)s\"" +msgstr "Automount-Ort \"%(value)s\" gelöscht" + +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "%(count)d Automount-Ort gefunden" +msgstr[1] "%(count)d Automount-Orte gefunden" + +msgid "automount map" +msgstr "Automount-Map" + +msgid "automount maps" +msgstr "Automount-Maps" + +msgid "Automount Maps" +msgstr "Automount-Maps" + +msgid "Automount Map" +msgstr "Automount-Map" + +msgid "Client version. Used to determine if server will accept request." +msgstr "" +"Client-Version. Dadurch wird bestimmt, ob der Server die Anfrage akzeptiert." + +msgid "Serial number (hex)" +msgstr "Seriennummer (hex)" + +msgid "Request status" +msgstr "Anfragestatus" + +msgid "Revoked" +msgstr "Widerrufen" + +msgid "7 is not a valid revocation reason" +msgstr "7 ist kein gültiger Grund für einen Widerruf." + msgid "groups" msgstr "Gruppen" @@ -4156,132 +3836,14 @@ msgstr "Es ist nicht erlaubt, Gruppeneinträge zu ändern." msgid "Not a managed group" msgstr "Keine verwaltete Gruppe" -#, python-format -msgid "Changed password for \"%(value)s\"" -msgstr "Passwort für \"%(value)s\" geändert" +msgid "sudo command" +msgstr "Sudo-Befehl" -msgid "" -"\n" -"IPA servers\n" -msgstr "" -"\n" -"IPA-Server\n" +msgid "sudo commands" +msgstr "Sudo-Befehle" -msgid "server" -msgstr "Server" - -msgid "servers" -msgstr "Server" - -msgid "IPA Servers" -msgstr "IPA-Server" - -msgid "RADIUS Servers" -msgstr "Radius Server" - -msgid "CA is not configured" -msgstr "CA ist nicht konfiguriert" - -msgid "Role" -msgstr "Rolle" - -#, python-format -msgid "Added role \"%(value)s\"" -msgstr "Rolle \"%(value)s\" hinzugefügt" - -#, python-format -msgid "Deleted role \"%(value)s\"" -msgstr "Rolle \"%(value)s\" gelöscht" - -#, python-format -msgid "Modified role \"%(value)s\"" -msgstr "Rolle \"%(value)s\" geändert" - -#, python-format -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" -msgstr[0] "%(count)d Rolle gefunden" -msgstr[1] "%(count)d Rollen gefunden" - -msgid "OTP configuration options" -msgstr "OTP-Konfigurationsoptionen" - -msgid "OTP Configuration" -msgstr "OTP Konfiguration" - -msgid "" -"\n" -"OTP Tokens\n" -msgstr "" -"\n" -"OTP Tokens\n" - -msgid "" -"\n" -"Manage OTP tokens.\n" -msgstr "" -"\n" -"OTP-Tokens bearbeiten.\n" - -msgid "OTP token" -msgstr "OTP Token" - -msgid "OTP tokens" -msgstr "OTP Tokens" - -msgid "OTP Tokens" -msgstr "OTP Token" - -msgid "OTP Token" -msgstr "OTP Token" - -msgid "URI" -msgstr "URI" - -#, python-format -msgid "Added OTP token \"%(value)s\"" -msgstr "OTP token \"%(value)s\" hinzugefügt" - -#, python-format -msgid "Deleted OTP token \"%(value)s\"" -msgstr "OTP token \"%(value)s\" gelöscht" - -#, python-format -msgid "Modified OTP token \"%(value)s\"" -msgstr "OTP Token \"%(value)s\" geändert" - -#, python-format -msgid "%(count)d OTP token matched" -msgid_plural "%(count)d OTP tokens matched" -msgstr[0] "%(count)d OTP Token gefunden" -msgstr[1] "%(count)d OTP Tokens gefunden" - -msgid "host groups" -msgstr "Hostgruppen" - -msgid "Host Group" -msgstr "Hostgruppe" - -#, python-format -msgid "Added hostgroup \"%(value)s\"" -msgstr "Hostgruppe \"%(value)s\" hinzugefügt" - -#, python-format -msgid "Deleted hostgroup \"%(value)s\"" -msgstr "Hostgruppe \"%(value)s\" gelöscht" - -#, python-format -msgid "Modified hostgroup \"%(value)s\"" -msgstr "Hostgruppe \"%(value)s\" geändert" - -#, python-format -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "%(count)d Hostgruppe gefunden" -msgstr[1] "%(count)d Hostgruppen gefunden" - -msgid "commands for controlling sudo configuration" -msgstr "Befehle zum Steuern der sudo-Konfiguration" +msgid "Sudo Commands" +msgstr "Sudo-Befehle" msgid "" "\n" @@ -4354,115 +3916,573 @@ msgstr "»%(value)s« gefunden" msgid "Host '%(host)s' not found" msgstr "Host »%(host)s« nicht gefunden" -msgid "HBAC rules" -msgstr "HBAC-Regeln" +#, python-format +msgid "Changed password for \"%(value)s\"" +msgstr "Passwort für \"%(value)s\" geändert" -msgid "HBAC Rules" -msgstr "HBAC-Regeln" +msgid "A list of LDAP entries" +msgstr "Eine Liste von LDAP-Einträgen" + +msgid "All commands should at least have a result" +msgstr "Alle Befehle sollten mindestens ein Ergebnis haben." + +msgid "Additional instructions:" +msgstr "Zusätzliche Anweisungen:" #, python-format -msgid "Added HBAC rule \"%(value)s\"" -msgstr "HBAC-Regel \"%(value)s\" hinzugefügt" +msgid "" +"API Version number was not sent, forward compatibility not guaranteed. " +"Assuming server's API version, %(server_version)s" +msgstr "" +"API Versionsnummer wurde nicht gesendet, Vorwärtskompatibiltät nicht " +"garantiert. Nehme API Version %(server_version)s für Server an." #, python-format -msgid "Deleted HBAC rule \"%(value)s\"" -msgstr "HBAC-Regel \"%(value)s\" gelöscht" +msgid "" +"DNSSEC support is experimental.\n" +"%(additional_info)s" +msgstr "" +"DNSSEC Unterstützung ist experimentell.\n" +"%(additional_info)s" #, python-format -msgid "Modified HBAC rule \"%(value)s\"" -msgstr "HBAC-Regel \"%(value)s\" geändert" +msgid "'%(option)s' option is deprecated. %(additional_info)s" +msgstr "'%(option)s' Option ist veraltet. %(additional_info)s" #, python-format -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "%(count)d HBAC-Regel gefunden" -msgstr[1] "%(count)d HBAC-Regeln gefunden" +msgid "" +"Semantic of %(label)s was changed. %(current_behavior)s\n" +"%(hint)s" +msgstr "" +"Semantik von %(label)s wurde geändert. %(current_behavior)s\n" +"%(hint)s" #, python-format -msgid "Enabled HBAC rule \"%(value)s\"" -msgstr "HBAC-Regel \"%(value)s\" aktiviert" +msgid "DNS server %(server)s: %(error)s." +msgstr "DNS Server %(server)s: %(error)s." #, python-format -msgid "Disabled HBAC rule \"%(value)s\"" -msgstr "HBAC-Regel \"%(value)s\" deaktiviert" - -msgid "Access time" -msgstr "Zugriffszeit" +msgid "" +"DNS server %(server)s does not support DNSSEC: %(error)s.\n" +"If DNSSEC validation is enabled on IPA server(s), please disable it." +msgstr "" +"DNS Server %(server)s unterstützt kein DNSSEC: %(error)s.\n" +"Wenn DNSSEC-Überprüfung auf den IPA Servern aktiviert ist bitte deaktivieren." #, python-format -msgid "Access granted: %s" -msgstr "Zugriff gewährt: %s" +msgid "" +"DNSSEC validation failed: %(error)s.\n" +"Please verify your DNSSEC configuration or disable DNSSEC validation on all " +"IPA servers." +msgstr "" +"DNSSEC Überprüfung fehlgeschlagen: %(error)s.\n" +"Bitte überprüfen Sie die DNSSEC Konfigurationen oder deaktivieren die DNSSEC " +"Überprüfung auf allen IPA Servern." + +#, python-format +msgid "'%(command)s' is deprecated. %(additional_info)s" +msgstr "'%(command)s' ist veraltet. %(additional_info)s" + +msgid "Results are truncated, try a more specific search" +msgstr "" +"Ergebnisse wurden abgeschnitten, versuchen Sie eine spezifischere Suche." + +#, python-format +msgid "%(count)d variables" +msgstr "%(count)d Variablen" + +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "%(count)d Plugin geladen" +msgstr[1] "%(count)d Plugins geladen" + +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "Geben Sie %(label)s zur Bestätigung nochmals ein: " + +msgid "No matching entries found" +msgstr "Keine passenden Einträge gefunden" + +msgid "Topic or Command" +msgstr "Thema oder Befehl" + +msgid "The topic or command name." +msgstr "Das Thema oder der Befehlsname" + +msgid "Topic commands:" +msgstr "Thema-Befehle:" + +msgid "To get command help, use:" +msgstr "Um Hilfe zu Befehlen zu bekommen benutzen sie:" + +msgid " ipa --help" +msgstr " ipa --help" + +msgid "Command name" +msgstr "Befehlsname" + +msgid "Positional arguments" +msgstr "Positionale Argumente" + +#, python-format +msgid "Same as --%s" +msgstr "Das gleiche wie --%s" + +msgid "Deprecated options" +msgstr "Veraltete Optionen" + +msgid "No file to read" +msgstr "Keine Datei zum Lesen" + +msgid "incorrect type" +msgstr "inkorrekter Typ" + +msgid "Only one value is allowed" +msgstr "Nur ein Wert ist erlaubt" + +msgid "this option is deprecated" +msgstr "diese Option ist veraltet" + +msgid "must be True or False" +msgstr "muss »True« oder »False« sein" + +msgid "must be an integer" +msgstr "muss eine Ganzzahl sein" + +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "muss mindestens %(minvalue)d sein" + +#, python-format +msgid "can be at most %(maxvalue)d" +msgstr "darf höchstens %(maxvalue)d sein" + +msgid "must be a decimal number" +msgstr "muss eine Dezimalzahl sein" + +#, python-format +msgid "must be at least %(minvalue)s" +msgstr "muss mindestens %(minvalue)s sein" + +#, python-format +msgid "can be at most %(maxvalue)s" +msgstr "darf höchstens %(maxvalue)s sein" + +#, python-format +msgid "must match pattern \"%(pattern)s\"" +msgstr "muss dem Muster »%(pattern)s« entsprechen" + +msgid "must be binary data" +msgstr "muss im Binärformat sein" + +#, python-format +msgid "must be at least %(minlength)d bytes" +msgstr "muss mindestens %(minlength)d Bytes groß sein" + +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "darf höchstens %(maxlength)d Bytes groß sein" + +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "muss genau %(length)d Bytes groß sein" #, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "Fehler beim Dekodieren der Signaturanfrage für das Zertifikat: %s" -msgid "Serial number (hex)" -msgstr "Seriennummer (hex)" +msgid "must be Unicode text" +msgstr "muss Unicode-Text sein" -msgid "Request status" -msgstr "Anfragestatus" - -msgid "Revoked" -msgstr "Widerrufen" - -msgid "7 is not a valid revocation reason" -msgstr "7 ist kein gültiger Grund für einen Widerruf." - -msgid "configuration options" -msgstr "Konfigurationsoptionen" - -msgid "Configuration" -msgstr "Konfiguration" - -msgid "The group doesn't exist" -msgstr "Die Gruppe existiert nicht" +msgid "Leading and trailing spaces are not allowed" +msgstr "Führende und angehängte Leerzeichen sind nicht erlaubt." #, python-format -msgid "attribute \"%s\" not allowed" -msgstr "Attribut »%s« ist nicht erlaubt" - -msgid "May not be empty" -msgstr "Darf nicht leer sein" - -msgid "Stage Users" -msgstr "Vorbereitete Benutzer" - -msgid "Stage User" -msgstr "Vorbereiteter Benutzer" - -msgid "stage user" -msgstr "Vorbereiteter Benutzer" - -msgid "stage users" -msgstr "Vorbereitete Benutzer" +msgid "must be at least %(minlength)d characters" +msgstr "muss mindestens %(minlength)d Zeichen lang sein" #, python-format -msgid "Added stage user \"%(value)s\"" -msgstr "Vorbereiteten Benutzer »%(value)s« hinzugefügt" - -msgid "givenname is required" -msgstr "givenname wird benötigt" - -msgid "sn is required" -msgstr "sn wird benötigt" +msgid "can be at most %(maxlength)d characters" +msgstr "darf höchstens %(maxlength)d Zeichen lang sein" #, python-format -msgid "Deleted stage user \"%(value)s\"" -msgstr "Vorbereiteten Benutzer \"%(value)s\" gelöscht" +msgid "must be exactly %(length)d characters" +msgstr "muss genau %(length)d Zeichen lang sein" #, python-format -msgid "Modified stage user \"%(value)s\"" -msgstr "Vorbereiteten Benutzer »%(value)s« geändert" +msgid "must be '%(value)s'" +msgstr "muss '%(value)s' sein" #, python-format -msgid "Activate a stage user \"%(value)s\"" -msgstr "Vorbereiteten Benutzer \"%(value)s\" aktivieren." +msgid "must be one of %(values)s" +msgstr "muss eines von %(values)s sein" + +msgid "must be datetime value" +msgstr "muss ein datetime-Wert sein" + +msgid "must be DNS name" +msgstr "muss ein DNS-Name sein" + +msgid "must be absolute" +msgstr "muss absolut sein" + +msgid "must be relative" +msgstr "muss relativ sein" #, python-format -msgid "active user with name \"%(user)s\" already exists" -msgstr "Aktiver Benutzer mit Name \"%(user)s\" existiert bereits" +msgid "Permission denied: %(file)s" +msgstr "Zugriff verweigert: %(file)s" + +msgid "too many '@' characters" +msgstr "Zu viele »@«-Zeichen" + +msgid "cannot be longer that 255 characters" +msgstr "darf nicht länger als 255 Zeichen sein" + +msgid "not fully qualified" +msgstr "nicht voll ausgeschrieben" + +msgid "invalid SSH public key" +msgstr "Ungültiger öffentlicher SSH-Schlüssel" #, python-format -msgid "Stage user %s activated" -msgstr "Vorbereiteten Benutzer %s aktiviert" +msgid "invalid domain-name: %s" +msgstr "Ungültiger Domainname: %s" + +#, python-format +msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!" +msgstr "" +"Ungültige IP-Adressversion (ist %(value)d, muss %(required_value)d) sein!" + +msgid "invalid IP address format" +msgstr "Ungültiges IP-Adressformat" + +#, python-format +msgid "%(port)s is not a valid port" +msgstr "%(port)s kein gültiger Port" + +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at '%(server)s'" +msgstr "%(cver)s Client ist inkompatibel mit %(sver)s server auf '%(server)s'" + +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" +msgstr "Unbekannter Fehler %(code)d von %(server)s: %(error)s" + +msgid "an internal error has occurred" +msgstr "Ein interner Fehler ist aufgetreten" + +#, python-format +msgid "an internal error has occurred on server at '%(server)s'" +msgstr "In interner Fehler ist auf dem Server '%(server)s' aufgetreten." + +#, python-format +msgid "unknown command '%(name)s'" +msgstr "Unbekannter Befehl '%(name)s'" + +#, python-format +msgid "error on server '%(server)s': %(error)s" +msgstr "Fehler auf Server '%(server)s': %(error)s" + +#, python-format +msgid "cannot connect to '%(uri)s': %(error)s" +msgstr "Kann nicht zu '%(uri)s' verbinden: %(error)s" + +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" +msgstr "Ungültige JSON-RPC-Anfrage: %(error)s" + +#, python-format +msgid "Missing or invalid HTTP Referer, %(referer)s" +msgstr "Fehlende oder ungültige HTTP-Referenz, %(referer)s" + +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" +msgstr "Kerberos-Fehler: %(major)s/%(minor)s" + +msgid "did not receive Kerberos credentials" +msgstr "Kerberos-Anmeldedaten wurden nicht empfangen" + +#, python-format +msgid "Service '%(service)s' not found in Kerberos database" +msgstr "Service '%(service)s' in Kerberos-Datenbank nicht gefunden" + +msgid "No credentials cache found" +msgstr "Keine Anmeldeinformationen-Cache gefunden" + +msgid "Ticket expired" +msgstr "Ticket abgelaufen" + +msgid "Credentials cache permissions incorrect" +msgstr "Zugriffsrechte des Anmeldedaten-Zwischenspeichers sind inkorrekt." + +msgid "Bad format in credentials cache" +msgstr "Falsches Format im Anmeldedaten-Zwischenspeicher" + +msgid "Cannot resolve KDC for requested realm" +msgstr "KDC für angeforderten Realm konnte nicht aufgelöst werden." + +msgid "Session error" +msgstr "Sitzungsfehler" + +#, python-format +msgid "Principal %(principal)s cannot be authenticated: %(message)s" +msgstr "" +"Der Principal %(principal)s kann nicht authentifiziert werden: %(message)s" + +#, python-format +msgid "Insufficient access: %(info)s" +msgstr "Unzureichender Zugriff: %(info)s" + +#, python-format +msgid "command '%(name)s' takes no arguments" +msgstr "Befehl '%(name)s' nimmt keine Argumente" + +#, python-format +msgid "command '%(name)s' takes at most %(count)d argument" +msgid_plural "command '%(name)s' takes at most %(count)d arguments" +msgstr[0] "Befehl '%(name)s' nimmt maximal %(count)d Argument" +msgstr[1] "Befehl '%(name)s' nimmt maximal %(count)d Argumente" + +#, python-format +msgid "overlapping arguments and options: %(names)s" +msgstr "Überlappende Argumente und Optionen: %(names)s" + +#, python-format +msgid "'%(name)s' is required" +msgstr "'%(name)s' wird benötigt" + +#, python-format +msgid "invalid '%(name)s': %(error)s" +msgstr "Ungültig '%(name)s': %(error)s" + +msgid "Passwords do not match" +msgstr "Passwörter stimmen nicht überein" + +msgid "Command not implemented" +msgstr "Befehl nicht implementiert" + +msgid "Client is not configured. Run ipa-client-install." +msgstr "Client ist nicht konfiguriert. Rufen Sie ipa-client-install auf." + +#, python-format +msgid "Could not get %(name)s interactively" +msgstr "%(name)s konnte nicht interaktiv ermittelt werden" + +#, python-format +msgid "Command '%(name)s' has been deprecated" +msgstr "Befehl '%(name)s' ist veraltet" + +#, python-format +msgid "Domain '%(domain)s' is not a root domain for forest '%(forest)s'" +msgstr "" +"Die Domain '%(domain)s' ist keine Root-Domain für den Forest '%(forest)s'" + +#, python-format +msgid "%(reason)s" +msgstr "%(reason)s" + +msgid "This entry already exists" +msgstr "Dieser Eintrag existiert bereits" + +msgid "You must enroll a host in order to create a host service" +msgstr "" +"Sie müssen einen Host registrieren, bevor Sie einen Dienst für diesen Host " +"anlegen können." + +#, python-format +msgid "" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" +msgstr "" +"Principal des Dienstes folgt nicht der Form »Dienst/voll ausgeschriebener " +"Hostname«: %(reason)s" + +msgid "" +"The realm for the principal does not match the realm for this IPA server" +msgstr "Der Realm des Principals passt nicht zum Realm dieses IPA-Servers." + +msgid "This command requires root access" +msgstr "Dieser Befehl erfordert Root-Zugriff" + +msgid "This is already a posix group" +msgstr "Dies ist bereits eine POSIX-Gruppe" + +#, python-format +msgid "Principal is not of the form user@REALM: '%(principal)s'" +msgstr "Principal ist nicht in der Form user@REALM: '%(principal)s'" + +msgid "This entry is already enabled" +msgstr "Dieser Eintrag ist bereits aktiviert" + +msgid "This entry is already disabled" +msgstr "Dieser Eintrag ist bereits deaktiviert" + +msgid "This entry cannot be enabled or disabled" +msgstr "Dieser Eintrag kann nicht aktiviert oder deaktiviert werden" + +msgid "This entry is not a member" +msgstr "Dieser Eintrag ist kein Mitglied" + +msgid "A group may not be a member of itself" +msgstr "Eine Gruppe kann kein Mitglied von sich selbst sein" + +msgid "This entry is already a member" +msgstr "Dieser Eintrag ist bereits ein Mitglied" + +#, python-format +msgid "Base64 decoding failed: %(reason)s" +msgstr "Base64-Dekodierung fehlgeschlagen: %(reason)s" + +msgid "A group may not be added as a member of itself" +msgstr "Eine Gruppe kann nicht als Mitglied von sich selbst hinzugefügt werden" + +msgid "The default users group cannot be removed" +msgstr "Die vorgegebene Benutzergruppe kann nicht entfernt werden" + +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "" +"Das Löschen einer verwalteten Gruppe ist unzulässig. Sie muss zuerst aus der " +"Verwaltung entfernt werden." + +msgid "A managed group cannot have a password policy." +msgstr "Eine verwaltete Gruppe kann keine Passwort-Policy haben." + +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "»%(entry)s« verfügt nicht über ein Zertifikat." + +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "" +"Die private Gruppe konnte nicht erstellt werden. Eine Gruppe »%(group)s« " +"existiert bereits." + +#, python-format +msgid "" +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "" +"Ein Problem trat bei der Überprüfung auf, ob alle Mitglieder %(verb)s waren: " +"%(exc)s" + +#, python-format +msgid "%(attr)s does not contain '%(value)s'" +msgstr "%(attr)s enthält nicht »%(value)s«" + +#, python-format +msgid "" +"The search criteria was not specific enough. Expected 1 and found %(found)d." +msgstr "" +"Die Suchkriterien waren nicht spezifisch genug. 1 wurde erwartet, aber " +"%(found)d gefunden." + +msgid "This group already allows external members" +msgstr "Diese Gruppe erlaubt bereits externe Mitglieder" + +msgid "This group cannot be posix because it is external" +msgstr "Diese Gruppe kann nicht POSIX sein, weil sie extern ist" + +msgid "This is already a posix group and cannot be converted to external one" +msgstr "" +"Dies ist bereits eine POSIX-Gruppe, sie kann nicht zu einer externen " +"konvertiert werden" + +#, python-format +msgid "Server removal aborted: %(reason)s." +msgstr "Entfernen des Servers abgebrochen: %(reason)s." + +#, python-format +msgid "no command nor help topic '%(topic)s'" +msgstr "kein Befehl oder Hilfethema '%(topic)s'" + +msgid "change collided with another change" +msgstr "Änderung kollidiert mit einer anderen Änderung" + +msgid "no modifications to be performed" +msgstr "Keine anzuwendenden Änderungen" + +#, python-format +msgid "%(desc)s: %(info)s" +msgstr "%(desc)s: %(info)s" + +msgid "limits exceeded for this query" +msgstr "Begrenzung wurde für diese Abfrage überschritten." + +#, python-format +msgid "%(info)s" +msgstr "%(info)s" + +msgid "modifying primary key is not allowed" +msgstr "Ändern des primären Schlüssels ist nicht erlaubt." + +#, python-format +msgid "%(attr)s: Only one value allowed." +msgstr "%(attr)s: Nur ein Wert erlaubt." + +#, python-format +msgid "%(attr)s: Invalid syntax." +msgstr "%(attr)s: Ungültige Syntax." + +#, python-format +msgid "Bad search filter %(info)s" +msgstr "Falscher Suchfilter %(info)s" + +msgid "Not allowed on non-leaf entry" +msgstr "Bei einem Nicht-Blatt-Eintrag nicht erlaubt" + +msgid "LDAP timeout" +msgstr "LDAP Timeout" + +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" +msgstr "Zertifikat-Operation kann nicht abgeschlossen werden: %(error)s" + +#, python-format +msgid "Certificate format error: %(error)s" +msgstr "Formatfehler im Zertifikat: %(error)s" + +msgid "Already registered" +msgstr "Bereits registriert" + +msgid "Not registered yet" +msgstr "Noch nicht registriert" + +#, python-format +msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it" +msgstr "" +"%(key)s kann nicht gelöscht werden, weil es von %(label)s %(dependent)s " +"benötigt wird." + +#, python-format +msgid "" +"%(key)s cannot be deleted or disabled because it is the last member of " +"%(label)s %(container)s" +msgstr "" +"%(key)s kann nicht gelöscht oder deaktiviert werden weil es das letzte " +"Mitglied von %(label)s %(container)s ist" + +#, python-format +msgid "%(label)s %(key)s cannot be deleted/modified: %(reason)s" +msgstr "%(label)s %(key)s kann nicht gelöscht/bearbeitet werden: %(reason)s" + +#, python-format +msgid "%(name)s certificate is not valid" +msgstr "%(name)s Zertifikat ist ungültig" + +#, python-format +msgid "DNS check failed: Expected {%(expected)s} got {%(got)s}" +msgstr "DNS Check fehlerhaft: Erwartet {%(expected)s} bekommen {%(got)s}" + +msgid "Out of memory\n" +msgstr "Nicht genügend Speicher\n" + +msgid "Out of memory!?\n" +msgstr "Nicht genügend Speicher!?\n" + +msgid "Failed to create random key!\n" +msgstr "Zufallsschlüssel konnte nicht erzeugt werden!\n" + +msgid "Failed to create key!\n" +msgstr "Schlüssel konnte nicht erzeugt werden!\n" diff --git a/po/es.po b/po/es.po index ef8afade7..1bd0aa90e 100644 --- a/po/es.po +++ b/po/es.po @@ -3,9 +3,9 @@ # Emilio Herrera , 2017. #zanata msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -16,519 +16,167 @@ msgstr "" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#, python-format -msgid "Retrieving CA status failed: %s" -msgstr "Falló la obtención del estado de CA: %s" +#, c-format +msgid "No keys accepted by KDC\n" +msgstr "No hay claves aceptadas por KDC\n" -#, python-format -msgid "objectclass %s not found" -msgstr "clase objeto %s no encontrada" +#, c-format +msgid "Out of memory \n" +msgstr "¡Memoria insuficiente!\n" -msgid "Show environment variables." -msgstr "Mostrar variables de entorno." +#, c-format +msgid "Unable to initialize ldap library!\n" +msgstr "¡No puede iniciar biblioteca IDAP!\n" -#, python-format -msgid "%(count)d variables" -msgstr "%(count)d variables" +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "Incapaz de fijar LDAP_OPT_X_SASL_NOCANON \n" -msgid "" -"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." +#, c-format +msgid "Simple bind failed\n" +msgstr "¡Falló vinculación sencilla!\n" -msgid "Dictionary mapping variable name to value" -msgstr "Nombre de la variable de mapeo de dicionario a valorizar " +#, c-format +msgid "Missing reply control!\n" +msgstr "¡Falta control de respuesta!\n" -msgid "Total number of variables env (>= count)" -msgstr "Cantidad total de variables env (>= count)" +#, c-format +msgid "Out of Memory!\n" +msgstr "¡Memoria insuficiente!\n" -msgid "Number of variables returned (<= total)" -msgstr "Cantidad de variables devueltas (<= total)" +#, c-format +msgid "Failed to create control!\n" +msgstr "¡Falló crear control!\n" -msgid "Show all loaded plugins." -msgstr "Mostrar todos los plugins cargados." +#, c-format +msgid "ber_init() failed, Invalid control ?!\n" +msgstr "Falló ber_init(), ¿control inválido?\n" -#, 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" +msgid "New Principal Password" +msgstr "Nueva contraseña principal" -msgid "Number of plugins loaded" -msgstr "Cantidad de complementos cargados" - -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" -msgstr "error %(code)d desconocido de %(server)s: %(error)s" - -msgid "an internal error has occurred" -msgstr "ha ocurrido un error interno" - -#, python-format -msgid "unknown command '%(name)s'" -msgstr "comando desconocido '%(name)s'" - -#, python-format -msgid "cannot connect to '%(uri)s': %(error)s" -msgstr "no se pudo conectar a '%(uri)s': %(error)s" - -#, python-format -msgid "Invalid JSON-RPC request: %(error)s" -msgstr "Petición JSON-RPC no válida: %(error)s" - -#, 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 " - -#, python-format -msgid "Missing or invalid HTTP Referer, %(referer)s" -msgstr "Arbitro HTTP desaparecido o no válido, %(referer)s" - -#, python-format -msgid "Kerberos error: %(major)s/%(minor)s" -msgstr "Error de kerberos: %(major)s/%(minor)s" - -msgid "did not receive Kerberos credentials" -msgstr "no se ha recibido ninguna credencial de Kerberos" - -#, python-format -msgid "Service '%(service)s' not found in Kerberos database" -msgstr "" -"El servicio '%(service)s' no se encontró en la base de datos de Kerberos" - -msgid "No credentials cache found" -msgstr "No se han encontrado credenciales de cache" - -msgid "Ticket expired" -msgstr "El ticket ha expirado" - -msgid "Credentials cache permissions incorrect" -msgstr "Los permisos de credenciales de caché son incorrectos" - -msgid "Bad format in credentials cache" -msgstr "Las credenciales de caché están mal formadas" - -msgid "Cannot resolve KDC for requested realm" -msgstr "No es posible resolver KDC para el reinado solicitado" - -msgid "Session error" -msgstr "Error de sesión" - -#, python-format -msgid "Insufficient access: %(info)s" -msgstr "Acceso insuficiente: %(info)s" - -#, python-format -msgid "invalid '%(name)s': %(error)s" -msgstr "'%(name)s' inválido: %(error)s" - -msgid "Passwords do not match" -msgstr "Las contraseñas no coinciden" - -msgid "Command not implemented" -msgstr "El comando no se ha implementado" - -msgid "Client is not configured. Run ipa-client-install." -msgstr "El cliente no está configurado. Ejecutar la API de cliente a instalar." - -#, python-format -msgid "Could not get %(name)s interactively" -msgstr "No se pudo obtener %(name)s interactivamente" - -#, python-format -msgid "%(reason)s" -msgstr "%(reason)s" - -msgid "This entry already exists" -msgstr "Esta entrada ya existe" - -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" - -#, python-format -msgid "" -"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" - -msgid "" -"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" - -msgid "This command requires root access" -msgstr "Este comando necesita acceso de usuario root" - -msgid "This is already a posix group" -msgstr "Este ya es un grupo posix" - -msgid "This entry is already enabled" -msgstr "Esta entrada ya está habilitada" - -msgid "This entry is already disabled" -msgstr "Esta entrada ya está desactivada" - -msgid "This entry cannot be enabled or disabled" -msgstr "Esta entrada no puede ser activada o desactivada" - -msgid "This entry is not a member" -msgstr "Esta entrada no es miembro" - -msgid "A group may not be a member of itself" -msgstr "Un grupo no puede ser miembro de sí mismo" - -msgid "This entry is already a member" -msgstr "Esta entrada ya es un miembro" - -#, python-format -msgid "Base64 decoding failed: %(reason)s" -msgstr "Falló la decodificación base64: %(reason)s" - -msgid "A group may not be added as a member of itself" -msgstr "Un grupo no puede ser agregado como miembro de sí mismo" - -msgid "The default users group cannot be removed" -msgstr "El grupo de usuarios predeterminado no puede ser eliminado" - -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. " - -msgid "A managed group cannot have a password policy." -msgstr "Un grupo administrado no puede tener una política de contraseñas." - -#, python-format -msgid "'%(entry)s' doesn't have a certificate." -msgstr "'%(entry)s' no tiene certificado" - -#, 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." - -#, python-format -msgid "" -"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" - -#, python-format -msgid "%(attr)s does not contain '%(value)s'" -msgstr "%(attr)s no contiene '%(value)s'" - -#, python-format -msgid "" -"The search criteria was not specific enough. Expected 1 and found %(found)d." -msgstr "" -"El criterio de búsqueda no fue bastante específico. Se esperaba 1 y se " -"encontró %(found)d." - -msgid "This group already allows external members" -msgstr "Este grupo ya acepta miembros externos" - -msgid "change collided with another change" -msgstr "la modificación choca con otra modificación diferente" - -msgid "no modifications to be performed" -msgstr "no existen modificaciones a ser realizadas" - -#, python-format -msgid "%(desc)s: %(info)s" -msgstr "%(desc)s:%(info)s" - -msgid "limits exceeded for this query" -msgstr "han sido excedidos los límites para esta consulta" - -#, python-format -msgid "%(info)s" -msgstr "%(info)s" - -msgid "modifying primary key is not allowed" -msgstr "modificar la clave principal no está permitido" - -#, python-format -msgid "%(attr)s: Only one value allowed." -msgstr " %(attr)s : Solamente un valor permitido." - -#, python-format -msgid "%(attr)s: Invalid syntax." -msgstr "%(attr)s: sintaxis inválida." - -#, python-format -msgid "Bad search filter %(info)s" -msgstr "%(info)s de filtro de búsqueda errado" - -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" -msgstr "La operación certificada no puede ser completada: %(error)s" - -#, python-format -msgid "Certificate format error: %(error)s" -msgstr "Error de certificado de formato: %(error)s " - -msgid "Already registered" -msgstr "Ya está registrado" - -msgid "Not registered yet" -msgstr "Aún no está registrado" - -#, python-format -msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it" -msgstr "" -"No se puede eliminar %(key)s porque %(label)s %(dependent)s lo requiere" - -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "Ingrese %(label)s nuevamente para verificar: " +msgid "Verify Principal Password" +msgstr "Verificar contraseña principal" #, c-format msgid "Passwords do not match!" msgstr "Las contraseñas no coinciden." -msgid "No matching entries found" -msgstr "No se encontraron entradas coincidentes" +msgid "Print as little as possible" +msgstr "Imprimir lo mínimo posible" -msgid "Topic commands:" -msgstr "Tema comandos:" +msgid "Output only on errors" +msgstr "Solamente salida sobre errores" -msgid "To get command help, use:" -msgstr "Para obtener ayuda sobre el comando, utilice:" +msgid "Contact this specific KDC Server" +msgstr "Contactar este servidor KDC específico" -msgid "Command name" -msgstr "Nombre del comando" +msgid "Server Name" +msgstr "Nombre de servidor" -msgid "Positional arguments" -msgstr "Argumentos posicionales" - -msgid "No file to read" -msgstr "No existe el fichero para leer" - -msgid "Additional instructions:" -msgstr "Instrucciones adicionales:" - -msgid "Results are truncated, try a more specific search" +msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -"Los resultados se encuentran truncados, intente realizar una búsqueda más " -"específica" - -#, python-format -msgid "Unknown option: %(option)s" -msgstr "Opción desconocida: %(option)s" - -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." - -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." - -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." - -msgid "Forward to server instead of running locally" -msgstr "Reenvía al servidor en lugar de ejecutarse localmente" - -msgid "incorrect type" -msgstr "tipo incorrecto" - -msgid "Only one value is allowed" -msgstr "Sólo se permite un valor" - -msgid "must be True or False" -msgstr "debe ser True o False" - -msgid "must be an integer" -msgstr "debe ser un entero" - -#, python-format -msgid "must be at least %(minvalue)d" -msgstr "debe ser como mínimo %(minvalue)d" - -#, python-format -msgid "can be at most %(maxvalue)d" -msgstr "puede ser como máximo %(maxvalue)d" - -msgid "must be a decimal number" -msgstr "debe ser un número decimal" - -#, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "debe coincidir con el modelo \"%(pattern)s" - -msgid "must be binary data" -msgstr "debe ser un dato binario" - -#, python-format -msgid "must be at least %(minlength)d bytes" -msgstr "debe ser como mínimo de %(minlength)d bytes" - -#, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "puede ser a lo sumo de %(maxlength)d bytes" - -#, python-format -msgid "must be exactly %(length)d bytes" -msgstr "debe ser exactamente de %(length)d bytes" - -msgid "must be Unicode text" -msgstr "debe ser texto Unicode" - -msgid "Leading and trailing spaces are not allowed" -msgstr "No están permitidos espacios iniciales ni finales" - -#, python-format -msgid "must be at least %(minlength)d characters" -msgstr "debe tener como mínimo %(minlength)d caracteres" - -#, python-format -msgid "can be at most %(maxlength)d characters" -msgstr "puede tener a lo sumo %(maxlength)d caracteres" - -#, python-format -msgid "must be exactly %(length)d characters" -msgstr "debe tener exactamente %(length)d caracteres" - -#, python-format -msgid "must be '%(value)s'" -msgstr "debe ser «%(value)s»" - -msgid "A dictionary representing an LDAP entry" -msgstr "Un diccionario representando una entrada LDAP" - -msgid "A list of LDAP entries" -msgstr "Una lista de entradas LDAP" - -msgid "All commands should at least have a result" -msgstr "Todos los comandos deberían por lo menos tener un resultado" - -msgid "User-friendly description of action performed" -msgstr "Descripción sencilla de la acción realizada" - -msgid "The primary_key value of the entry, e.g. 'jdoe' for a user" -msgstr "El valor de primary_key de la entrada, p.ej., «jperez» para un usuario" - -msgid "Number of entries returned" -msgstr "Cantidad de entradas devueltas" - -msgid "True if not all results were returned" -msgstr "Verdadero si no todos los resultados se devolvieron" - -msgid "List of deletions that failed" -msgstr "Lista de eliminaciones fallidas" - -msgid "True means the operation was successful" -msgstr "«Verdadero» significa que la operación fue exitosa" - -#, python-format -msgid "Permission denied: %(file)s" -msgstr "Permiso denegado:%(file)s " - -msgid "too many '@' characters" -msgstr "demasiados ‘@’ caracteres" - -msgid "cannot be longer that 255 characters" -msgstr "no puede ser más larga de 255 caracteres" - -msgid "invalid SSH public key" -msgstr "clave SSH pública no válida" - -#, python-format -msgid "invalid domain-name: %s" -msgstr "nombre de dominio no válido: %s" - -msgid "invalid IP address format" -msgstr "formato no válido de dirección IP" - -#, python-format -msgid "%(port)s is not a valid port" -msgstr "%(port)s no es un puerto válido" - -#, c-format -msgid "cannot open configuration file %s\n" -msgstr "no se puede abrir archivo de configuración %s\\n\n" - -#, c-format -msgid "cannot stat() configuration file %s\n" -msgstr "no puede stat () del archivo de configuración%s\n" - -#, c-format -msgid "out of memory\n" -msgstr "sin Memoria\n" - -#, c-format -msgid "read error\n" -msgstr "Error de lectura\n" - -#, c-format -msgid "Unable to parse principal name\n" -msgstr "No se puede analizar nombre principal\n" - -#, c-format -msgid "Removing principal %s\n" -msgstr "Eliminando %s principales\n" - -#, c-format -msgid "Failed to open keytab\n" -msgstr "No pudo abrir la tabla de claves\n" - -#, c-format -msgid "principal not found\n" -msgstr "principal no se encuentra\n" - -#, c-format -msgid "Unable to remove entry\n" -msgstr "No se puede eliminar la entrada\n" - -#, c-format -msgid "kvno %d\n" -msgstr "kvno %d\n" - -#, c-format -msgid "Unable to parse principal\n" -msgstr "No es posible analizar los principales\n" - -#, c-format -msgid "realm not found\n" -msgstr "reino no encontrado\n" - -msgid "Print debugging information" -msgstr "Imprimir la información de depuración" - -msgid "Debugging output" -msgstr "Salida de depuración" +"La principal para obtener una tabla de claves para (ex: ftp/ftp.example." +"com@EXAMPLE.COM)" msgid "Kerberos Service Principal Name" msgstr "Nombre principal del servicio de kerberos" +msgid "File were to store the keytab information" +msgstr "Archivo para almacenar la información de tabla de claves" + msgid "Keytab File Name" msgstr "Nombre de archivo de tabla de claves" -msgid "Remove all principals in this realm" -msgstr "Quite todos los principales en este ámbito" +msgid "Encryption types to request" +msgstr "Solicitud de tipos de cifrado" -msgid "Realm name" -msgstr "Nombre de reino " +msgid "Comma separated encryption types list" +msgstr "Lista de tipos de cifrado separados por coma" + +msgid "Show the list of permitted encryption types and exit" +msgstr "Mostrar la lista de los tipos cifrados permitidos y salir" + +msgid "Permitted Encryption Types" +msgstr "Tipos de cifrado permitidos" + +msgid "Asks for a non-random password to use for the principal" +msgstr "Pregunta por una contraseña no aleatoria para la principal" + +msgid "LDAP DN" +msgstr "LDAP DN" + +msgid "DN to bind as if not using kerberos" +msgstr "DN a vincular como si no usara kerberos" + +msgid "LDAP password" +msgstr "Contraseña LDAP" + +msgid "password to use if not using kerberos" +msgstr "Contraseña a usar si no usa kerberos" #, c-format msgid "Kerberos context initialization failed\n" msgstr "Inicio de contexto de kerberos falló\n" #, c-format -msgid "Closing keytab failed\n" -msgstr "Cierre de tabla de claves falló\n" +msgid "No system preferred enctypes ?!\n" +msgstr "¿Ningún sistema enctypes preferido?\n" + +#, c-format +msgid "Supported encryption types:\n" +msgstr "Tipos de cifrado suportado\n" + +#, c-format +msgid "Warning: failed to convert type (#%d)\n" +msgstr "Advertencia: Tipo para convertir falló (#%d)⏎\n" + +#, c-format +msgid "Bind password required when using a bind DN.\n" +msgstr "Vincular contraseña requerida mediante un enlace DN.\n" + +#, 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.\n" + +#, c-format +msgid "Invalid Service Principal Name\n" +msgstr "Nombre de servicio principal inválido\n" + +#, 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" + +#, 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" + +#, c-format +msgid "Failed to open Keytab\n" +msgstr "Fallo abrir clave de tablas.\n" + +#, c-format +msgid "Failed to create key material\n" +msgstr "Error al crear el material de clave\n" + +#, c-format +msgid "Failed to add key to the keytab\n" +msgstr "No se pudo agregar clave de la tabla de claves\n" + +#, c-format +msgid "Failed to close the keytab\n" +msgstr "No se pudo cerrar la tabla de claves\n" + +#, c-format +msgid "Keytab successfully retrieved and stored in: %s\n" +msgstr "Tabla de claves recuperada y almacenada correctamente en:%s\n" #, c-format msgid "No permission to join this host to the IPA domain.\n" @@ -550,10 +198,6 @@ msgstr "No se puede iniciar con servidor IDAP:%s" msgid "Unable to enable SSL in LDAP\n" msgstr "No se puede habilitar SSL en LDAP\n" -#, c-format -msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" -msgstr "Incapaz de fijar LDAP_OPT_X_SASL_NOCANON \n" - #, c-format msgid "Unable to set LDAP version\n" msgstr "No se puede establecer la versión de LDAP\n" @@ -729,169 +373,199 @@ msgid "basedn" msgstr "basedn" #, c-format -msgid "No keys accepted by KDC\n" -msgstr "No hay claves aceptadas por KDC\n" +msgid "Unable to parse principal name\n" +msgstr "No se puede analizar nombre principal\n" #, c-format -msgid "Out of memory \n" -msgstr "¡Memoria insuficiente!\n" +msgid "Removing principal %s\n" +msgstr "Eliminando %s principales\n" #, c-format -msgid "Unable to initialize ldap library!\n" -msgstr "¡No puede iniciar biblioteca IDAP!\n" +msgid "Failed to open keytab\n" +msgstr "No pudo abrir la tabla de claves\n" #, c-format -msgid "Simple bind failed\n" -msgstr "¡Falló vinculación sencilla!\n" +msgid "principal not found\n" +msgstr "principal no se encuentra\n" #, c-format -msgid "Missing reply control!\n" -msgstr "¡Falta control de respuesta!\n" +msgid "Unable to remove entry\n" +msgstr "No se puede eliminar la entrada\n" #, c-format -msgid "Out of Memory!\n" -msgstr "¡Memoria insuficiente!\n" +msgid "kvno %d\n" +msgstr "kvno %d\n" #, c-format -msgid "Failed to create control!\n" -msgstr "¡Falló crear control!\n" +msgid "Unable to parse principal\n" +msgstr "No es posible analizar los principales\n" #, c-format -msgid "ber_init() failed, Invalid control ?!\n" -msgstr "Falló ber_init(), ¿control inválido?\n" +msgid "realm not found\n" +msgstr "reino no encontrado\n" -msgid "New Principal Password" -msgstr "Nueva contraseña principal" +msgid "Print debugging information" +msgstr "Imprimir la información de depuración" -msgid "Verify Principal Password" -msgstr "Verificar contraseña principal" +msgid "Debugging output" +msgstr "Salida de depuración" -msgid "Print as little as possible" -msgstr "Imprimir lo mínimo posible" +msgid "Remove all principals in this realm" +msgstr "Quite todos los principales en este ámbito" -msgid "Output only on errors" -msgstr "Solamente salida sobre errores" - -msgid "Contact this specific KDC Server" -msgstr "Contactar este servidor KDC específico" - -msgid "Server Name" -msgstr "Nombre de servidor" - -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)" - -msgid "File were to store the keytab information" -msgstr "Archivo para almacenar la información de tabla de claves" - -msgid "Encryption types to request" -msgstr "Solicitud de tipos de cifrado" - -msgid "Comma separated encryption types list" -msgstr "Lista de tipos de cifrado separados por coma" - -msgid "Show the list of permitted encryption types and exit" -msgstr "Mostrar la lista de los tipos cifrados permitidos y salir" - -msgid "Permitted Encryption Types" -msgstr "Tipos de cifrado permitidos" - -msgid "Asks for a non-random password to use for the principal" -msgstr "Pregunta por una contraseña no aleatoria para la principal" - -msgid "LDAP DN" -msgstr "LDAP DN" - -msgid "DN to bind as if not using kerberos" -msgstr "DN a vincular como si no usara kerberos" - -msgid "LDAP password" -msgstr "Contraseña LDAP" - -msgid "password to use if not using kerberos" -msgstr "Contraseña a usar si no usa kerberos" +msgid "Realm name" +msgstr "Nombre de reino " #, c-format -msgid "No system preferred enctypes ?!\n" -msgstr "¿Ningún sistema enctypes preferido?\n" +msgid "Closing keytab failed\n" +msgstr "Cierre de tabla de claves falló\n" #, c-format -msgid "Supported encryption types:\n" -msgstr "Tipos de cifrado suportado\n" +msgid "cannot open configuration file %s\n" +msgstr "no se puede abrir archivo de configuración %s\\n\n" #, c-format -msgid "Warning: failed to convert type (#%d)\n" -msgstr "Advertencia: Tipo para convertir falló (#%d)⏎\n" +msgid "cannot stat() configuration file %s\n" +msgstr "no puede stat () del archivo de configuración%s\n" #, c-format -msgid "Bind password required when using a bind DN.\n" -msgstr "Vincular contraseña requerida mediante un enlace DN.\n" +msgid "out of memory\n" +msgstr "sin Memoria\n" #, c-format +msgid "read error\n" +msgstr "Error de lectura\n" + +#, python-format +msgid "objectclass %s not found" +msgstr "clase objeto %s no encontrada" + +#, python-format +msgid "Retrieving CA status failed: %s" +msgstr "Falló la obtención del estado de CA: %s" + +msgid "Failed members" +msgstr "Miembros fallidos" + +msgid "Failed source hosts/hostgroups" +msgstr "Host o grupo de hosts origenes fallidos" + +msgid "Failed hosts/hostgroups" +msgstr "Host o grupo de Host fallidos" + +msgid "Failed users/groups" +msgstr "Usuario o grupos de usuario incorrectos" + +msgid "Failed service/service groups" +msgstr "Error en el/los servicio(s)" + +msgid "Failed to remove" +msgstr "Error al remover " + +msgid "Failed RunAs" +msgstr "Error al ejecutar como" + +msgid "Failed RunAsGroup" +msgstr "Erro al ejecutar grupo como" + +msgid "Failed profiles" +msgstr "Errores en los perfiles" + +msgid "Failed CAs" +msgstr "Error en CAs" + +msgid "Failed managedby" +msgstr "Falló managedby" + +msgid "Failed allowed to retrieve keytab" +msgstr "Falló permitir recuperar una KeyTab" + +msgid "Failed allowed to create keytab" +msgstr "Falló permitir crear una KeyTab" + +msgid "Failed targets" +msgstr "Error en Objetivos" + +msgid "Failed owners" +msgstr "Error en Propietarios" + +msgid "Delegation name" +msgstr "Nombre de delegación" + msgid "" -"Warning: salt types are not honored with randomized passwords (see opt. -P)\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 "" -"Advertencia: tipos salt no se aceptan con contraseñas aleatorias (ver opt.\n" +"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." -#, c-format -msgid "Invalid Service Principal Name\n" -msgstr "Nombre de servicio principal inválido\n" - -#, 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" - -#, c-format msgid "" -"Kerberos User Principal not found. Do you have a valid Credential Cache?\n" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." msgstr "" -"No se encontró usuario principal de kerberos. ¿Tiene una cache de credencial " -"válida?\n" +"Añadir un par atributo/valor. El formato es attr=value. El atributo debe ser " +"parte del esquema." -#, c-format -msgid "Failed to open Keytab\n" -msgstr "Fallo abrir clave de tablas.\n" +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." -#, c-format -msgid "Failed to create key material\n" -msgstr "Error al crear el material de clave\n" +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." -#, c-format -msgid "Failed to add key to the keytab\n" -msgstr "No se pudo agregar clave de la tabla de claves\n" +msgid "User-friendly description of action performed" +msgstr "Descripción sencilla de la acción realizada" -#, c-format -msgid "Failed to close the keytab\n" -msgstr "No se pudo cerrar la tabla de claves\n" +msgid "The primary_key value of the entry, e.g. 'jdoe' for a user" +msgstr "El valor de primary_key de la entrada, p.ej., «jperez» para un usuario" -#, c-format -msgid "Keytab successfully retrieved and stored in: %s\n" -msgstr "Tabla de claves recuperada y almacenada correctamente en:%s\n" +msgid "Members that could not be added" +msgstr "Miembros que no han podido ser añadidos" -msgid "Dict of I18N messages" -msgstr "Dictado de los mensajes regionales" +msgid "Number of members added" +msgstr "Cantidad de miembros añadidos" -msgid "Name of object to export" -msgstr "Nombre del objeto a exportar" +msgid "Continuous mode: Don't stop on errors." +msgstr "Modo continuo: No se detenga en los errores." -msgid "Name of method to export" -msgstr "Nombre del método para exportación" +msgid "List of deletions that failed" +msgstr "Lista de eliminaciones fallidas" -msgid "Name of command to export" -msgstr "Nombre de comando a exportar" +msgid "Time Limit" +msgstr "Tiempo límite" -msgid "Dict of JSON encoded IPA Objects" -msgstr "El dict de JSON ha codificado objetos IPA" +msgid "Size Limit" +msgstr "Tamaño límite" -msgid "Dict of JSON encoded IPA Methods" -msgstr "Métodos IPA codificados de Dict de JSON " +msgid "Primary key only" +msgstr "Sólo clave primaria" -msgid "Dict of JSON encoded IPA Commands" -msgstr "Dict de JSON comandos codificados IPA" +msgid "Number of entries returned" +msgstr "Cantidad de entradas devueltas" + +msgid "True if not all results were returned" +msgstr "Verdadero si no todos los resultados se devolvieron" + +msgid "Members that could not be removed" +msgstr "Miembros que no han podido ser eliminados" + +msgid "Number of members removed" +msgstr "Cantidad de miembros eliminados" + +msgid "Rights" +msgstr "Derechos" + +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." msgid "" "\n" @@ -986,21 +660,6 @@ msgstr "Duración máxima renovable (en segundos)" msgid "Modify Kerberos ticket policy." msgstr "Modificar entrada de política Kerberos." -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." - -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute\n" -"must be part of the schema." -msgstr "" -"Añadir un par atributo/valor. El formato es attr=value. El atributo debe ser " -"parte del esquema." - msgid "" "Delete an attribute/value pair. The option will be evaluated\n" "last, after all sets and adds." @@ -1008,369 +667,56 @@ msgstr "" "Borrar un par atributo/valor. La opción será evaluada al final, después de " "todos los ajustes y añadidos." -msgid "Rights" -msgstr "Derechos" - -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." - msgid "Reset Kerberos ticket policy to the default values." msgstr "Reajustar la entrada de política Kerberos a los valores por defecto." msgid "Display the current Kerberos ticket policy." msgstr "Mostrar la actual entrada de política Kerberos." -msgid "Range name" -msgstr "Nombre del intervalo" - -msgid "Range type" -msgstr "Tipo de intervalo" - -msgid "Delete an ID range." -msgstr "Eliminar un intervalo de ID." - -msgid "Continuous mode: Don't stop on errors." -msgstr "Modo continuo: No se detenga en los errores." - -msgid "Search for ranges." -msgstr "Buscar intervalos." - -msgid "Time Limit" -msgstr "Tiempo límite" - -msgid "Time limit of search in seconds" -msgstr "Tiempo máximo de búsqueda en segundos" - -msgid "Size Limit" -msgstr "Tamaño límite" - -msgid "Maximum number of entries returned" -msgstr "Cantidad máxima de entradas obtenidas" - -msgid "Primary key only" -msgstr "Sólo clave primaria" - -msgid "Username" -msgstr "Nombre de usuario" - -msgid "Password" -msgstr "Contraseña" - -msgid "Principal" -msgstr "Principal" - -msgid "Service principal" -msgstr " Búsqueda de servicios IPA" - -msgid "Certificate" -msgstr "Certificado" - -msgid "Base-64 encoded server certificate" -msgstr "Certificado del servidor codificado con base-64" - -msgid "PAC type" -msgstr "Tipo PAC" - -msgid "Keytab" -msgstr "Keytab" - -msgid "Add a new IPA new service." -msgstr "Añadir un nuevo servicio nuevo IPA." - -msgid "Force" -msgstr "Forzar" - -msgid "force principal name even if not in DNS" -msgstr "fuerza el nombre del prinicpal, aún si no se encuentra en DNS" - -msgid "Add hosts that can manage this service." -msgstr "Añadir hosts que pueden gestionar este servicio." - -msgid "Members that could not be added" -msgstr "Miembros que no han podido ser añadidos" - -msgid "Number of members added" -msgstr "Cantidad de miembros añadidos" - -msgid "Delete an IPA service." -msgstr "Borrar un servicio IPA." - -msgid "Disable the Kerberos key and SSL certificate of a service." -msgstr "Deshabilitar la clave Kerberos y el certificado SSL de un servicio." - -msgid "Search for IPA services." -msgstr "Buscar servicios IPA." - -msgid "host" -msgstr "host" - -msgid "Modify an existing IPA service." -msgstr "Modificar un servicio IPA existente." - -msgid "Remove hosts that can manage this service." -msgstr "Borrar hosts que puedan gestionar este servicio." - -msgid "Members that could not be removed" -msgstr "Miembros que no han podido ser eliminados" - -msgid "Number of members removed" -msgstr "Cantidad de miembros eliminados" - -msgid "Display information about an IPA service." -msgstr "Mostrar información sobre un servicio IPA." - -msgid "file to store certificate in" -msgstr "archivo para almacenar" - -msgid "Rule name" -msgstr "Nombre de la regla" - msgid "Description" msgstr "Descripción" -msgid "Enabled" -msgstr "Habilitado" +msgid "Group name" +msgstr "Nombre del grupo" -msgid "User category" -msgstr "Categoría de usuario" +msgid "GID" +msgstr "GID" -msgid "User category the rule applies to" -msgstr "Categoría de usuario al que se aplica la regla" +msgid "Group ID Number" +msgstr "Número de Identificación de Grupo" -msgid "Host category" -msgstr "Categoría del equipo" +msgid "User login" +msgstr "Ingreso de usuario" -msgid "Host category the rule applies to" -msgstr "Categoría del equipo al que se aplica la regla" +msgid "UID" +msgstr "UID" -msgid "Command category" -msgstr "Categoría de comandos" +msgid "Home directory" +msgstr "Directorio principal" -msgid "Command category the rule applies to" -msgstr "Categoría de comandos la regla se aplica a" +msgid "Login shell" +msgstr "Shell de ingreso" -msgid "RunAs User category" -msgstr "Categoría de Usuario RunAs" - -msgid "RunAs User category the rule applies to" -msgstr "RunAs Usuario categoría la regla aplica a " - -msgid "RunAs Group category" -msgstr "RunAs Grupo categoría" - -msgid "RunAs Group category the rule applies to" -msgstr "RunAs Grupo categoría la regla aplica a" - -msgid "Users" -msgstr "Usuarios" - -msgid "User Groups" -msgstr "Grupos de usuarios" - -msgid "Hosts" -msgstr "Equipos" - -msgid "Host Groups" -msgstr "Grupos de equipo" - -msgid "Sudo Allow Commands" -msgstr "Comandos Allow de sudo" - -msgid "Sudo Deny Commands" -msgstr "Comandos Deny de sudo" - -msgid "Sudo Allow Command Groups" -msgstr "Sudo Permitir Grupos de Comando" - -msgid "Sudo Deny Command Groups" -msgstr "Sudo Denegar Grupos de Comandos" - -msgid "RunAs Users" -msgstr "RunAs Usuarios" - -msgid "Run as a user" -msgstr "Ejecutar como un usuario" - -msgid "Groups of RunAs Users" -msgstr "Grupos de Usuarios RunAs" - -msgid "Run as any user within a specified group" -msgstr "Ejecutar como cualquier usuario dentro de un grupo especificado" - -msgid "External User" -msgstr "De usuarios externos" - -msgid "External User the rule applies to (sudorule-find only)" -msgstr "Usuario Externo la regla aplica a (sudorule-find sólo)" - -msgid "RunAs External User" -msgstr "RunAs de usuarios externos" - -msgid "External User the commands can run as (sudorule-find only)" -msgstr "Usuario Externo los comandos pueden correr como (sudorule-find sólo)" - -msgid "RunAs External Group" -msgstr "Grupo externo RunAs" - -msgid "External Group the commands can run as (sudorule-find only)" -msgstr "Grupo Externo los comandos pueden correr como (sudorule-find sólo)" - -msgid "Sudo Option" -msgstr "Opción de sudo" - -msgid "RunAs Groups" -msgstr "Grupos RunAs" - -msgid "Run with the gid of a specified POSIX group" -msgstr "Ejecutar con la gid de un grupo POSIX especificado" - -msgid "External host" -msgstr "Equipo externo" - -msgid "Create new Sudo Rule." -msgstr "Crear nueva Regla Sudo." - -msgid "Add commands and sudo command groups affected by Sudo Rule." -msgstr "Añadir comandos y grupos de comando sudo afectados por Regla Sudo." - -msgid "Add hosts and hostgroups affected by Sudo Rule." -msgstr "Añadir hosts y grupos de hosts afectados por Regla Sudo." - -msgid "Add an option to the Sudo Rule." -msgstr "Añadir una opción a la Regla Sudo." - -msgid "Add group for Sudo to execute as." -msgstr "Añadir grupo para Sudo a ejecutar como." - -msgid "Add users and groups for Sudo to execute as." -msgstr "Añadir usuarios y grupos para Sudo a ejecutar como." - -msgid "Add users and groups affected by Sudo Rule." -msgstr "Añadir usuarios y grupos afectados por Regla Sudo." - -msgid "Delete Sudo Rule." -msgstr "Borrar Regla Sudo." - -msgid "Disable a Sudo Rule." -msgstr "Deshabilitar Regla Sudo." - -msgid "Enable a Sudo Rule." -msgstr "Habilitar Regla Sudo." - -msgid "Search for Sudo Rule." -msgstr "Buscar Regla Sudo." - -msgid "Modify Sudo Rule." -msgstr "Modificar Regla Sudo." - -msgid "Remove commands and sudo command groups affected by Sudo Rule." -msgstr "Quitar comandos y grupos de comando sudo afectados por Regla Sudo." - -msgid "Remove hosts and hostgroups affected by Sudo Rule." -msgstr "Quitar hosts y grupos de hosts afectados por Regla Sudo." - -msgid "Remove an option from Sudo Rule." -msgstr "Quitar una opción de la Regla Sudo." - -msgid "Remove group for Sudo to execute as." -msgstr "Quitar grupo para Sudo a ejecutar como." - -msgid "Remove users and groups for Sudo to execute as." -msgstr "Quitar usuarios y grupos para Sudo a ejecutar como." - -msgid "Remove users and groups affected by Sudo Rule." -msgstr "Quitar usuarios y grupos afectados por Regla Sudo." - -msgid "Display Sudo Rule." -msgstr "Mostrar Regla Sudo." - -msgid "Sudo Command Group" -msgstr "Grupo de comando sudo" - -msgid "Group description" -msgstr "Descripción del grupo" - -msgid "Commands" -msgstr "Comandos" - -msgid "Sudo Command Groups" -msgstr "Grupos de comando sudo" - -msgid "Create new Sudo Command Group." -msgstr "Crear un nuevo Grupo de Comando Sudo." - -msgid "Add members to Sudo Command Group." -msgstr "Añadir miembros a Grupo de Comando Sudo." - -msgid "Delete Sudo Command Group." -msgstr "Borrado Grupo de Comando Sudo." - -msgid "Search for Sudo Command Groups." -msgstr "Buscar Grupos de Comando Sudo." - -msgid "Modify Sudo Command Group." -msgstr "Modificar Grupo de Comando Sudo." - -msgid "Remove members from Sudo Command Group." -msgstr "Quitar miembros de un Grupo de Comando Sudo." - -msgid "Display Sudo Command Group." -msgstr "Mostrar Grupo de Comando Sudo." - -msgid "Permission name" -msgstr "Nombre de permiso" - -msgid "Permissions" -msgstr "Permisos" - -msgid "Attributes" -msgstr "Atributos" - -msgid "Type" -msgstr "Tipo" - -msgid "Member of group" -msgstr "Miembro del grupo" - -msgid "Filter" -msgstr "Filtro" - -msgid "Legal LDAP filter (e.g. ou=Engineering)" -msgstr "Filtro legal LDAP (p.ej. ou=Ingeniería)" - -msgid "Subtree" -msgstr "Subárbol" - -msgid "Subtree to apply permissions to" -msgstr "Subárbol para aplicar permisos" - -msgid "Target group" -msgstr "Grupo elegido" - -msgid "Indirect Member of roles" -msgstr "Roles de miembros indirectos" - -msgid "Add a new permission." -msgstr "Añadir un nuevo permiso." - -msgid "Delete a permission." -msgstr "Borrar un permiso." - -msgid "Search for permissions." -msgstr "Buscar permisos." - -msgid "Modify a permission." -msgstr "Modificar un permiso." +msgid "SSH public key" +msgstr "Clave pública SSH" msgid "Rename" msgstr "Cambiar el nombre de" -msgid "Display information about a permission." -msgstr "Mostrar información sobre un permiso." +msgid "hosts" +msgstr "hosts" + +msgid "The hostname to register as" +msgstr "El nombre del equipo a ser registrado como" + +msgid "The IPA realm" +msgstr "El reinado IPA" + +msgid "Hardware platform of the host (e.g. Lenovo T61)" +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)" msgid "" "\n" @@ -1409,520 +755,6 @@ msgstr "" msgid "Enable or Disable Anonymous PKINIT." msgstr "Habilitar o Deshabilitar PKINIT Anónimo." -msgid "Ping a remote server." -msgstr "Hacer ping a un servidor remoto." - -msgid "Self-service name" -msgstr "Auto-servicio de nombres" - -msgid "Add a new self-service permission." -msgstr "Añadir un nuevo auto servicio de permiso." - -msgid "Delete a self-service permission." -msgstr "Borrar un auto servicio de permiso." - -msgid "Search for a self-service permission." -msgstr "Buscar un auto servicio de permiso." - -msgid "Modify a self-service permission." -msgstr "Modificar un auto servicio de permiso." - -msgid "Display information about a self-service permission." -msgstr "Mostrar información sobre un auto servicio de permiso." - -msgid "HBAC Rule" -msgstr "REgla HBAC" - -msgid "Host name" -msgstr "Nombre del equipo" - -msgid "A description of this host" -msgstr "Una descripción de este equipo" - -msgid "Locality" -msgstr "Localidad" - -msgid "Host locality (e.g. \"Baltimore, MD\")" -msgstr "Localidad del equipo (p.ej. \"Barrio latino, París\") " - -msgid "Location" -msgstr "Ubicación" - -msgid "Host location (e.g. \"Lab 2\")" -msgstr "Ubicación del equipo (p. ej. \"Laboratorio\")" - -msgid "Platform" -msgstr "Plataforma" - -msgid "Host hardware platform (e.g. \"Lenovo T61\")" -msgstr "Plataforma de hardware del equipo (p. ej. \"Lenovo T61\")" - -msgid "Operating system" -msgstr "Sistema operativo" - -msgid "Host operating system and version (e.g. \"Fedora 9\")" -msgstr "" -"Sistema operativo que utiliza el equipo y versión (p.ej. \"Fedora 11\")" - -msgid "User password" -msgstr "Contraseña de usuario" - -msgid "Password used in bulk enrollment" -msgstr "Contraseña utilizada en el registro bruto" - -msgid "Generate a random password to be used in bulk enrollment" -msgstr "Generar una contraseña aleatoria que se utilizará en la inscripción " - -msgid "Random password" -msgstr "Contraseña aleatoria" - -msgid "Principal name" -msgstr "Nombre principal" - -msgid "MAC address" -msgstr "Dirección MAC" - -msgid "SSH public key" -msgstr "Clave pública SSH" - -msgid "Member of host-groups" -msgstr "Miembro de los grupos de equipo" - -msgid "Roles" -msgstr " Roles" - -msgid "Member of netgroups" -msgstr "Miembros de netgroups" - -msgid "Add a new host." -msgstr "Añadir un n uevo host." - -msgid "force host name even if not in DNS" -msgstr "" -"fuerza el nombre del equipo anfitrión, incluso si no se encuentra en DNS" - -msgid "skip reverse DNS detection" -msgstr "Ignorar la detección inversa de DNS" - -msgid "IP Address" -msgstr "Dirección IP" - -msgid "Add the host to DNS with this IP address" -msgstr "Agregar el host de DNS con esta dirección IP" - -msgid "Add hosts that can manage this host." -msgstr "Añadir hosts que pueda manejar este host." - -msgid "Delete a host." -msgstr "Borrar un host." - -msgid "Remove entries from DNS" -msgstr "Eliminar entradas de DNS" - -msgid "Disable the Kerberos key, SSL certificate and all services of a host." -msgstr "" -"Deshabilitar la clave Kerberos, el certificado SSL y todos los servicios de " -"un host." - -msgid "Search for hosts." -msgstr "Buscar hosts." - -msgid "host group" -msgstr "grupo de host" - -msgid "netgroup" -msgstr "grupo de red" - -msgid "role" -msgstr "rol" - -msgid "HBAC rule" -msgstr "Regla HBAC" - -msgid "sudo rule" -msgstr "regla sudo" - -msgid "user" -msgstr "usuario" - -msgid "Modify information about a host." -msgstr "Modificar información sobre un host." - -msgid "Kerberos principal name for this host" -msgstr "Nombre del prinicpal de Kerberos para este equipo" - -msgid "Update DNS entries" -msgstr "Actualizar las entradas DNS" - -msgid "Remove hosts that can manage this host." -msgstr "Borrar hosts que puede manejar este host." - -msgid "Display information about a host." -msgstr "Mostrar información sobre un host." - -msgid "Service group name" -msgstr "" -" Desactivar la tecla de Kerberos, certificado SSL y todos los servicios " -"de un host." - -msgid "HBAC service group description" -msgstr "Servicios y grupos especificados" - -msgid "Member HBAC service" -msgstr "Miembro del servicio HBAC" - -msgid "Add a new HBAC service group." -msgstr "Añadir un nuevo grupo de servicio HBAC." - -msgid "Add members to an HBAC service group." -msgstr "Añadir miembros a un grupo de servicio HBAC." - -msgid "Delete an HBAC service group." -msgstr "Borrar un grupo de servicio HBAC." - -msgid "Search for an HBAC service group." -msgstr "Buscar un grupo de servicio HBAC." - -msgid "Modify an HBAC service group." -msgstr "Modificar un grupo de servicio HBAC." - -msgid "Remove members from an HBAC service group." -msgstr "Borrar miembros de un grupo de servicio HBAC." - -msgid "Display information about an HBAC service group." -msgstr "Mostrar información sobre un grupo de servicio HBAC." - -msgid "Nested Methods to execute" -msgstr "Métodos anidados para ejecutar" - -msgid "" -"\n" -"Misc plug-ins\n" -msgstr "" -"\n" -"Misc plug-ins\n" - -msgid "ACI name" -msgstr "Nombre de ACI" - -msgid "Permission" -msgstr "Permiso" - -msgid "Permission ACI grants access to" -msgstr "El permiso ACI permite el acceso a" - -msgid "User group" -msgstr "Grupo de usuarios" - -msgid "User group ACI grants access to" -msgstr "El grupo de usuarios ACI permite el acceso a" - -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)" - -msgid "Member of" -msgstr "Miembro de" - -msgid "Member of a group" -msgstr "Miembro de un grupo" - -msgid "Subtree to apply ACI to" -msgstr "Subárbol al que aplicar ACI" - -msgid "Group to apply ACI to" -msgstr "Grupo al que aplicar API" - -msgid "Target your own entry (self)" -msgstr "Dirija su propia entrada (usted)" - -msgid "Apply ACI to your own entry (self)" -msgstr "Aplique ACI a su propia entrada (usted)" - -msgid "ACI prefix" -msgstr "Prefijo ACI" - -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)" - -msgid "Test the ACI syntax but don't write anything" -msgstr "Probar la sintaxis pero no escribir nada" - -msgid "New ACI name" -msgstr " Nuevo nombre de ACI" - -msgid "Service name" -msgstr "% (Count) d HBAC servicios encontrados" - -msgid "HBAC service" -msgstr "Servicio HBAC" - -msgid "HBAC service description" -msgstr "Descripción de servicio HBAC" - -msgid "Add a new HBAC service." -msgstr "Añadir un nuevo servicio HBAC." - -msgid "Delete an existing HBAC service." -msgstr "Borrar un servicio HBAC existente." - -msgid "Search for HBAC services." -msgstr "Buscar un servicio HBAC." - -msgid "Modify an HBAC service." -msgstr "Modificar un servicio HBAC." - -msgid "Display information about an HBAC service." -msgstr "Mostrar información sobre un servicio HBAC." - -msgid "Migrate users and groups from DS to IPA." -msgstr "Migrar usuarios y grupos de DS a IPA." - -msgid "LDAP URI" -msgstr "LDAP URI" - -msgid "LDAP URI of DS server to migrate from" -msgstr "LDAP URI del servidor DS desde donde realizar la migración" - -msgid "bind password" -msgstr "asociar contraseña" - -msgid "Bind DN" -msgstr "Asociar DN" - -msgid "User container" -msgstr "Contenedor de usuario" - -msgid "Group container" -msgstr "Contenedor de grupoi" - -msgid "User object class" -msgstr "Clase de objeto de usuario" - -msgid "Group object class" -msgstr "Clase de objeto de grupo" - -msgid "Ignore user object class" -msgstr "Ignorar clase de objeto usuario" - -msgid "Ignore user attribute" -msgstr "Ignorar atributo de usuario" - -msgid "Ignore group object class" -msgstr "Ignorar clase de objeto grupo" - -msgid "Ignore group attribute" -msgstr "Ignorar atributo de grupo" - -msgid "Overwrite GID" -msgstr "Sobrescribir GID" - -msgid "" -"When migrating a group already existing in IPA domain overwrite the group " -"GID and report as success" -msgstr "" -"Cuando se migra un grupo que ya existe en el dominio IPA se sobrescribe el " -"GID de grupo e informa como conseguido" - -msgid "LDAP schema" -msgstr "Esquema LDAP" - -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" - -msgid "Continue" -msgstr "Continuar" - -msgid "" -"Continuous operation mode. Errors are reported but the process continues" -msgstr "" -"Modo de funcionamiento continuo. Se reportan errores, pero el proceso " -"continúa" - -msgid "Lists of objects migrated; categorized by type." -msgstr "Lista de objetos migrados; clasificados por tipo." - -msgid "Lists of objects that could not be migrated; categorized by type." -msgstr "Lista de objetos que no pueden ser migrados; categorizados por tipo." - -msgid "False if migration mode was disabled." -msgstr "\"False\", si el modo de migración fue inhabilitado." - -msgid "A description of this auto member rule" -msgstr "Una descripción de esta regla auto miembro" - -msgid "Automember Rule" -msgstr "Regla Automiembro" - -msgid "Grouping Type" -msgstr "Tipo de Agrupamiento" - -msgid "Grouping to which the rule applies" -msgstr "Agrupamiento al cual se aplican las reglas" - -msgid "Inclusive Regex" -msgstr "Regex inclusivo" - -msgid "Exclusive Regex" -msgstr "Regex exclusivo" - -msgid "Attribute Key" -msgstr "Atributo Clave" - -msgid "" -"Attribute to filter via regex. For example fqdn for a host, or manager for a " -"user" -msgstr "" -"Atributo a filtrar por medio de regex. Por ejemplo fqdn para un host o " -"gestor para un usuario" - -msgid "Conditions that could not be added" -msgstr "Condiciones que no pueden ser agregadas" - -msgid "Number of conditions added" -msgstr "Número de condiciones agregadas" - -msgid "Conditions that could not be removed" -msgstr "Condiciones que no pueden ser eliminadas" - -msgid "Number of conditions removed" -msgstr "Número de condiciones eliminadas" - -msgid "Sudo Command" -msgstr "Comando sudo " - -msgid "A description of this command" -msgstr "Una descripción de este comando " - -msgid "Create new Sudo Command." -msgstr "Crear un nuevo Comando Sudo." - -msgid "Delete Sudo Command." -msgstr "Borrar Comando Sudo." - -msgid "Search for Sudo Commands." -msgstr "Buscar Comandos Sudo." - -msgid "Modify Sudo Command." -msgstr "Modificar Comando Sudo." - -msgid "Display Sudo Command." -msgstr "Mostrar Comando Sudo." - -msgid "Key" -msgstr "Llave" - -msgid "Automount key name." -msgstr " Nombre de clave de montaje automático" - -msgid "Mount information" -msgstr "Información de montaje" - -msgid "description" -msgstr "descripción" - -msgid "Automount location name." -msgstr "Nombre de la ubicación de montaje automático." - -msgid "Map" -msgstr "Mapa" - -msgid "Automount map name." -msgstr " Nombre del mapa automount." - -msgid "Create a new automount key." -msgstr "Crear una nueva clave de automontaje." - -msgid "Delete an automount key." -msgstr "Borrar una clave de automontaje." - -msgid "Search for an automount key." -msgstr "Buscar una clave de automontaje." - -msgid "Modify an automount key." -msgstr "Modificar una clave de automontaje." - -msgid "New mount information" -msgstr "Nueva información de montaje" - -msgid "Display an automount key." -msgstr "Mostrar una clave de automontaje." - -msgid "Create a new automount location." -msgstr "Crear una nueva localización de automontaje." - -msgid "Delete an automount location." -msgstr "Borrar una localización de automontaje." - -msgid "Search for an automount location." -msgstr "Buscar una localización de automontaje." - -msgid "Display an automount location." -msgstr "Mostrar una localización de automontaje" - -msgid "Generate automount files for a specific location." -msgstr "Generar ficheros de automontaje para una localización específica." - -msgid "Create a new automount map." -msgstr "Crear un nuevo mapa de automontaje" - -msgid "Create a new indirect mount point." -msgstr "Crear un nuevo punto de montaje indirecto." - -msgid "Mount point" -msgstr "Punto de montaje" - -msgid "Parent map" -msgstr "Mapa del padre" - -msgid "Name of parent automount map (default: auto.master)." -msgstr "" -"Nombre del mapa de montaje automático de padre (por defecto: auto.master)." - -msgid "Delete an automount map." -msgstr "Borrar un mapa de automontaje." - -msgid "Search for an automount map." -msgstr "Buscar un mapa de automontaje." - -msgid "Modify an automount map." -msgstr "Modificar un mapa de automontaje" - -msgid "Display an automount map." -msgstr "Mostrar un mapa de automontaje" - -msgid "Delegation name" -msgstr "Nombre de delegación" - -msgid "Member user group" -msgstr "Miembro del grupo de usuarios" - -msgid "User group to apply delegation to" -msgstr "Grupo de usuarios para solicitar a la delegación" - -msgid "Add a new delegation." -msgstr "Añadir una nueva delegación." - -msgid "Delete a delegation." -msgstr "Borrar una delegación." - -msgid "Search for delegations." -msgstr "Buscar delegaciones." - -msgid "Modify a delegation." -msgstr "Modificar una delegación." - -msgid "Display information about a delegation." -msgstr "Mostrar información sobre una delegación." - msgid "" "\n" "Password policy\n" @@ -2091,236 +923,164 @@ msgstr "Usuario" msgid "Display effective policy for a specific user" msgstr "Ofrece la política efectiva para un determinado usuario" -msgid "User login" -msgstr "Ingreso de usuario" +msgid "Rule name" +msgstr "Nombre de la regla" -msgid "First name" -msgstr "Nombre" +msgid "Enabled" +msgstr "Habilitado" -msgid "Last name" -msgstr "Apellido" +msgid "User category" +msgstr "Categoría de usuario" -msgid "Full name" -msgstr "Nombre y apellidos" +msgid "User category the rule applies to" +msgstr "Categoría de usuario al que se aplica la regla" -msgid "Display name" -msgstr "Mostrar nombre" +msgid "Host category" +msgstr "Categoría del equipo" -msgid "Initials" -msgstr "Iniciales" +msgid "Host category the rule applies to" +msgstr "Categoría del equipo al que se aplica la regla" -msgid "Home directory" -msgstr "Directorio principal" +msgid "Command category" +msgstr "Categoría de comandos" -msgid "Login shell" -msgstr "Shell de ingreso" +msgid "Command category the rule applies to" +msgstr "Categoría de comandos la regla se aplica a" -msgid "Kerberos principal" -msgstr "Principal kerberos" +msgid "RunAs User category" +msgstr "Categoría de Usuario RunAs" -msgid "Email address" -msgstr "Dirección de correo electrónico" +msgid "RunAs User category the rule applies to" +msgstr "RunAs Usuario categoría la regla aplica a " -msgid "Prompt to set the user password" -msgstr "Solicita establecer la contraseña de usuario" +msgid "RunAs Group category" +msgstr "RunAs Grupo categoría" -msgid "UID" -msgstr "UID" +msgid "RunAs Group category the rule applies to" +msgstr "RunAs Grupo categoría la regla aplica a" -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)" +msgid "Users" +msgstr "Usuarios" -msgid "GID" -msgstr "GID" +msgid "User Groups" +msgstr "Grupos de usuarios" -msgid "Group ID Number" -msgstr "Número de Identificación de Grupo" +msgid "External User" +msgstr "De usuarios externos" -msgid "Street address" -msgstr "Dirección postal" +msgid "External User the rule applies to (sudorule-find only)" +msgstr "Usuario Externo la regla aplica a (sudorule-find sólo)" -msgid "City" -msgstr "Ciudad" +msgid "Hosts" +msgstr "Equipos" -msgid "State/Province" -msgstr "Estado / Provincia" +msgid "Host Groups" +msgstr "Grupos de equipo" -msgid "ZIP" -msgstr "Zona " +msgid "External host" +msgstr "Equipo externo" -msgid "Telephone Number" -msgstr "Número de teléfono" +msgid "Sudo Allow Commands" +msgstr "Comandos Allow de sudo" -msgid "Mobile Telephone Number" -msgstr "Número de teléfono celular" +msgid "Sudo Deny Commands" +msgstr "Comandos Deny de sudo" -msgid "Pager Number" -msgstr "Número de página" +msgid "Sudo Allow Command Groups" +msgstr "Sudo Permitir Grupos de Comando" -msgid "Fax Number" -msgstr "Número de fx" +msgid "Sudo Deny Command Groups" +msgstr "Sudo Denegar Grupos de Comandos" -msgid "Org. Unit" -msgstr "Unidad. org" +msgid "RunAs Users" +msgstr "RunAs Usuarios" -msgid "Job Title" -msgstr "Cargo" +msgid "Run as a user" +msgstr "Ejecutar como un usuario" -msgid "Manager" -msgstr "Manager" +msgid "Groups of RunAs Users" +msgstr "Grupos de Usuarios RunAs" -msgid "Car License" -msgstr "Licencia de conducción" +msgid "Run as any user within a specified group" +msgstr "Ejecutar como cualquier usuario dentro de un grupo especificado" -msgid "Account disabled" -msgstr "Cuenta inhabilitada " +msgid "RunAs External User" +msgstr "RunAs de usuarios externos" -msgid "Member of groups" -msgstr "Miembros de los grupos" +msgid "External User the commands can run as (sudorule-find only)" +msgstr "Usuario Externo los comandos pueden correr como (sudorule-find sólo)" -msgid "Kerberos keys available" -msgstr "Claves Kerberos disponibles" +msgid "RunAs Groups" +msgstr "Grupos RunAs" -msgid "Add a new user." -msgstr "Añadir un nuevo usuario." +msgid "Run with the gid of a specified POSIX group" +msgstr "Ejecutar con la gid de un grupo POSIX especificado" -msgid "Don't create user private group" -msgstr "No crear grupo privado de usuario" +msgid "RunAs External Group" +msgstr "Grupo externo RunAs" -msgid "Delete a user." -msgstr "Borrar un usuario." +msgid "External Group the commands can run as (sudorule-find only)" +msgstr "Grupo Externo los comandos pueden correr como (sudorule-find sólo)" -msgid "Disable a user account." -msgstr "Deshabilitar una cuenta de usuario." +msgid "Sudo Option" +msgstr "Opción de sudo" -msgid "Enable a user account." -msgstr "Habilitar una cuenta de usuario." +msgid "Create new Sudo Rule." +msgstr "Crear nueva Regla Sudo." -msgid "Search for users." -msgstr "Buscar usuarios." +msgid "Add commands and sudo command groups affected by Sudo Rule." +msgstr "Añadir comandos y grupos de comando sudo afectados por Regla Sudo." -msgid "Self" -msgstr "Self" +msgid "Add hosts and hostgroups affected by Sudo Rule." +msgstr "Añadir hosts y grupos de hosts afectados por Regla Sudo." -msgid "Display user record for current Kerberos principal" -msgstr "Muestra el registro del usuario para el principal de Kerberos actual" +msgid "Add an option to the Sudo Rule." +msgstr "Añadir una opción a la Regla Sudo." -msgid "group" -msgstr "grupo" +msgid "Add group for Sudo to execute as." +msgstr "Añadir grupo para Sudo a ejecutar como." -msgid "Modify a user." -msgstr "Modificar un usuario." +msgid "Add users and groups for Sudo to execute as." +msgstr "Añadir usuarios y grupos para Sudo a ejecutar como." -msgid "Display information about a user." -msgstr "Mostrar información sobre un usuario." +msgid "Add users and groups affected by Sudo Rule." +msgstr "Añadir usuarios y grupos afectados por Regla Sudo." -msgid "Group name" -msgstr "Nombre del grupo" +msgid "Delete Sudo Rule." +msgstr "Borrar Regla Sudo." -msgid "GID (use this option to set it manually)" -msgstr "GID (utilice esta opción para definirlo manualmente)" +msgid "Disable a Sudo Rule." +msgstr "Deshabilitar Regla Sudo." -msgid "Member users" -msgstr "Usuarios miembros" +msgid "Enable a Sudo Rule." +msgstr "Habilitar Regla Sudo." -msgid "Member groups" -msgstr "Grupos de miembros" +msgid "Search for Sudo Rule." +msgstr "Buscar Regla Sudo." -msgid "Indirect Member users" -msgstr "Usuarios indirectos miembros" +msgid "Modify Sudo Rule." +msgstr "Modificar Regla Sudo." -msgid "Indirect Member groups" -msgstr "Grupos de miembros indirectos" +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "Quitar comandos y grupos de comando sudo afectados por Regla Sudo." -msgid "Create a new group." -msgstr "Crear un grupo nuevo." +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "Quitar hosts y grupos de hosts afectados por Regla Sudo." -msgid "Create as a non-POSIX group" -msgstr " Crear como un grupo no POSIX" +msgid "Remove an option from Sudo Rule." +msgstr "Quitar una opción de la Regla Sudo." -msgid "Add members to a group." -msgstr "Agregar miembro a un grupo." +msgid "Remove group for Sudo to execute as." +msgstr "Quitar grupo para Sudo a ejecutar como." -msgid "Delete group." -msgstr "Eliminar grupo." +msgid "Remove users and groups for Sudo to execute as." +msgstr "Quitar usuarios y grupos para Sudo a ejecutar como." -msgid "Detach a managed group from a user." -msgstr "Desenganchar un grupo gestionado desde un usuario." +msgid "Remove users and groups affected by Sudo Rule." +msgstr "Quitar usuarios y grupos afectados por Regla Sudo." -msgid "Search for groups." -msgstr "Buscar grupos." - -msgid "search for private groups" -msgstr "Búsqueda de grupos privados" - -msgid "Modify a group." -msgstr "Modificar un grupo." - -msgid "change to a POSIX group" -msgstr "Cambiar a un grupo POSIX" - -msgid "Remove members from a group." -msgstr "Eliminar miembro desde un grupo." - -msgid "Display information about a named group." -msgstr "Mostrar información sobre un grupo denominado." - -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" -"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. EJEMPLOS:\n" -"Para restablecer su contraseña:\n" -" ipa passwd tuser1\n" -"\n" -" Para cambiar la contraseña de otro usuario:\n" -" ipa passwd tuser1\n" - -msgid "Set a user's password." -msgstr "Fijar una contraseña de usuario." - -msgid "New Password" -msgstr "Nueva Contraseña" - -msgid "Current Password" -msgstr "Contraseña Actual" - -msgid "The hostname to register as" -msgstr "El nombre del equipo a ser registrado como" - -msgid "The IPA realm" -msgstr "El reinado IPA" - -msgid "Hardware platform of the host (e.g. Lenovo T61)" -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)" +msgid "Display Sudo Rule." +msgstr "Mostrar Regla Sudo." msgid "Role name" msgstr "Nombre de rol" @@ -2328,6 +1088,12 @@ msgstr "Nombre de rol" msgid "A description of this role-group" msgstr "Una descripción de este grupo de roles" +msgid "Member users" +msgstr "Usuarios miembros" + +msgid "Member groups" +msgstr "Grupos de miembros" + msgid "Member hosts" msgstr "Equipos miembro" @@ -2337,6 +1103,9 @@ msgstr "Grupos de equipo miembro" msgid "Privileges" msgstr " Objeto de servicio." +msgid "Member services" +msgstr "Servicios de miembros" + msgid "Add a new role." msgstr "Añadir un nuevo rol." @@ -2349,6 +1118,9 @@ msgstr "Añadir privilegios a un rol." msgid "privilege" msgstr "privilegio" +msgid "privileges" +msgstr "privilegios" + msgid "Number of privileges added" msgstr "Número de privilegios agregados" @@ -2373,42 +1145,6 @@ msgstr "Número de privilegios eliminados" msgid "Display information about a role." msgstr "Mostrar información sobre un rol." -msgid "Host-group" -msgstr "Grupo de equipo" - -msgid "Name of host-group" -msgstr "Nombre del grupo de equipo" - -msgid "A description of this host-group" -msgstr "Una descripción de este grupo de equipo" - -msgid "Indirect Member hosts" -msgstr "Hosts de miembros indirectos" - -msgid "Indirect Member host-groups" -msgstr "Miembros indirectos de host-groups" - -msgid "Add a new hostgroup." -msgstr "Añadir un nuevo grupo de host." - -msgid "Add members to a hostgroup." -msgstr "Añadir miembros a un grupo de host." - -msgid "Delete a hostgroup." -msgstr "Borrar un grupo de host." - -msgid "Search for hostgroups." -msgstr "Buscar grupos de host." - -msgid "Modify a hostgroup." -msgstr "Modificar un grupo de host." - -msgid "Remove members from a hostgroup." -msgstr "Borrar miembros de un grupo de host." - -msgid "Display information about a hostgroup." -msgstr "Mostrar información sobre un grupo de host." - msgid "Netgroup name" msgstr "Nombre de grupo de red" @@ -2424,6 +1160,9 @@ msgstr "ID unico de IPA" msgid "Member netgroups" msgstr " Miembros de netgroups" +msgid "Member of netgroups" +msgstr "Miembros de netgroups" + msgid "Indirect Member netgroups" msgstr "Miembros indirectos netgroups" @@ -2445,6 +1184,21 @@ msgstr "Buscar un grupo de red." msgid "search for managed groups" msgstr "buscar grupos gestionados" +msgid "netgroup" +msgstr "grupo de red" + +msgid "user" +msgstr "usuario" + +msgid "group" +msgstr "grupo" + +msgid "host" +msgstr "host" + +msgid "host group" +msgstr "grupo de host" + msgid "Modify a netgroup." msgstr "Modificar un grupo de red." @@ -2454,230 +1208,107 @@ msgstr "Borrar miembros de un grupo de red." msgid "Display information about a netgroup." msgstr "Mostrar información sobre un grupo de red." -msgid "Record name" -msgstr "Nombre de registro" +msgid "Permissions" +msgstr "Permisos" -msgid "Time to live" -msgstr "Tiempo para abandonar" +msgid "Attributes" +msgstr "Atributos" -msgid "Class" -msgstr "Clase" +msgid "Member user group" +msgstr "Miembro del grupo de usuarios" -msgid "DNS class" -msgstr "Clase DNS" +msgid "User group to apply delegation to" +msgstr "Grupo de usuarios para solicitar a la delegación" -msgid "Records" -msgstr "Registros" +msgid "User group" +msgstr "Grupo de usuarios" -msgid "Record type" -msgstr "Tipo de registro" +msgid "User group ACI grants access to" +msgstr "El grupo de usuarios ACI permite el acceso a" -msgid "Record data" -msgstr "Registrar datos" +msgid "Add a new delegation." +msgstr "Añadir una nueva delegación." -msgid "Subtype" -msgstr "Subtipo" +msgid "Delete a delegation." +msgstr "Borrar una delegación." -msgid "Hostname" -msgstr "Nombre del equipo anfitrión" +msgid "True means the operation was successful" +msgstr "«Verdadero» significa que la operación fue exitosa" -msgid "Certificate Type" -msgstr "Tipo de certificado" +msgid "Search for delegations." +msgstr "Buscar delegaciones." -msgid "Key Tag" -msgstr "Etiqueta de clave" +msgid "Modify a delegation." +msgstr "Modificar una delegación." -msgid "Algorithm" -msgstr "Algoritmo" +msgid "Display information about a delegation." +msgstr "Mostrar información sobre una delegación." -msgid "Certificate/CRL" -msgstr "Certificado/CRL" +msgid "Range name" +msgstr "Nombre del intervalo" -msgid "Target" -msgstr "Meta" +msgid "Range type" +msgstr "Tipo de intervalo" -msgid "Degrees Latitude" -msgstr "Latitud en grados" +msgid "Delete an ID range." +msgstr "Eliminar un intervalo de ID." -msgid "Minutes Latitude" -msgstr "Latitud en minutos" +msgid "Search for ranges." +msgstr "Buscar intervalos." -msgid "Seconds Latitude" -msgstr "Latitud en segundos" +msgid "Principal" +msgstr "Principal" -msgid "Direction Latitude" -msgstr "Latitud de dirección" +msgid "Service principal" +msgstr " Búsqueda de servicios IPA" -msgid "Altitude" -msgstr "Altitud" +msgid "Certificate" +msgstr "Certificado" -msgid "Size" -msgstr "Tamaño" +msgid "Base-64 encoded server certificate" +msgstr "Certificado del servidor codificado con base-64" -msgid "Horizontal Precision" -msgstr "Precisión horizontal" +msgid "PAC type" +msgstr "Tipo PAC" -msgid "Vertical Precision" -msgstr "Precisión vertical" +msgid "Roles" +msgstr " Roles" -msgid "Order" -msgstr "Orden" +msgid "Keytab" +msgstr "Keytab" -msgid "Preference" -msgstr "Preferencia" +msgid "Add a new IPA new service." +msgstr "Añadir un nuevo servicio nuevo IPA." -msgid "Service" -msgstr "Servicio" +msgid "Force" +msgstr "Forzar" -msgid "Regular Expression" -msgstr "Expresión regular" +msgid "force principal name even if not in DNS" +msgstr "fuerza el nombre del prinicpal, aún si no se encuentra en DNS" -msgid "Replacement" -msgstr "Reemplazo" +msgid "Add hosts that can manage this service." +msgstr "Añadir hosts que pueden gestionar este servicio." -msgid "Port" -msgstr "Puerto" +msgid "Delete an IPA service." +msgstr "Borrar un servicio IPA." -msgid "Fingerprint Type" -msgstr "Tipo de huella digital" +msgid "Disable the Kerberos key and SSL certificate of a service." +msgstr "Deshabilitar la clave Kerberos y el certificado SSL de un servicio." -msgid "Fingerprint" -msgstr "Huella digital" +msgid "Search for IPA services." +msgstr "Buscar servicios IPA." -msgid "Text Data" -msgstr "Datos de texto" +msgid "Modify an existing IPA service." +msgstr "Modificar un servicio IPA existente." -msgid "Zone name" -msgstr "Nombre de la zona" +msgid "Remove hosts that can manage this service." +msgstr "Borrar hosts que puedan gestionar este servicio." -msgid "Zone name (FQDN)" -msgstr "Nombre de la zona (FQDN)" +msgid "Display information about an IPA service." +msgstr "Mostrar información sobre un servicio IPA." -msgid "Reverse zone IP network" -msgstr "Zona reversa de red IP" - -msgid "IP network to create reverse zone name from" -msgstr "Red IP para crear un nombre de zona reversa desde" - -msgid "Authoritative nameserver" -msgstr "Nombre de servidor autoritativo" - -msgid "Authoritative nameserver domain name" -msgstr "Nombre de dominio servidor de nombre autorizado" - -msgid "Administrator e-mail address" -msgstr "Correo-e de administrador" - -msgid "SOA serial" -msgstr "Serie SOA" - -msgid "SOA record serial number" -msgstr "Número de serie de registro SOA" - -msgid "SOA refresh" -msgstr "Actualizar SOA" - -msgid "SOA record refresh time" -msgstr "registro SOA tiempo de actualización" - -msgid "SOA retry" -msgstr "Reintentar SOA" - -msgid "SOA record retry time" -msgstr "tiempo de reintento de " - -msgid "SOA expire" -msgstr "Expirar SOA" - -msgid "SOA record expire time" -msgstr "tiempo de expiración de registro SOA" - -msgid "SOA minimum" -msgstr "Mínimo SOA" - -msgid "How long should negative responses be cached" -msgstr "¿Por cuánto tiempo las respuestas negativas deben guardarse en cache?" - -msgid "SOA class" -msgstr "Clase SOA" - -msgid "SOA record class" -msgstr "Clase de registro SOA " - -msgid "BIND update policy" -msgstr "Política de actualización de BIND" - -msgid "Active zone" -msgstr "Activar zona" - -msgid "Is zone active?" -msgstr "¿Está la zona activa?" - -msgid "Dynamic update" -msgstr "Actualización dinámica" - -msgid "Allow dynamic updates." -msgstr "Permitir actualizaciones dinámicas." - -msgid "Allow query" -msgstr "Permitir consulta" - -msgid "Allow transfer" -msgstr "Permitir transferencia" - -msgid "Resolve a host name in DNS." -msgstr "Resolver un nombre de host en DNS." - -msgid "Add new DNS resource record." -msgstr "Añadir nuevo registro de recurso DNS." - -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" - -msgid "Structured" -msgstr "Estructurado" - -msgid "Delete DNS resource record." -msgstr "Borrar un registro de recurso DNS." - -msgid "Delete all associated records" -msgstr "Eliminar todos los registros asociados" - -msgid "Search for DNS resources." -msgstr "Buscar recursos DNS." - -msgid "Modify a DNS resource record." -msgstr "Modificar un registro de recurso DNS." - -msgid "Display DNS resource." -msgstr "Mostrar un recurso DNS." - -msgid "Create new DNS zone (SOA record)." -msgstr "Crear nueva zona DNS (registro SOA)." - -msgid "Delete DNS zone (SOA record)." -msgstr "Borrar zona DNS (registro SOA)." - -msgid "Disable DNS Zone." -msgstr "Deshabilitar Zona DNS." - -msgid "Enable DNS Zone." -msgstr "Habilitar Zona DNS." - -msgid "Search for DNS zones (SOA records)." -msgstr "Buscar zonas DNS (registros SOA)." - -msgid "Forward zones only" -msgstr "Zonas de reenvío sólo" - -msgid "Search for forward zones only" -msgstr "Buscar zonas de reenvío sólo" - -msgid "Modify DNS zone (SOA record)." -msgstr "Modificar zona DNS (registro SOA)." - -msgid "Display information about a DNS zone (SOA record)." -msgstr "Mostrar información sobre una zona DNS (registro SOA)." +msgid "file to store certificate in" +msgstr "archivo para almacenar" msgid "Rule type" msgstr "Tipo de regla" @@ -2736,40 +1367,6 @@ msgstr "Borrar usuarios y grupos de una regla HBAC." msgid "Display the properties of an HBAC rule." msgstr "Mostrar las propiedades de una regla HBAC." -msgid "Simulate use of Host-based access controls" -msgstr "Simular el uso de controles de acceso basados en Host" - -msgid "Target host" -msgstr "Host objetivo" - -msgid "Rules to test. If not specified, --enabled is assumed" -msgstr "Reglas para probar. Si no se especifica, - se asume que habilitado" - -msgid "Hide details which rules are matched, not matched, or invalid" -msgstr "" -"Esconder detalles de que reglas coinciden, no coinciden o son no válidas" - -msgid "Include all enabled IPA rules into test [default]" -msgstr "Incluir todas las reglas IPA habilitadas en la prueba [por defecto]" - -msgid "Include all disabled IPA rules into test" -msgstr "Incluir todas las reglas IPA deshabilitadas en la prueba" - -msgid "Warning" -msgstr "Aviso" - -msgid "Matched rules" -msgstr "Reglas coincidentes" - -msgid "Not matched rules" -msgstr "Reglas no coincidentes" - -msgid "Non-existent or invalid rules" -msgstr "Reglas no existentes o no válidas" - -msgid "Result of simulation" -msgstr "Resultado de la simulación" - msgid "" "\n" "Privileges\n" @@ -2835,6 +1432,9 @@ msgstr "Añadir permisos a un privilegio." msgid "permission" msgstr "permiso" +msgid "permissions" +msgstr "permisos" + msgid "Number of permissions added" msgstr "Número de permisos añadidos" @@ -2856,55 +1456,532 @@ msgstr "Número de permisos eliminados" msgid "Display information about a privilege." msgstr "Mostrar información sobre un privilegio." -msgid "Take a revoked certificate off hold." -msgstr "Tomar un certificado revocado de espera." - -msgid "Serial number" -msgstr "Número de serie" - -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" - -msgid "Submit a certificate signing request." -msgstr "Enviar una petición de firma de certificado." - -msgid "CSR" -msgstr "CSR" - -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)" - -msgid "automatically add the principal if it doesn't exist" -msgstr "si no existe, agregar automáticamente el principal" - -msgid "Revoke a certificate." -msgstr "Revocar un certificado." - -msgid "Reason" -msgstr "Motivo" - -msgid "Reason for revoking the certificate (0-10)" -msgstr "Motivo por el cual el certificado ha sido revocado (0-10)" - -msgid "Retrieve an existing certificate." -msgstr "Recuperar un certificado existente." - -msgid "Output filename" -msgstr "Nombre de archivo de salida" - -msgid "File to store the certificate in." -msgstr "Archivo para almacenar el certificado" - -msgid "Check the status of a certificate signing request." -msgstr "Verificar el estado de una solicitud de firma de certificado." - -msgid "Request id" -msgstr "Id de la petición" - msgid "Domain" msgstr "Dominio" +msgid "Service name" +msgstr "% (Count) d HBAC servicios encontrados" + +msgid "HBAC service" +msgstr "Servicio HBAC" + +msgid "HBAC service description" +msgstr "Descripción de servicio HBAC" + +msgid "Add a new HBAC service." +msgstr "Añadir un nuevo servicio HBAC." + +msgid "Delete an existing HBAC service." +msgstr "Borrar un servicio HBAC existente." + +msgid "Search for HBAC services." +msgstr "Buscar un servicio HBAC." + +msgid "Modify an HBAC service." +msgstr "Modificar un servicio HBAC." + +msgid "Display information about an HBAC service." +msgstr "Mostrar información sobre un servicio HBAC." + +msgid "First name" +msgstr "Nombre" + +msgid "Last name" +msgstr "Apellido" + +msgid "Full name" +msgstr "Nombre y apellidos" + +msgid "Display name" +msgstr "Mostrar nombre" + +msgid "Initials" +msgstr "Iniciales" + +msgid "Kerberos principal" +msgstr "Principal kerberos" + +msgid "Email address" +msgstr "Dirección de correo electrónico" + +msgid "Password" +msgstr "Contraseña" + +msgid "Prompt to set the user password" +msgstr "Solicita establecer la contraseña de usuario" + +msgid "Random password" +msgstr "Contraseña aleatoria" + +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)" + +msgid "Street address" +msgstr "Dirección postal" + +msgid "City" +msgstr "Ciudad" + +msgid "State/Province" +msgstr "Estado / Provincia" + +msgid "ZIP" +msgstr "Zona " + +msgid "Telephone Number" +msgstr "Número de teléfono" + +msgid "Mobile Telephone Number" +msgstr "Número de teléfono celular" + +msgid "Pager Number" +msgstr "Número de página" + +msgid "Fax Number" +msgstr "Número de fx" + +msgid "Org. Unit" +msgstr "Unidad. org" + +msgid "Job Title" +msgstr "Cargo" + +msgid "Manager" +msgstr "Manager" + +msgid "Car License" +msgstr "Licencia de conducción" + +msgid "Class" +msgstr "Clase" + +msgid "Member of groups" +msgstr "Miembros de los grupos" + +msgid "Kerberos keys available" +msgstr "Claves Kerberos disponibles" + +msgid "role" +msgstr "rol" + +msgid "HBAC rule" +msgstr "Regla HBAC" + +msgid "sudo rule" +msgstr "regla sudo" + +msgid "Server" +msgstr "Servidor" + +msgid "" +"\n" +"Misc plug-ins\n" +msgstr "" +"\n" +"Misc plug-ins\n" + +msgid "Show environment variables." +msgstr "Mostrar variables de entorno." + +msgid "Forward to server instead of running locally" +msgstr "Reenvía al servidor en lugar de ejecutarse localmente" + +msgid "" +"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." + +msgid "Dictionary mapping variable name to value" +msgstr "Nombre de la variable de mapeo de dicionario a valorizar " + +msgid "Total number of variables env (>= count)" +msgstr "Cantidad total de variables env (>= count)" + +msgid "Number of variables returned (<= total)" +msgstr "Cantidad de variables devueltas (<= total)" + +msgid "Show all loaded plugins." +msgstr "Mostrar todos los plugins cargados." + +msgid "Number of plugins loaded" +msgstr "Cantidad de complementos cargados" + +msgid "Type" +msgstr "Tipo" + +msgid "Disabled" +msgstr "Desactivado" + +msgid "Key" +msgstr "Llave" + +msgid "Algorithm" +msgstr "Algoritmo" + +msgid "Dict of I18N messages" +msgstr "Dictado de los mensajes regionales" + +msgid "Name of object to export" +msgstr "Nombre del objeto a exportar" + +msgid "Name of method to export" +msgstr "Nombre del método para exportación" + +msgid "Name of command to export" +msgstr "Nombre de comando a exportar" + +msgid "Dict of JSON encoded IPA Objects" +msgstr "El dict de JSON ha codificado objetos IPA" + +msgid "Dict of JSON encoded IPA Methods" +msgstr "Métodos IPA codificados de Dict de JSON " + +msgid "Dict of JSON encoded IPA Commands" +msgstr "Dict de JSON comandos codificados IPA" + +msgid "A description of this auto member rule" +msgstr "Una descripción de esta regla auto miembro" + +msgid "Automember Rule" +msgstr "Regla Automiembro" + +msgid "Grouping Type" +msgstr "Tipo de Agrupamiento" + +msgid "Grouping to which the rule applies" +msgstr "Agrupamiento al cual se aplican las reglas" + +msgid "Inclusive Regex" +msgstr "Regex inclusivo" + +msgid "Exclusive Regex" +msgstr "Regex exclusivo" + +msgid "Attribute Key" +msgstr "Atributo Clave" + +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a " +"user" +msgstr "" +"Atributo a filtrar por medio de regex. Por ejemplo fqdn para un host o " +"gestor para un usuario" + +msgid "Conditions that could not be added" +msgstr "Condiciones que no pueden ser agregadas" + +msgid "Number of conditions added" +msgstr "Número de condiciones agregadas" + +msgid "Conditions that could not be removed" +msgstr "Condiciones que no pueden ser eliminadas" + +msgid "Number of conditions removed" +msgstr "Número de condiciones eliminadas" + +msgid "Permission name" +msgstr "Nombre de permiso" + +msgid "Subtree" +msgstr "Subárbol" + +msgid "Subtree to apply permissions to" +msgstr "Subárbol para aplicar permisos" + +msgid "Member of group" +msgstr "Miembro del grupo" + +msgid "Target group" +msgstr "Grupo elegido" + +msgid "Indirect Member of roles" +msgstr "Roles de miembros indirectos" + +msgid "Add a new permission." +msgstr "Añadir un nuevo permiso." + +msgid "Delete a permission." +msgstr "Borrar un permiso." + +msgid "Search for permissions." +msgstr "Buscar permisos." + +msgid "Modify a permission." +msgstr "Modificar un permiso." + +msgid "Display information about a permission." +msgstr "Mostrar información sobre un permiso." + +msgid "Service group name" +msgstr "" +" Desactivar la tecla de Kerberos, certificado SSL y todos los servicios " +"de un host." + +msgid "HBAC service group description" +msgstr "Servicios y grupos especificados" + +msgid "Member HBAC service" +msgstr "Miembro del servicio HBAC" + +msgid "Add a new HBAC service group." +msgstr "Añadir un nuevo grupo de servicio HBAC." + +msgid "Add members to an HBAC service group." +msgstr "Añadir miembros a un grupo de servicio HBAC." + +msgid "Delete an HBAC service group." +msgstr "Borrar un grupo de servicio HBAC." + +msgid "Search for an HBAC service group." +msgstr "Buscar un grupo de servicio HBAC." + +msgid "Modify an HBAC service group." +msgstr "Modificar un grupo de servicio HBAC." + +msgid "Remove members from an HBAC service group." +msgstr "Borrar miembros de un grupo de servicio HBAC." + +msgid "Display information about an HBAC service group." +msgstr "Mostrar información sobre un grupo de servicio HBAC." + +msgid "Self-service name" +msgstr "Auto-servicio de nombres" + +msgid "Add a new self-service permission." +msgstr "Añadir un nuevo auto servicio de permiso." + +msgid "Delete a self-service permission." +msgstr "Borrar un auto servicio de permiso." + +msgid "Search for a self-service permission." +msgstr "Buscar un auto servicio de permiso." + +msgid "Modify a self-service permission." +msgstr "Modificar un auto servicio de permiso." + +msgid "Display information about a self-service permission." +msgstr "Mostrar información sobre un auto servicio de permiso." + +msgid "ACI name" +msgstr "Nombre de ACI" + +msgid "Permission" +msgstr "Permiso" + +msgid "Permission ACI grants access to" +msgstr "El permiso ACI permite el acceso a" + +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)" + +msgid "Member of" +msgstr "Miembro de" + +msgid "Member of a group" +msgstr "Miembro de un grupo" + +msgid "Filter" +msgstr "Filtro" + +msgid "Legal LDAP filter (e.g. ou=Engineering)" +msgstr "Filtro legal LDAP (p.ej. ou=Ingeniería)" + +msgid "Subtree to apply ACI to" +msgstr "Subárbol al que aplicar ACI" + +msgid "Group to apply ACI to" +msgstr "Grupo al que aplicar API" + +msgid "Target your own entry (self)" +msgstr "Dirija su propia entrada (usted)" + +msgid "Apply ACI to your own entry (self)" +msgstr "Aplique ACI a su propia entrada (usted)" + +msgid "ACI prefix" +msgstr "Prefijo ACI" + +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)" + +msgid "Test the ACI syntax but don't write anything" +msgstr "Probar la sintaxis pero no escribir nada" + +msgid "New ACI name" +msgstr " Nuevo nombre de ACI" + +msgid "Server name" +msgstr "Nombre del servidor" + +msgid "IPA server hostname" +msgstr "Nombre de host del servidor IPA" + +msgid "Managed suffixes" +msgstr "Sufijos gestionados" + +msgid "Min domain level" +msgstr "Nivel de dominio Min" + +msgid "Minimum domain level" +msgstr "Nivel mínimo de dominio" + +msgid "Max domain level" +msgstr "Nivel de dominio Max" + +msgid "Maximum domain level" +msgstr "Nivel máximo de dominio" + +msgid "Delete IPA server." +msgstr "Eliminar servidor IPA." + +msgid "Search for IPA servers." +msgstr "Buscar servidores IPA." + +msgid "Show IPA server." +msgstr "Mostrar servidor IPA." + +msgid "Host name" +msgstr "Nombre del equipo" + +msgid "A description of this host" +msgstr "Una descripción de este equipo" + +msgid "Locality" +msgstr "Localidad" + +msgid "Host locality (e.g. \"Baltimore, MD\")" +msgstr "Localidad del equipo (p.ej. \"Barrio latino, París\") " + +msgid "Location" +msgstr "Ubicación" + +msgid "Host location (e.g. \"Lab 2\")" +msgstr "Ubicación del equipo (p. ej. \"Laboratorio\")" + +msgid "Platform" +msgstr "Plataforma" + +msgid "Host hardware platform (e.g. \"Lenovo T61\")" +msgstr "Plataforma de hardware del equipo (p. ej. \"Lenovo T61\")" + +msgid "Operating system" +msgstr "Sistema operativo" + +msgid "Host operating system and version (e.g. \"Fedora 9\")" +msgstr "" +"Sistema operativo que utiliza el equipo y versión (p.ej. \"Fedora 11\")" + +msgid "User password" +msgstr "Contraseña de usuario" + +msgid "Password used in bulk enrollment" +msgstr "Contraseña utilizada en el registro bruto" + +msgid "Generate a random password to be used in bulk enrollment" +msgstr "Generar una contraseña aleatoria que se utilizará en la inscripción " + +msgid "Principal name" +msgstr "Nombre principal" + +msgid "MAC address" +msgstr "Dirección MAC" + +msgid "Member of host-groups" +msgstr "Miembro de los grupos de equipo" + +msgid "Add a new host." +msgstr "Añadir un n uevo host." + +msgid "force host name even if not in DNS" +msgstr "" +"fuerza el nombre del equipo anfitrión, incluso si no se encuentra en DNS" + +msgid "skip reverse DNS detection" +msgstr "Ignorar la detección inversa de DNS" + +msgid "IP Address" +msgstr "Dirección IP" + +msgid "Add the host to DNS with this IP address" +msgstr "Agregar el host de DNS con esta dirección IP" + +msgid "Add hosts that can manage this host." +msgstr "Añadir hosts que pueda manejar este host." + +msgid "Delete a host." +msgstr "Borrar un host." + +msgid "Remove entries from DNS" +msgstr "Eliminar entradas de DNS" + +msgid "Disable the Kerberos key, SSL certificate and all services of a host." +msgstr "" +"Deshabilitar la clave Kerberos, el certificado SSL y todos los servicios de " +"un host." + +msgid "Search for hosts." +msgstr "Buscar hosts." + +msgid "Modify information about a host." +msgstr "Modificar información sobre un host." + +msgid "Kerberos principal name for this host" +msgstr "Nombre del prinicpal de Kerberos para este equipo" + +msgid "Update DNS entries" +msgstr "Actualizar las entradas DNS" + +msgid "Remove hosts that can manage this host." +msgstr "Borrar hosts que puede manejar este host." + +msgid "Display information about a host." +msgstr "Mostrar información sobre un host." + +msgid "Host-group" +msgstr "Grupo de equipo" + +msgid "Name of host-group" +msgstr "Nombre del grupo de equipo" + +msgid "A description of this host-group" +msgstr "Una descripción de este grupo de equipo" + +msgid "Indirect Member hosts" +msgstr "Hosts de miembros indirectos" + +msgid "Indirect Member host-groups" +msgstr "Miembros indirectos de host-groups" + +msgid "Add a new hostgroup." +msgstr "Añadir un nuevo grupo de host." + +msgid "Add members to a hostgroup." +msgstr "Añadir miembros a un grupo de host." + +msgid "Delete a hostgroup." +msgstr "Borrar un grupo de host." + +msgid "Search for hostgroups." +msgstr "Buscar grupos de host." + +msgid "Modify a hostgroup." +msgstr "Modificar un grupo de host." + +msgid "Remove members from a hostgroup." +msgstr "Borrar miembros de un grupo de host." + +msgid "Display information about a hostgroup." +msgstr "Mostrar información sobre un grupo de host." + msgid "Maximum username length" msgstr "Largo máximo para nombre de usuario" @@ -2932,18 +2009,9 @@ msgstr "Dominio de correo electrónico por defecto" msgid "Search time limit" msgstr "Buscar límite de tiempo" -msgid "" -"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" -msgstr "" -"Máxima cantidad de tiempo (segundos) parab una búsqueda (> 0, o -1 para " -"ilimitado)" - msgid "Search size limit" msgstr "Límite del tamaño de la búsqueda" -msgid "Maximum number of records to search (-1 is unlimited)" -msgstr "Máximo número de registros a buscar (-1 es ilimitado)" - msgid "User search fields" msgstr "Campos de búsqueda de usuario" @@ -2996,63 +2064,663 @@ msgstr "Modificar opciones de configuración." msgid "Show the current configuration." msgstr "Muestra la configuración actual" -msgid "hosts" -msgstr "hosts" +msgid "Simulate use of Host-based access controls" +msgstr "Simular el uso de controles de acceso basados en Host" -msgid "Failed owners" -msgstr "Error en Propietarios" +msgid "Target host" +msgstr "Host objetivo" -msgid "Member services" -msgstr "Servicios de miembros" +msgid "Service" +msgstr "Servicio" -msgid "Server name" -msgstr "Nombre del servidor" +msgid "Rules to test. If not specified, --enabled is assumed" +msgstr "Reglas para probar. Si no se especifica, - se asume que habilitado" -msgid "IPA server hostname" -msgstr "Nombre de host del servidor IPA" +msgid "Hide details which rules are matched, not matched, or invalid" +msgstr "" +"Esconder detalles de que reglas coinciden, no coinciden o son no válidas" -msgid "Min domain level" -msgstr "Nivel de dominio Min" +msgid "Include all enabled IPA rules into test [default]" +msgstr "Incluir todas las reglas IPA habilitadas en la prueba [por defecto]" -msgid "Minimum domain level" -msgstr "Nivel mínimo de dominio" +msgid "Include all disabled IPA rules into test" +msgstr "Incluir todas las reglas IPA deshabilitadas en la prueba" -msgid "Max domain level" -msgstr "Nivel de dominio Max" +msgid "Warning" +msgstr "Aviso" -msgid "Maximum domain level" -msgstr "Nivel máximo de dominio" +msgid "Matched rules" +msgstr "Reglas coincidentes" -msgid "Delete IPA server." -msgstr "Eliminar servidor IPA." +msgid "Not matched rules" +msgstr "Reglas no coincidentes" -msgid "Search for IPA servers." -msgstr "Buscar servidores IPA." +msgid "Non-existent or invalid rules" +msgstr "Reglas no existentes o no válidas" -msgid "Show IPA server." -msgstr "Mostrar servidor IPA." +msgid "Result of simulation" +msgstr "Resultado de la simulación" -msgid "Server" -msgstr "Servidor" +msgid "Migrate users and groups from DS to IPA." +msgstr "Migrar usuarios y grupos de DS a IPA." -msgid "privileges" -msgstr "privilegios" +msgid "LDAP URI" +msgstr "LDAP URI" -msgid "Disabled" -msgstr "Desactivado" +msgid "LDAP URI of DS server to migrate from" +msgstr "LDAP URI del servidor DS desde donde realizar la migración" -msgid "permissions" -msgstr "permisos" +msgid "bind password" +msgstr "asociar contraseña" + +msgid "Bind DN" +msgstr "Asociar DN" + +msgid "User container" +msgstr "Contenedor de usuario" + +msgid "Group container" +msgstr "Contenedor de grupoi" + +msgid "User object class" +msgstr "Clase de objeto de usuario" + +msgid "Group object class" +msgstr "Clase de objeto de grupo" + +msgid "Ignore user object class" +msgstr "Ignorar clase de objeto usuario" + +msgid "Ignore user attribute" +msgstr "Ignorar atributo de usuario" + +msgid "Ignore group object class" +msgstr "Ignorar clase de objeto grupo" + +msgid "Ignore group attribute" +msgstr "Ignorar atributo de grupo" + +msgid "Overwrite GID" +msgstr "Sobrescribir GID" + +msgid "" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" +msgstr "" +"Cuando se migra un grupo que ya existe en el dominio IPA se sobrescribe el " +"GID de grupo e informa como conseguido" + +msgid "LDAP schema" +msgstr "Esquema LDAP" + +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" + +msgid "Continue" +msgstr "Continuar" + +msgid "" +"Continuous operation mode. Errors are reported but the process continues" +msgstr "" +"Modo de funcionamiento continuo. Se reportan errores, pero el proceso " +"continúa" + +msgid "Lists of objects migrated; categorized by type." +msgstr "Lista de objetos migrados; clasificados por tipo." + +msgid "Lists of objects that could not be migrated; categorized by type." +msgstr "Lista de objetos que no pueden ser migrados; categorizados por tipo." + +msgid "False if migration mode was disabled." +msgstr "\"False\", si el modo de migración fue inhabilitado." + +msgid "HBAC Rule" +msgstr "REgla HBAC" + +msgid "Sudo Command Group" +msgstr "Grupo de comando sudo" + +msgid "Group description" +msgstr "Descripción del grupo" + +msgid "Commands" +msgstr "Comandos" + +msgid "Sudo Command Groups" +msgstr "Grupos de comando sudo" + +msgid "Create new Sudo Command Group." +msgstr "Crear un nuevo Grupo de Comando Sudo." + +msgid "Add members to Sudo Command Group." +msgstr "Añadir miembros a Grupo de Comando Sudo." + +msgid "Delete Sudo Command Group." +msgstr "Borrado Grupo de Comando Sudo." + +msgid "Search for Sudo Command Groups." +msgstr "Buscar Grupos de Comando Sudo." + +msgid "Modify Sudo Command Group." +msgstr "Modificar Grupo de Comando Sudo." + +msgid "Remove members from Sudo Command Group." +msgstr "Quitar miembros de un Grupo de Comando Sudo." + +msgid "Display Sudo Command Group." +msgstr "Mostrar Grupo de Comando Sudo." + +msgid "Account disabled" +msgstr "Cuenta inhabilitada " + +msgid "Add a new user." +msgstr "Añadir un nuevo usuario." + +msgid "Don't create user private group" +msgstr "No crear grupo privado de usuario" + +msgid "Delete a user." +msgstr "Borrar un usuario." + +msgid "Disable a user account." +msgstr "Deshabilitar una cuenta de usuario." + +msgid "Enable a user account." +msgstr "Habilitar una cuenta de usuario." + +msgid "Search for users." +msgstr "Buscar usuarios." + +msgid "Self" +msgstr "Self" + +msgid "Display user record for current Kerberos principal" +msgstr "Muestra el registro del usuario para el principal de Kerberos actual" + +msgid "Modify a user." +msgstr "Modificar un usuario." + +msgid "Display information about a user." +msgstr "Mostrar información sobre un usuario." + +msgid "Automount key name." +msgstr " Nombre de clave de montaje automático" + +msgid "Mount information" +msgstr "Información de montaje" + +msgid "description" +msgstr "descripción" + +msgid "Automount location name." +msgstr "Nombre de la ubicación de montaje automático." + +msgid "Map" +msgstr "Mapa" + +msgid "Automount map name." +msgstr " Nombre del mapa automount." + +msgid "Create a new automount key." +msgstr "Crear una nueva clave de automontaje." + +msgid "Delete an automount key." +msgstr "Borrar una clave de automontaje." + +msgid "Search for an automount key." +msgstr "Buscar una clave de automontaje." + +msgid "Modify an automount key." +msgstr "Modificar una clave de automontaje." + +msgid "New mount information" +msgstr "Nueva información de montaje" + +msgid "Display an automount key." +msgstr "Mostrar una clave de automontaje." + +msgid "Create a new automount location." +msgstr "Crear una nueva localización de automontaje." + +msgid "Delete an automount location." +msgstr "Borrar una localización de automontaje." + +msgid "Search for an automount location." +msgstr "Buscar una localización de automontaje." + +msgid "Display an automount location." +msgstr "Mostrar una localización de automontaje" + +msgid "Generate automount files for a specific location." +msgstr "Generar ficheros de automontaje para una localización específica." + +msgid "Create a new automount map." +msgstr "Crear un nuevo mapa de automontaje" + +msgid "Create a new indirect mount point." +msgstr "Crear un nuevo punto de montaje indirecto." + +msgid "Mount point" +msgstr "Punto de montaje" + +msgid "Parent map" +msgstr "Mapa del padre" + +msgid "Name of parent automount map (default: auto.master)." +msgstr "" +"Nombre del mapa de montaje automático de padre (por defecto: auto.master)." + +msgid "Delete an automount map." +msgstr "Borrar un mapa de automontaje." + +msgid "Search for an automount map." +msgstr "Buscar un mapa de automontaje." + +msgid "Modify an automount map." +msgstr "Modificar un mapa de automontaje" + +msgid "Display an automount map." +msgstr "Mostrar un mapa de automontaje" + +msgid "Nested Methods to execute" +msgstr "Métodos anidados para ejecutar" msgid "Subject" msgstr "Asunto" -msgid "Managed suffixes" -msgstr "Sufijos gestionados" +msgid "Reason" +msgstr "Motivo" -#, python-format -msgid "Certificate(s) stored in file '%(file)s'" -msgstr "Certificados(s) almacenados en el archivo '%(file)s'" +msgid "Reason for revoking the certificate (0-10)" +msgstr "Motivo por el cual el certificado ha sido revocado (0-10)" + +msgid "Take a revoked certificate off hold." +msgstr "Tomar un certificado revocado de espera." + +msgid "Serial number" +msgstr "Número de serie" + +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" + +msgid "Submit a certificate signing request." +msgstr "Enviar una petición de firma de certificado." + +msgid "CSR" +msgstr "CSR" + +msgid "automatically add the principal if it doesn't exist" +msgstr "si no existe, agregar automáticamente el principal" + +msgid "Revoke a certificate." +msgstr "Revocar un certificado." + +msgid "Retrieve an existing certificate." +msgstr "Recuperar un certificado existente." + +msgid "Output filename" +msgstr "Nombre de archivo de salida" + +msgid "File to store the certificate in." +msgstr "Archivo para almacenar el certificado" + +msgid "Check the status of a certificate signing request." +msgstr "Verificar el estado de una solicitud de firma de certificado." + +msgid "Request id" +msgstr "Id de la petición" + +msgid "Ping a remote server." +msgstr "Hacer ping a un servidor remoto." + +msgid "GID (use this option to set it manually)" +msgstr "GID (utilice esta opción para definirlo manualmente)" + +msgid "Indirect Member users" +msgstr "Usuarios indirectos miembros" + +msgid "Indirect Member groups" +msgstr "Grupos de miembros indirectos" + +msgid "Create a new group." +msgstr "Crear un grupo nuevo." + +msgid "Create as a non-POSIX group" +msgstr " Crear como un grupo no POSIX" + +msgid "Add members to a group." +msgstr "Agregar miembro a un grupo." + +msgid "Delete group." +msgstr "Eliminar grupo." + +msgid "Detach a managed group from a user." +msgstr "Desenganchar un grupo gestionado desde un usuario." + +msgid "Search for groups." +msgstr "Buscar grupos." + +msgid "search for private groups" +msgstr "Búsqueda de grupos privados" + +msgid "Modify a group." +msgstr "Modificar un grupo." + +msgid "change to a POSIX group" +msgstr "Cambiar a un grupo POSIX" + +msgid "Remove members from a group." +msgstr "Eliminar miembro desde un grupo." + +msgid "Display information about a named group." +msgstr "Mostrar información sobre un grupo denominado." + +msgid "Sudo Command" +msgstr "Comando sudo " + +msgid "A description of this command" +msgstr "Una descripción de este comando " + +msgid "Create new Sudo Command." +msgstr "Crear un nuevo Comando Sudo." + +msgid "Delete Sudo Command." +msgstr "Borrar Comando Sudo." + +msgid "Search for Sudo Commands." +msgstr "Buscar Comandos Sudo." + +msgid "Modify Sudo Command." +msgstr "Modificar Comando Sudo." + +msgid "Display Sudo Command." +msgstr "Mostrar Comando Sudo." + +msgid "Zone name" +msgstr "Nombre de la zona" + +msgid "Zone name (FQDN)" +msgstr "Nombre de la zona (FQDN)" + +msgid "Reverse zone IP network" +msgstr "Zona reversa de red IP" + +msgid "IP network to create reverse zone name from" +msgstr "Red IP para crear un nombre de zona reversa desde" + +msgid "Active zone" +msgstr "Activar zona" + +msgid "Is zone active?" +msgstr "¿Está la zona activa?" + +msgid "Record name" +msgstr "Nombre de registro" + +msgid "Time to live" +msgstr "Tiempo para abandonar" + +msgid "Records" +msgstr "Registros" + +msgid "Record type" +msgstr "Tipo de registro" + +msgid "Record data" +msgstr "Registrar datos" + +msgid "Subtype" +msgstr "Subtipo" + +msgid "Hostname" +msgstr "Nombre del equipo anfitrión" + +msgid "Certificate Type" +msgstr "Tipo de certificado" + +msgid "Key Tag" +msgstr "Etiqueta de clave" + +msgid "Certificate/CRL" +msgstr "Certificado/CRL" + +msgid "Target" +msgstr "Meta" + +msgid "Degrees Latitude" +msgstr "Latitud en grados" + +msgid "Minutes Latitude" +msgstr "Latitud en minutos" + +msgid "Seconds Latitude" +msgstr "Latitud en segundos" + +msgid "Direction Latitude" +msgstr "Latitud de dirección" + +msgid "Altitude" +msgstr "Altitud" + +msgid "Size" +msgstr "Tamaño" + +msgid "Horizontal Precision" +msgstr "Precisión horizontal" + +msgid "Vertical Precision" +msgstr "Precisión vertical" + +msgid "Order" +msgstr "Orden" + +msgid "Preference" +msgstr "Preferencia" + +msgid "Regular Expression" +msgstr "Expresión regular" + +msgid "Replacement" +msgstr "Reemplazo" + +msgid "Port" +msgstr "Puerto" + +msgid "Fingerprint Type" +msgstr "Tipo de huella digital" + +msgid "Fingerprint" +msgstr "Huella digital" + +msgid "Text Data" +msgstr "Datos de texto" + +msgid "Authoritative nameserver" +msgstr "Nombre de servidor autoritativo" + +msgid "Authoritative nameserver domain name" +msgstr "Nombre de dominio servidor de nombre autorizado" + +msgid "Administrator e-mail address" +msgstr "Correo-e de administrador" + +msgid "SOA serial" +msgstr "Serie SOA" + +msgid "SOA record serial number" +msgstr "Número de serie de registro SOA" + +msgid "SOA refresh" +msgstr "Actualizar SOA" + +msgid "SOA record refresh time" +msgstr "registro SOA tiempo de actualización" + +msgid "SOA retry" +msgstr "Reintentar SOA" + +msgid "SOA record retry time" +msgstr "tiempo de reintento de " + +msgid "SOA expire" +msgstr "Expirar SOA" + +msgid "SOA record expire time" +msgstr "tiempo de expiración de registro SOA" + +msgid "SOA minimum" +msgstr "Mínimo SOA" + +msgid "How long should negative responses be cached" +msgstr "¿Por cuánto tiempo las respuestas negativas deben guardarse en cache?" + +msgid "BIND update policy" +msgstr "Política de actualización de BIND" + +msgid "Dynamic update" +msgstr "Actualización dinámica" + +msgid "Allow dynamic updates." +msgstr "Permitir actualizaciones dinámicas." + +msgid "Allow query" +msgstr "Permitir consulta" + +msgid "Allow transfer" +msgstr "Permitir transferencia" + +msgid "Add new DNS resource record." +msgstr "Añadir nuevo registro de recurso DNS." + +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" + +msgid "Structured" +msgstr "Estructurado" + +msgid "Delete DNS resource record." +msgstr "Borrar un registro de recurso DNS." + +msgid "Delete all associated records" +msgstr "Eliminar todos los registros asociados" + +msgid "Search for DNS resources." +msgstr "Buscar recursos DNS." + +msgid "Modify a DNS resource record." +msgstr "Modificar un registro de recurso DNS." + +msgid "Display DNS resource." +msgstr "Mostrar un recurso DNS." + +msgid "Create new DNS zone (SOA record)." +msgstr "Crear nueva zona DNS (registro SOA)." + +msgid "Delete DNS zone (SOA record)." +msgstr "Borrar zona DNS (registro SOA)." + +msgid "Disable DNS Zone." +msgstr "Deshabilitar Zona DNS." + +msgid "Enable DNS Zone." +msgstr "Habilitar Zona DNS." + +msgid "Search for DNS zones (SOA records)." +msgstr "Buscar zonas DNS (registros SOA)." + +msgid "Forward zones only" +msgstr "Zonas de reenvío sólo" + +msgid "Search for forward zones only" +msgstr "Buscar zonas de reenvío sólo" + +msgid "Modify DNS zone (SOA record)." +msgstr "Modificar zona DNS (registro SOA)." + +msgid "Display information about a DNS zone (SOA record)." +msgstr "Mostrar información sobre una zona DNS (registro SOA)." + +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" +"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. EJEMPLOS:\n" +"Para restablecer su contraseña:\n" +" ipa passwd tuser1\n" +"\n" +" Para cambiar la contraseña de otro usuario:\n" +" ipa passwd tuser1\n" + +msgid "Set a user's password." +msgstr "Fijar una contraseña de usuario." + +msgid "New Password" +msgstr "Nueva Contraseña" + +msgid "Current Password" +msgstr "Contraseña Actual" + +msgid "Resolve a host name in DNS." +msgstr "Resolver un nombre de host en DNS." + +msgid "Time limit of search in seconds" +msgstr "Tiempo máximo de búsqueda en segundos" + +msgid "Maximum number of entries returned" +msgstr "Cantidad máxima de entradas obtenidas" + +msgid "" +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" +msgstr "" +"Máxima cantidad de tiempo (segundos) parab una búsqueda (> 0, o -1 para " +"ilimitado)" + +msgid "Maximum number of records to search (-1 is unlimited)" +msgstr "Máximo número de registros a buscar (-1 es ilimitado)" + +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)" + +msgid "Username" +msgstr "Nombre de usuario" + +msgid "DNS class" +msgstr "Clase DNS" + +msgid "SOA class" +msgstr "Clase SOA" + +msgid "SOA record class" +msgstr "Clase de registro SOA " #, python-format msgid "Enabled Sudo Rule \"%s\"" @@ -3062,9 +2730,23 @@ msgstr "Regla Sudo Habilitada “%s”" msgid "Disabled Sudo Rule \"%s\"" msgstr "Regla Sudo Deshabilitada “%s”" +#, python-format +msgid "Certificate(s) stored in file '%(file)s'" +msgstr "Certificados(s) almacenados en el archivo '%(file)s'" + msgid "cannot specify both raw certificate and file" msgstr "no puede especificar un certificado RAW y un archivo" +#, python-format +msgid "Profile configuration stored in file '%(file)s'" +msgstr "Perfil de configuración guardado en el archivo '%(file)s'" + +msgid "Failed to add" +msgstr "Fallo al añadir" + +msgid "Servers details:" +msgstr "Detalles de los servidores:" + msgid "" "Migration mode is disabled.\n" "Use 'ipa config-mod --enable-migration=TRUE' to enable it." @@ -3085,12 +2767,6 @@ msgstr "" "necesitan registrarse en https://your.domain/ipa/migration/ antes de\n" "poder utilizar sus respectivas cuentas Kerberos." -msgid "Data" -msgstr "Datos" - -msgid "Failed to add" -msgstr "Fallo al añadir" - msgid "maps not connected to /etc/auto.master:" msgstr "mapa no conectado a /etc/auto.master" @@ -3156,19 +2832,20 @@ msgstr "Llaves duplicadas omitidas" msgid "Skipped %(key)s" msgstr "%(key)s omitida" -msgid "" -"\n" -"EXAMPLES:\n" -msgstr "" -"\n" -"EJEMPLOS:\n" +msgid "Data" +msgstr "Datos" -msgid "Servers details:" -msgstr "Detalles de los servidores:" +msgid "Unrevoked" +msgstr "No revocado" -#, python-format -msgid "Profile configuration stored in file '%(file)s'" -msgstr "Perfil de configuración guardado en el archivo '%(file)s'" +msgid "Error" +msgstr "Error" + +msgid "Input filename" +msgstr "Entrada nombre de archivo" + +msgid "File to load the certificate from." +msgstr "Archivo desde donde cargar el certificado" msgid "Please choose a type of DNS resource record to be added" msgstr "Por favor seleccione un tipo de origen de DNS para ser agregado" @@ -3233,92 +2910,16 @@ msgstr "El servidor revisará los \"DNS forwarder(s)\"." msgid "This may take some time, please wait ..." msgstr "Esto puede tomar un poco mas de tiempo. Por favor espere ..." -msgid "Unrevoked" -msgstr "No revocado" - -msgid "Error" -msgstr "Error" - -msgid "Input filename" -msgstr "Entrada nombre de archivo" - -msgid "File to load the certificate from." -msgstr "Archivo desde donde cargar el certificado" - -msgid "Failed members" -msgstr "Miembros fallidos" - -msgid "Failed source hosts/hostgroups" -msgstr "Host o grupo de hosts origenes fallidos" - -msgid "Failed hosts/hostgroups" -msgstr "Host o grupo de Host fallidos" - -msgid "Failed users/groups" -msgstr "Usuario o grupos de usuario incorrectos" - -msgid "Failed service/service groups" -msgstr "Error en el/los servicio(s)" - -msgid "Failed to remove" -msgstr "Error al remover " - -msgid "Failed RunAs" -msgstr "Error al ejecutar como" - -msgid "Failed RunAsGroup" -msgstr "Erro al ejecutar grupo como" - -msgid "Failed profiles" -msgstr "Errores en los perfiles" - -msgid "Failed CAs" -msgstr "Error en CAs" - -msgid "Failed managedby" -msgstr "Falló managedby" - -msgid "Failed allowed to retrieve keytab" -msgstr "Falló permitir recuperar una KeyTab" - -msgid "Failed allowed to create keytab" -msgstr "Falló permitir crear una KeyTab" - -msgid "Failed targets" -msgstr "Error en Objetivos" - -msgid "Out of memory\n" -msgstr "¡Memoria insuficiente!\n" - -msgid "Warning unrecognized encryption type.\n" -msgstr "Precaución tipo de encriptación no reconocido.\n" - -msgid "Warning unrecognized salt type.\n" -msgstr "Advertencia de tipo de sal no reconocido.\n" - -msgid "Out of memory!?\n" -msgstr "" -"¡Memoria insuficiente!\n" +msgid "" "\n" - -msgid "Enctype comparison failed!\n" -msgstr "¡Falló comparación de Enctype!\n" - -msgid "Failed to create random key!\n" -msgstr "Falló la creación de clave aleatoria\n" - -msgid "Failed to create key!\n" -msgstr "¡Falló la creación de clave!\n" - -msgid "Bad or unsupported salt type.\n" -msgstr "Tipo de sal malo o no soportado.\n" - -msgid "Hello world" -msgstr "Hola mundo" +"EXAMPLES:\n" +msgstr "" +"\n" +"EJEMPLOS:\n" #, python-format -msgid "must equal %r" -msgstr "debe ser igual a %r" +msgid "Unknown option: %(option)s" +msgstr "Opción desconocida: %(option)s" #, python-format msgid "%s: RADIUS proxy server not found" @@ -3331,6 +2932,22 @@ msgstr "Servidor proxy RADIUS con nombre \"%s\" ya existe" msgid "must be at least 1" msgstr "debe ser al menos 1" +#, python-format +msgid "must equal %r" +msgstr "debe ser igual a %r" + +msgid "Hello world" +msgstr "Hola mundo" + +msgid "Unknown" +msgstr "Desconocido" + +msgid "domain is not configured" +msgstr "el dominio no está configurado" + +msgid "SID is not valid" +msgstr "el SID no es válido" + #, python-format msgid "all masters must have %(role)s role enabled" msgstr "todos los maestros deben tener el rol %(role)s habilitado" @@ -3339,11 +2956,26 @@ msgstr "todos los maestros deben tener el rol %(role)s habilitado" msgid "must have %(role)s role enabled" msgstr "debe tener el rol %(role)s habilitado" -msgid "domain is not configured" -msgstr "el dominio no está configurado" +msgid "Request must be a dict" +msgstr "La petición debe ser un diccionario" -msgid "SID is not valid" -msgstr "el SID no es válido" +msgid "Request is missing \"method\"" +msgstr "La petición está con \"method\" desaparecido" + +msgid "Request is missing \"params\"" +msgstr "La petición está con \"params\" desaparecido" + +msgid "params must be a list" +msgstr "params debe ser una lista" + +msgid "params must contain [args, options]" +msgstr "params debe contener [args, options]" + +msgid "params[0] (aka args) must be a list" +msgstr "params[0] (aka args) debe ser una lista" + +msgid "params[1] (aka options) must be a dict" +msgstr "params[1] (aka options) debe ser un diccionario" #, python-format msgid "" @@ -3372,6 +3004,410 @@ msgid "Topology does not allow server %(server)s to replicate with servers:" msgstr "" "La topologia no permite al servidor %(server)s replicar con servidores:" +#, python-format +msgid "member %s" +msgstr "miembro %s" + +msgid "roles" +msgstr "roles" + +msgid "kerberos ticket policy settings" +msgstr "ajustes de la entrada de política kerberos" + +msgid "Kerberos Ticket Policy" +msgstr " Política de tiquete de Kerberos" + +msgid "pkinit" +msgstr "pkinit" + +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" +" " + +msgid "operation not defined" +msgstr "operación no definida" + +#, python-format +msgid "not allowed to perform operation: %s" +msgstr "no está permitido llevar a cabo la operación: %s" + +msgid "No such virtual command" +msgstr "Ningún comando virtual" + +#, 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)" + +msgid "password policy" +msgstr "política de contraseña" + +msgid "password policies" +msgstr "políticas de contraseña" + +msgid "Password Policies" +msgstr "Políticas de Contraseña" + +msgid "Password Policy" +msgstr "Directiva de contraseñas" + +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." + +msgid "cannot delete global password policy" +msgstr "no puede borrar la Política global de contraseña" + +msgid "priority cannot be set on global policy" +msgstr "la prioridad no puede ser definida en una plítica global" + +msgid "this option has been deprecated." +msgstr "esta opción ha quedado obsoleta." + +msgid "sudo rules" +msgstr "reglas sudo" + +msgid "Sudo Rules" +msgstr "Reglas Sudo" + +msgid "Sudo Rule" +msgstr "Regla Sudo" + +#, python-format +msgid "Added Sudo Rule \"%(value)s\"" +msgstr "Añadida Regla Sudo “%(value)s”" + +#, python-format +msgid "Deleted Sudo Rule \"%(value)s\"" +msgstr "Borrada Regla Sudo “%(value)s”" + +#, python-format +msgid "Modified Sudo Rule \"%(value)s\"" +msgstr "Regla Sudo Modificada “%(value)s”" + +msgid "users" +msgstr "usuarios" + +#, python-format +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "%(count)d Regla Sudo emparejada" +msgstr[1] "%(count)d Reglas Sudo emparejadas" + +msgid "Role" +msgstr "Rol" + +#, python-format +msgid "Added role \"%(value)s\"" +msgstr "Rol agregado \"%(value)s\"" + +#, python-format +msgid "Deleted role \"%(value)s\"" +msgstr "Rol eliminado \"%(value)s\"" + +#, python-format +msgid "Modified role \"%(value)s\"" +msgstr "Rol modificado \"%(value)s\"" + +#, 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" + +msgid "Name" +msgstr "Nombre" + +msgid "netgroups" +msgstr "grupos de red" + +msgid "Netgroups" +msgstr "Grupos de red" + +msgid "Netgroup" +msgstr "Grupo de red" + +#, python-format +msgid "Added netgroup \"%(value)s\"" +msgstr "\"%(value)s\"netgroup añadido" + +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" +msgstr "" +"grupo de host con nombre “%s” ya existe. Los grupos de nombres y los grupos " +"de red comparten un espacio de nombre común" + +#, python-format +msgid "Deleted netgroup \"%(value)s\"" +msgstr "%(value)s\" de netgroup eliminados" + +#, python-format +msgid "Modified netgroup \"%(value)s\"" +msgstr "netgroup modificado \"%(value)s\"" + +#, 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" + +msgid "delegation" +msgstr "delegación" + +msgid "delegations" +msgstr "delegaciones" + +msgid "Delegations" +msgstr "Delegaciones" + +msgid "Delegation" +msgstr "Delegación" + +msgid "ACI" +msgstr "ACI" + +#, python-format +msgid "Added delegation \"%(value)s\"" +msgstr "Delegación añadida \"%(value)s\"" + +#, python-format +msgid "Deleted delegation \"%(value)s\"" +msgstr "Delegación eliminada \"%(value)s\"" + +#, python-format +msgid "Modified delegation \"%(value)s\"" +msgstr "Delegación modificada \"%(value)s\"" + +#, 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" + +msgid "ID Ranges" +msgstr "Intervalos de ID" + +msgid "ID Range" +msgstr "Intervalo de ID" + +msgid "local domain range" +msgstr "intervalo de dominios locales" + +msgid "Active Directory domain range" +msgstr "Intervalo de dominios de Active Directory" + +#, python-format +msgid "Added ID range \"%(value)s\"" +msgstr "Se añadió el intervalo de ID «%(value)s»" + +#, python-format +msgid "Deleted ID range \"%(value)s\"" +msgstr "Se eliminó el intervalo de ID «%(value)s»" + +msgid "service" +msgstr "servicio" + +msgid "services" +msgstr "servicios" + +msgid "Serial Number" +msgstr "Número de serie" + +msgid "Serial Number (hex)" +msgstr "N.º de serie (hex.)" + +msgid "Issuer" +msgstr "Emisor" + +msgid "Not Before" +msgstr "No antes de" + +msgid "Not After" +msgstr "No luego de" + +msgid "Fingerprint (SHA1)" +msgstr "Huella digital (SHA1)" + +msgid "Revocation reason" +msgstr "Motivo de la revocación" + +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "Ha sido agregado el servicio \"%(value)s\"" + +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "Ha sido eliminado el servicio \"%(value)s\"" + +#, python-format +msgid "Modified service \"%(value)s\"" +msgstr "Ha sido modificado el servicio \"%(value)s\"" + +#, 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" + +#, python-format +msgid "Disabled service \"%(value)s\"" +msgstr "Servicio inhabilitado \"%(value)s\"" + +msgid "DNS is not configured" +msgstr "DNS no está configurado" + +msgid "The deny type has been deprecated." +msgstr "El tipo deny ha quedado obsoleto." + +msgid "HBAC rules" +msgstr "Reglas HBAC" + +msgid "HBAC Rules" +msgstr "Reglas HBAC" + +#, python-format +msgid "Added HBAC rule \"%(value)s\"" +msgstr "Añadida regla HBAC \"%(value)s\"" + +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" +msgstr "Suprimida regla HBAC \"%(value)s\"" + +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" +msgstr "Modificada regla HBAC \"%(value)s\"" + +#, 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 " + +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" +msgstr "Habilitada regla HBAC \"%(value)s\"" + +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" +msgstr "\"%(value)s\" regla HBAC desactivada " + +msgid "Access time" +msgstr "Hora de acceso" + +msgid "Privilege" +msgstr "Privilegio" + +#, python-format +msgid "Added privilege \"%(value)s\"" +msgstr "Privilegio añadido \"%(value)s\"" + +#, python-format +msgid "Deleted privilege \"%(value)s\"" +msgstr "Privilegio eliminado \"%(value)s \"" + +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "Privilegio modificado \"%(value)s \"" + +#, 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" + +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" +"Servicios de HBAC\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" +"\n" +"EJEMPLOS:\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" + +msgid "HBAC services" +msgstr "Servicios HBAC" + +msgid "HBAC Services" +msgstr "Servicios HBAC" + +msgid "HBAC Service" +msgstr "Servicio HBAC" + +#, python-format +msgid "Added HBAC service \"%(value)s\"" +msgstr "Servicio de HBAC \"%(value)s\" añadido" + +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" +msgstr "Suprimido el servicio HBAC \"%(value)s\"" + +#, python-format +msgid "Modified HBAC service \"%(value)s\"" +msgstr " Servicio modificado HBAC \"%(value)s\"" + +#, 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" + +#, python-format +msgid "can be at most %(len)d characters" +msgstr "puede ser a lo sumo%(len)d caracteres" + +#, python-format +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "%(count)d usuario coincidente" +msgstr[1] "%(count)d usuarios coincidentes" + +msgid "commands for controlling sudo configuration" +msgstr "comandos para controlar la configuración sudo" + #, python-brace-format msgid "Add RunAs ${other_entity} into ${entity} ${primary_key}" msgstr "Añadir RunAs ${other_entity} en ${entity} ${primary_key}" @@ -3695,9 +3731,6 @@ msgstr "Nombre común" msgid "Expires On" msgstr "Expira el" -msgid "Revocation reason" -msgstr "Motivo de la revocación" - msgid "Fingerprints" msgstr "Las huellas dactilares" @@ -3751,12 +3784,6 @@ msgstr "Revocar certificado" msgid "Certificate Revoked" msgstr "Certificado revocado" -msgid "Serial Number" -msgstr "Número de serie" - -msgid "Serial Number (hex)" -msgstr "N.º de serie (hex.)" - msgid "SHA1 Fingerprint" msgstr "Huella digital SHA1" @@ -3779,9 +3806,6 @@ msgstr "Validez" msgid "Certificate for ${entity} ${primary_key}" msgstr "Certificado para ${entity} ${primary_key}" -msgid "Issuer" -msgstr "Emisor" - msgid "Group Options" msgstr "Opciones de Grupo" @@ -3952,24 +3976,15 @@ msgstr "Cancelación ${entity}" msgid "Host Group Settings" msgstr "Configuraciones del Grupo de Host" -msgid "Kerberos Ticket Policy" -msgstr " Política de tiquete de Kerberos" - msgid "Host" msgstr "Host" msgid "Netgroup Settings" msgstr "Configuración de Netgroup" -msgid "Netgroups" -msgstr "Grupos de red" - msgid "Privilege Settings" msgstr "Configuración de privilegios" -msgid "Password Policy" -msgstr "Directiva de contraseñas" - msgid "Role Settings" msgstr "Configuración de rol" @@ -4161,675 +4176,6 @@ msgstr "Campo requerido" msgid "Unsupported value" msgstr "Valor no admitido" -msgid "kerberos ticket policy settings" -msgstr "ajustes de la entrada de política kerberos" - -msgid "ID Ranges" -msgstr "Intervalos de ID" - -msgid "ID Range" -msgstr "Intervalo de ID" - -msgid "local domain range" -msgstr "intervalo de dominios locales" - -msgid "Active Directory domain range" -msgstr "Intervalo de dominios de Active Directory" - -#, python-format -msgid "Added ID range \"%(value)s\"" -msgstr "Se añadió el intervalo de ID «%(value)s»" - -#, python-format -msgid "Deleted ID range \"%(value)s\"" -msgstr "Se eliminó el intervalo de ID «%(value)s»" - -msgid "roles" -msgstr "roles" - -msgid "Member service groups" -msgstr "" -"\\n\n" -"Servicios\\n\n" -"\\n\n" -"Un servicio IPA representa un servicio que se ejecuta en un host. El " -"registro del servicio IPA\\n\n" -"puede almacenar la principal de kerberos, un certificado SSL, o ambos.\\n\n" -"\\n\n" -"Un servicio IPA puede administrarse directamente desde una máquina, siempre " -"y cuando\\n\n" -"la máquina tenga el permiso correcto. Esto es cierto, incluso para\\n\n" -"máquinas que no están asociadas con el servicio. Por ejemplo,\\n\n" -"solicitando un certificado SSL mediante credenciales principales de servicio " -"de host.\\n\n" -"Para administrar un servicio mediante credenciales de host necesita\\n\n" -"ejecutar kinit como el host:\\n\n" -"\\n\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\\n\n" -"\\n\n" -"Añadir un servicio IPA le permite al servicio asociado solicitar un " -"certificado o una tabla de claves\\n\n" -"SSL, pero esto se realiza como un paso independiente; no se producen como" -"\\n\n" -"como resultado de añadir un servicio\\n\n" -"Solamente el aspecto público de un certificado es almacenado en un registro " -"de servicio;\\n\n" -"la clave privada no es almacenada.\\n\n" -"\\n\n" -"EJEMPLOS:\\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" - -msgid "Member HBAC service groups" -msgstr "Grupos de servicio de Miembros HBAC" - -msgid "Indirect Member permissions" -msgstr "" -"\\n\n" -"Permisos indirectos de miembro " - -msgid "Indirect Member HBAC service" -msgstr "Servicio HBAC de miembro indirecto" - -msgid "Indirect Member HBAC service group" -msgstr "Grupo de servicio HBAC de miembros indirectos " - -msgid "entry" -msgstr "entrada" - -msgid "entries" -msgstr "entradas" - -msgid "Entry" -msgstr "Entrada" - -#, python-format -msgid "container entry (%(container)s) not found" -msgstr "no se encuentra la entrada (%(container)s) de contenedor" - -#, python-format -msgid "%(parent)s: %(oname)s not found" -msgstr "%(parent)s: no se encuentra %(oname)s" - -#, python-format -msgid "%(pkey)s: %(oname)s not found" -msgstr "%(pkey)s: no se encuentra %(oname)s" - -#, python-format -msgid "%(oname)s with name \"%(pkey)s\" already exists" -msgstr " %(oname)s con el nombre \"%(pkey)s\" ya existe" - -#, python-format -msgid "Rename the %(ldap_obj_name)s object" -msgstr "Cambie el nombre del %(ldap_obj_name)s objeto" - -msgid "the entry was deleted while being modified" -msgstr "la entrada fue eliminada mientras estaba siendo modificada" - -#, python-format -msgid "%s" -msgstr "%s" - -#, python-format -msgid "member %s" -msgstr "miembro %s" - -#, python-format -msgid "%s to add" -msgstr "%s a añadir" - -#, python-format -msgid "%s to remove" -msgstr "%s a eliminar" - -#, python-format -msgid "Results should contain primary key attribute only (\"%s\")" -msgstr "" -"Los resultados deberían contener sólo atributo de clave primaria (“%s”)" - -msgid "service" -msgstr "servicio" - -msgid "services" -msgstr "servicios" - -msgid "Not Before" -msgstr "No antes de" - -msgid "Not After" -msgstr "No luego de" - -msgid "Fingerprint (SHA1)" -msgstr "Huella digital (SHA1)" - -#, python-format -msgid "Added service \"%(value)s\"" -msgstr "Ha sido agregado el servicio \"%(value)s\"" - -#, python-format -msgid "Deleted service \"%(value)s\"" -msgstr "Ha sido eliminado el servicio \"%(value)s\"" - -#, python-format -msgid "Modified service \"%(value)s\"" -msgstr "Ha sido modificado el servicio \"%(value)s\"" - -#, 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" - -#, python-format -msgid "Disabled service \"%(value)s\"" -msgstr "Servicio inhabilitado \"%(value)s\"" - -msgid "this option has been deprecated." -msgstr "esta opción ha quedado obsoleta." - -msgid "sudo rules" -msgstr "reglas sudo" - -msgid "Sudo Rules" -msgstr "Reglas Sudo" - -msgid "Sudo Rule" -msgstr "Regla Sudo" - -#, python-format -msgid "Added Sudo Rule \"%(value)s\"" -msgstr "Añadida Regla Sudo “%(value)s”" - -#, python-format -msgid "Deleted Sudo Rule \"%(value)s\"" -msgstr "Borrada Regla Sudo “%(value)s”" - -#, python-format -msgid "Modified Sudo Rule \"%(value)s\"" -msgstr "Regla Sudo Modificada “%(value)s”" - -msgid "users" -msgstr "usuarios" - -#, python-format -msgid "%(count)d Sudo Rule matched" -msgid_plural "%(count)d Sudo Rules matched" -msgstr[0] "%(count)d Regla Sudo emparejada" -msgstr[1] "%(count)d Reglas Sudo emparejadas" - -msgid "sudo command group" -msgstr "grupo de comando sudo" - -msgid "sudo command groups" -msgstr "grupos de comando sudo" - -#, python-format -msgid "Added Sudo Command Group \"%(value)s\"" -msgstr "Añadido Grupo de Comando Sudo “%(value)s”" - -#, python-format -msgid "Deleted Sudo Command Group \"%(value)s\"" -msgstr "Borrado Grupo de Comando Sudo “%(value)s”" - -#, python-format -msgid "Modified Sudo Command Group \"%(value)s\"" -msgstr "Modificado Grupo de Comando Sudo “%(value)s”" - -#, python-format -msgid "%(count)d Sudo Command Group matched" -msgid_plural "%(count)d Sudo Command Groups matched" -msgstr[0] "%(count)d Grupo de Comando Sudo emparejado" -msgstr[1] "%(count)d Grupos de Comando Sudo emparejados" - -msgid "ACI" -msgstr "ACI" - -#, python-format -msgid "Added permission \"%(value)s\"" -msgstr "Permiso agregado \"%(value)s\"" - -#, python-format -msgid "Deleted permission \"%(value)s\"" -msgstr "Permiso borrado \"%(value)s\"" - -#, python-format -msgid "Modified permission \"%(value)s\"" -msgstr "Modificado el permiso \"%(value)s\"" - -#, 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" - -#, python-format -msgid "manager %(manager)s not found" -msgstr "Administrador %(manager)s no encontrado" - -#, python-format -msgid "can be at most %(len)d characters" -msgstr "puede ser a lo sumo%(len)d caracteres" - -msgid "pkinit" -msgstr "pkinit" - -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" -" " - -msgid "self service permission" -msgstr "auto servicio de permiso" - -msgid "self service permissions" -msgstr "auto servicio de permisos" - -msgid "Self Service Permissions" -msgstr "Permisos de autoservicio" - -msgid "Self Service Permission" -msgstr "Auto Servicio de Permiso" - -#, python-format -msgid "Added selfservice \"%(value)s\"" -msgstr "Añadido autoservicio \"%(value)s\"" - -#, python-format -msgid "Deleted selfservice \"%(value)s\"" -msgstr "autoservicio eliminados \"%(value)s\"" - -#, python-format -msgid "Modified selfservice \"%(value)s\"" -msgstr "Autoservicio modificado \"%(value)s\"" - -#, 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" - -#, python-format -msgid "Added host \"%(value)s\"" -msgstr "Ha sido agregado el equipo \"%(value)s\"" - -#, 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" - -#, python-format -msgid "Deleted host \"%(value)s\"" -msgstr "Ha sido eliminado el equipo \"%(value)s\"" - -#, python-format -msgid "Modified host \"%(value)s\"" -msgstr "Ha sido modificado el equipo \"%(value)s\"" - -msgid "Password cannot be set on enrolled host." -msgstr "La contraseña no puede ser fijada en el host matriculado." - -#, 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" - -#, python-format -msgid "Disabled host \"%(value)s\"" -msgstr "Host desactivado \"%(value)s\"" - -msgid "HBAC service group" -msgstr "Grupo de servicio HBAC" - -msgid "HBAC service groups" -msgstr "Grupos de servicio HBAC" - -msgid "HBAC Service Groups" -msgstr "Grupos de Servicios HBAC" - -msgid "HBAC Service Group" -msgstr "Grupo de Servicio HBAC" - -#, python-format -msgid "Added HBAC service group \"%(value)s\"" -msgstr "Agregado servicio de grupo HBAC \"%(value)s\"" - -#, python-format -msgid "Deleted HBAC service group \"%(value)s\"" -msgstr " Suprimido el servicio HBAC grupo \"%(value)s\"" - -#, python-format -msgid "Modified HBAC service group \"%(value)s\"" -msgstr "Servicio modificado HBAC grupo \"%(value)s\"" - -#, 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" - -msgid "A list of ACI values" -msgstr "Una lista de valores ACI" - -msgid "type, filter, subtree and targetgroup are mutually exclusive" -msgstr "tipo, filtro, subárbol y grupo de destino, se excluyen mutuamente" - -msgid "ACI prefix is required" -msgstr "Se requiere prefijo de ACI " - -msgid "" -"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 " - -msgid "filter and memberof are mutually exclusive" -msgstr "filtro y memberof son mutuamente excluyentes" - -msgid "group, permission and self are mutually exclusive" -msgstr "grupo, permisos y auto son mutuamente excluyentes" - -msgid "One of group, permission or self is required" -msgstr "Uno de grupo, permiso o self es necesario" - -#, python-format -msgid "Group '%s' does not exist" -msgstr "El grupo '%s' no existe" - -msgid "empty filter" -msgstr "Vaciar filtro" - -#, python-format -msgid "Syntax Error: %(error)s" -msgstr "Error de sintaxis:%(error)s " - -#, python-format -msgid "ACI with name \"%s\" not found" -msgstr "No se encuentra un ACI cuyo nombre sea \"%s\"" - -msgid "ACIs" -msgstr "ACI" - -#, python-format -msgid "Created ACI \"%(value)s\"" -msgstr "Ha sido creado ACI \"%(value)s\"" - -#, python-format -msgid "Deleted ACI \"%(value)s\"" -msgstr "Ha sido eliminado ACI \"%(value)s\"" - -#, python-format -msgid "Modified ACI \"%(value)s\"" -msgstr "Ha sido modificado ACI \"%(value)s\"" - -#, 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" - -#, python-format -msgid "Renamed ACI to \"%(value)s\"" -msgstr "ACI renombrado a \"%(value)s\"" - -msgid "Host-based access control commands" -msgstr "Comandos de control de acceso basado en host" - -msgid "DNS is not configured" -msgstr "DNS no está configurado" - -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" -"Servicios de HBAC\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" -"\n" -"EJEMPLOS:\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" - -msgid "HBAC services" -msgstr "Servicios HBAC" - -msgid "HBAC Services" -msgstr "Servicios HBAC" - -msgid "HBAC Service" -msgstr "Servicio HBAC" - -#, python-format -msgid "Added HBAC service \"%(value)s\"" -msgstr "Servicio de HBAC \"%(value)s\" añadido" - -#, python-format -msgid "Deleted HBAC service \"%(value)s\"" -msgstr "Suprimido el servicio HBAC \"%(value)s\"" - -#, python-format -msgid "Modified HBAC service \"%(value)s\"" -msgstr " Servicio modificado HBAC \"%(value)s\"" - -#, 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" - -msgid "Name" -msgstr "Nombre" - -#, python-format -msgid "" -"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." - -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. " - -msgid "Migration of LDAP search reference is not supported." -msgstr "Migración de búsqueda de referencia LDAP no está soportada." - -msgid "Malformed DN" -msgstr "DN Malformado" - -msgid "" -". Check GID of the existing group. Use --group-overwrite-gid option to " -"overwrite the GID" -msgstr "" -". Comprobar GID del grupo existente. Use la opción --group-overwrite-gid " -"para anular la GID" - -msgid "Invalid LDAP URI." -msgstr " URI LDAP no válida." - -msgid "" -"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" - -msgid "" -"\n" -"Vaults\n" -msgstr "" -"\n" -"Bóvedas\n" - -msgid "" -"\n" -"Manage vaults.\n" -msgstr "" -"\n" -"Manejar bóvedas.\n" - -msgid "" -"\n" -"Vault is a secure place to store a secret.\n" -msgstr "" -"\n" -"La bóveda es un lugar seguro para almacenar un secreto.\n" - -msgid "" -"\n" -"Based on the ownership there are three vault categories:\n" -"* user/private vault\n" -"* service vault\n" -"* shared vault\n" -msgstr "" -"\n" -"En base al propietario hay tres categorías de bóveda:\n" -"* user/private vault\n" -"* service vault\n" -"* shared vault\n" - -msgid "" -"\n" -"User vaults are vaults owned used by a particular user. Private\n" -"vaults are vaults owned the current user. Service vaults are\n" -"vaults owned by a service. Shared vaults are owned by the admin\n" -"but they can be used by other users or services.\n" -msgstr "" -"\n" -"Las bóvedas de usuario son bóvedas propietarias usadas por un usuario " -"concreto. Las bóvedas\n" -"privadas son bóvedas propiedad del usuario actual. Las bóvedas de servcio " -"son\n" -"bóvedas propiedad de un servicio. Las bóvedas compartidas son propiedad del " -"administrador\n" -"pero pueden ser usadas por otros usuarios o sevicios.\n" - -msgid "" -"\n" -"Based on the security mechanism there are three types of\n" -"vaults:\n" -"* standard vault\n" -"* symmetric vault\n" -"* asymmetric vault\n" -msgstr "" -"\n" -"En base al mecanismos de seguridad hay tres tipos de\n" -"bóvedas:\n" -"* standard vault\n" -"* symmetric vault\n" -"* asymmetric vault\n" - -msgid "" -"\n" -"Standard vault uses a secure mechanism to transport and\n" -"store the secret. The secret can only be retrieved by users\n" -"that have access to the vault.\n" -msgstr "" -"\n" -"La bóveda standard usa un mecanismo seguro para transportar y\n" -"almacenar el secreto. El secreto puede ser sólo recuperado por los usuarios\n" -"que tiene acceso a la bovéda.\n" - -msgid "" -"\n" -"Symmetric vault is similar to the standard vault, but it\n" -"pre-encrypts the secret using a password before transport.\n" -"The secret can only be retrieved using the same password.\n" -msgstr "" -"\n" -"La bóveda symmetric es similar a la standard, pero\n" -"encripta previamente el secreto usando una contraseña antes de transportar.\n" -"El secreto sólo se puede recuperar usando la misma contraseña.\n" - -msgid "" -"\n" -"Asymmetric vault is similar to the standard vault, but it\n" -"pre-encrypts the secret using a public key before transport.\n" -"The secret can only be retrieved using the private key.\n" -msgstr "" -"\n" -"La bóveda asymmetric es similar a la bóveda standard, pero\n" -"encripta el secreto usando una clave pública antes del transporte.\n" -"El secreto sólo se puede recuperar usando la clave privada.\n" - -msgid "" -"\n" -" List vaults:\n" -" ipa vault-find\n" -" [--user |--service |--shared]\n" -msgstr "" -"\n" -" Listar bóvedas:\n" -" ipa vault-find\n" -" [--user |--service |--shared]\n" - msgid "Auto Membership Rule" msgstr "Regla Auto Afiliación" @@ -4953,336 +4299,148 @@ msgstr "" " Muestra información sobre una regla automiembro.\n" " " -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" -"Comandos de Sudo\n" -"\n" -"Comandos usados como partes integrantes de sudo\n" -"\n" -"EJEMPLOS:\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" - -msgid "sudo command" -msgstr "comando sudo" - -msgid "sudo commands" -msgstr "comandos sudo" - -msgid "Sudo Commands" -msgstr "Comandos de sudo" +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "Permiso agregado \"%(value)s\"" #, python-format -msgid "Added Sudo Command \"%(value)s\"" -msgstr "Añadido Comando Sudo “%(value)s”" +msgid "Deleted permission \"%(value)s\"" +msgstr "Permiso borrado \"%(value)s\"" #, python-format -msgid "Deleted Sudo Command \"%(value)s\"" -msgstr "Borrado Comando Sudo “%(value)s”" +msgid "Modified permission \"%(value)s\"" +msgstr "Modificado el permiso \"%(value)s\"" #, python-format -msgid "Modified Sudo Command \"%(value)s\"" -msgstr "Modificado Comando Sudo “%(value)s”" +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" +msgstr[0] "%(count)d permiso coincidente" +msgstr[1] " %(count)d permisos coincidentes" + +msgid "HBAC service group" +msgstr "Grupo de servicio HBAC" + +msgid "HBAC service groups" +msgstr "Grupos de servicio HBAC" + +msgid "HBAC Service Groups" +msgstr "Grupos de Servicios HBAC" + +msgid "HBAC Service Group" +msgstr "Grupo de Servicio HBAC" #, python-format -msgid "%(count)d Sudo Command matched" -msgid_plural "%(count)d Sudo Commands matched" -msgstr[0] "%(count)d Comando Sudo emparejado" -msgstr[1] "%(count)d Comandos Sudo emparejados" - -msgid "automount location" -msgstr "localización automontaje" - -msgid "automount locations" -msgstr "localizaciones de automontaje" - -msgid "Automount Locations" -msgstr "Ubicaciones de automontado" - -msgid "Automount Location" -msgstr "Localización de Automontaje" +msgid "Added HBAC service group \"%(value)s\"" +msgstr "Agregado servicio de grupo HBAC \"%(value)s\"" #, python-format -msgid "Added automount location \"%(value)s\"" -msgstr "Añadida localización de automontaje \"%(value)s\"" +msgid "Deleted HBAC service group \"%(value)s\"" +msgstr " Suprimido el servicio HBAC grupo \"%(value)s\"" #, python-format -msgid "Deleted automount location \"%(value)s\"" -msgstr "Borrada una localización de automontaje \"%(value)s\"" +msgid "Modified HBAC service group \"%(value)s\"" +msgstr "Servicio modificado HBAC grupo \"%(value)s\"" #, python-format -msgid "%(count)d automount location matched" -msgid_plural "%(count)d automount locations matched" -msgstr[0] "%(count)d localización de automontaje coincidente" -msgstr[1] "%(count)d localizaciones de automontaje coincidentes" +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" -msgid "automount map" -msgstr "mapa de automontaje" +msgid "self service permission" +msgstr "auto servicio de permiso" -msgid "automount maps" -msgstr "mapas de automontaje" +msgid "self service permissions" +msgstr "auto servicio de permisos" -msgid "Automount Maps" -msgstr "Mapas de montaje automático" +msgid "Self Service Permissions" +msgstr "Permisos de autoservicio" -msgid "Automount Map" -msgstr "Mapa de Automontaje" +msgid "Self Service Permission" +msgstr "Auto Servicio de Permiso" #, python-format -msgid "Added automount map \"%(value)s\"" -msgstr "Añadido mapa de automontaje \"%(value)s\"" +msgid "Added selfservice \"%(value)s\"" +msgstr "Añadido autoservicio \"%(value)s\"" #, python-format -msgid "Deleted automount map \"%(value)s\"" -msgstr "Borrado un mapa de automontaje \"%(value)s\"" +msgid "Deleted selfservice \"%(value)s\"" +msgstr "autoservicio eliminados \"%(value)s\"" #, python-format -msgid "Modified automount map \"%(value)s\"" -msgstr "Modificado un mapa de automontaje \"%(value)s\"" +msgid "Modified selfservice \"%(value)s\"" +msgstr "Autoservicio modificado \"%(value)s\"" #, python-format -msgid "%(count)d automount map matched" -msgid_plural "%(count)d automount maps matched" -msgstr[0] "%(count)d mapa de automontaje coincidente" -msgstr[1] "%(count)d mapas de automontaje coincidentes" +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" +msgstr[0] "%(count)d autoservicio coincidente" +msgstr[1] "%(count)d autoservicios coincidentes" -msgid "Automount key object." -msgstr "Objeto clave de automontaje" +msgid "A list of ACI values" +msgstr "Una lista de valores ACI" -msgid "automount key" -msgstr "clave de automontaje" +msgid "type, filter, subtree and targetgroup are mutually exclusive" +msgstr "tipo, filtro, subárbol y grupo de destino, se excluyen mutuamente" -msgid "automount keys" -msgstr "claves de automontaje" - -msgid "Automount Keys" -msgstr "Llaves de montaje automático" - -msgid "Automount Key" -msgstr "Clave de Automontaje" - -#, 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" - -#, python-format -msgid "key named %(key)s already exists" -msgstr "ya existe una llave denominada %(key)s" - -#, 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" - -#, python-format -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." - -#, python-format -msgid "Added automount key \"%(value)s\"" -msgstr "Añadida clave de automontaje \"%(value)s\"" - -#, python-format -msgid "Added automount indirect map \"%(value)s\"" -msgstr "Añadido mapa de automontaje indirecto \"%(value)s\"" - -#, python-format -msgid "Deleted automount key \"%(value)s\"" -msgstr "Borrada clave de automontaje \"%(value)s\"" - -#, python-format -msgid "Modified automount key \"%(value)s\"" -msgstr "Modificada clave de automontaje \"%(value)s\"" - -#, python-format -msgid "%(count)d automount key matched" -msgid_plural "%(count)d automount keys matched" -msgstr[0] "%(count)d clave de automontaje coincidente" -msgstr[1] "%(count)d claves de automontaje coincidentes" - -msgid "delegation" -msgstr "delegación" - -msgid "delegations" -msgstr "delegaciones" - -msgid "Delegations" -msgstr "Delegaciones" - -msgid "Delegation" -msgstr "Delegación" - -#, python-format -msgid "Added delegation \"%(value)s\"" -msgstr "Delegación añadida \"%(value)s\"" - -#, python-format -msgid "Deleted delegation \"%(value)s\"" -msgstr "Delegación eliminada \"%(value)s\"" - -#, python-format -msgid "Modified delegation \"%(value)s\"" -msgstr "Delegación modificada \"%(value)s\"" - -#, 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" - -#, 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)" - -msgid "password policy" -msgstr "política de contraseña" - -msgid "password policies" -msgstr "políticas de contraseña" - -msgid "Password Policies" -msgstr "Políticas de Contraseña" - -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." - -msgid "cannot delete global password policy" -msgstr "no puede borrar la Política global de contraseña" - -msgid "priority cannot be set on global policy" -msgstr "la prioridad no puede ser definida en una plítica global" - -msgid "operation not defined" -msgstr "operación no definida" - -#, python-format -msgid "not allowed to perform operation: %s" -msgstr "no está permitido llevar a cabo la operación: %s" - -msgid "No such virtual command" -msgstr "Ningún comando virtual" - -#, python-format -msgid "Added user \"%(value)s\"" -msgstr "Ha sido agregado el usuario \"%(value)s\"" - -#, python-format -msgid "Deleted user \"%(value)s\"" -msgstr "Ha sido eliminado el usuario \"%(value)s\"" - -#, python-format -msgid "Modified user \"%(value)s\"" -msgstr "Ha sido modificado el usuario \"%(value)s\"" - -#, python-format -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "%(count)d usuario coincidente" -msgstr[1] "%(count)d usuarios coincidentes" - -#, python-format -msgid "Disabled user account \"%(value)s\"" -msgstr " \"%(value)s\" de cuenta de usuario desactivada" - -#, python-format -msgid "Enabled user account \"%(value)s\"" -msgstr " \"%(value)s\" de cuenta de usuario activada" +msgid "ACI prefix is required" +msgstr "Se requiere prefijo de ACI " 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." +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" msgstr "" -"\n" -"Desbloquear una cuenta de usuario\n" -"\n" -" Una cuenta de usuario puede llegar a bloquearse si la contraseña se ha " -"introducido incorrectamente demasiadas\n" -"veces dentro de un período de tiempo controlado por la política de\n" -"contraseña. Una cuenta bloqueada es una condición temporal y puede ser " -"desbloqueada por\n" -"un administrador." +"es necesario como mínimo alguno de: tipo, filtro, subárbol, grupo de " +"destino, atributos, o miembro de " + +msgid "filter and memberof are mutually exclusive" +msgstr "filtro y memberof son mutuamente excluyentes" + +msgid "group, permission and self are mutually exclusive" +msgstr "grupo, permisos y auto son mutuamente excluyentes" + +msgid "One of group, permission or self is required" +msgstr "Uno de grupo, permiso o self es necesario" #, python-format -msgid "Unlocked account \"%(value)s\"" -msgstr "Cuenta desbloqueada \" %(value)s \"" +msgid "Group '%s' does not exist" +msgstr "El grupo '%s' no existe" -msgid "Failed logins" -msgstr "Inicios de sesión fallidos" - -msgid "groups" -msgstr "grupos" - -msgid "User Group" -msgstr "Grupo Usuario" +msgid "empty filter" +msgstr "Vaciar filtro" #, python-format -msgid "Added group \"%(value)s\"" -msgstr "Ha sido agregado el grupo \"%(value)s\"" +msgid "Syntax Error: %(error)s" +msgstr "Error de sintaxis:%(error)s " #, python-format -msgid "Deleted group \"%(value)s\"" -msgstr "Ha sido eliminado el grupo \"%(value)s\"" +msgid "ACI with name \"%s\" not found" +msgstr "No se encuentra un ACI cuyo nombre sea \"%s\"" + +msgid "ACIs" +msgstr "ACI" #, python-format -msgid "Modified group \"%(value)s\"" -msgstr "Ha sido modificado el grupo \"%(value)s\"" +msgid "Created ACI \"%(value)s\"" +msgstr "Ha sido creado ACI \"%(value)s\"" #, 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" +msgid "Deleted ACI \"%(value)s\"" +msgstr "Ha sido eliminado ACI \"%(value)s\"" #, python-format -msgid "Detached group \"%(value)s\" from user \"%(value)s\"" -msgstr "Ha sido desasociado el grupo \"%(value)s\" del usuario \"%(value)s\"" - -msgid "not allowed to modify user entries" -msgstr "no se permite modificar las entradas de los usuarios" - -msgid "not allowed to modify group entries" -msgstr "no se permite modificar las entradas de los grupos" - -msgid "Not a managed group" -msgstr "No es un grupo administrado" +msgid "Modified ACI \"%(value)s\"" +msgstr "Ha sido modificado ACI \"%(value)s\"" #, python-format -msgid "Changed password for \"%(value)s\"" -msgstr "Cambio de contraseña para \"%(value)s\"" +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "%(count)d ACI coincidente" +msgstr[1] "%(count)d ACIs coincidentes" + +#, python-format +msgid "Renamed ACI to \"%(value)s\"" +msgstr "ACI renombrado a \"%(value)s\"" msgid "" "\n" @@ -5380,26 +4538,126 @@ msgstr "" msgid "Force server removal" msgstr "Forzar la eliminación del servidor" -msgid "Role" -msgstr "Rol" +msgid "Member service groups" +msgstr "" +"\\n\n" +"Servicios\\n\n" +"\\n\n" +"Un servicio IPA representa un servicio que se ejecuta en un host. El " +"registro del servicio IPA\\n\n" +"puede almacenar la principal de kerberos, un certificado SSL, o ambos.\\n\n" +"\\n\n" +"Un servicio IPA puede administrarse directamente desde una máquina, siempre " +"y cuando\\n\n" +"la máquina tenga el permiso correcto. Esto es cierto, incluso para\\n\n" +"máquinas que no están asociadas con el servicio. Por ejemplo,\\n\n" +"solicitando un certificado SSL mediante credenciales principales de servicio " +"de host.\\n\n" +"Para administrar un servicio mediante credenciales de host necesita\\n\n" +"ejecutar kinit como el host:\\n\n" +"\\n\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\\n\n" +"\\n\n" +"Añadir un servicio IPA le permite al servicio asociado solicitar un " +"certificado o una tabla de claves\\n\n" +"SSL, pero esto se realiza como un paso independiente; no se producen como" +"\\n\n" +"como resultado de añadir un servicio\\n\n" +"Solamente el aspecto público de un certificado es almacenado en un registro " +"de servicio;\\n\n" +"la clave privada no es almacenada.\\n\n" +"\\n\n" +"EJEMPLOS:\\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" + +msgid "Member HBAC service groups" +msgstr "Grupos de servicio de Miembros HBAC" + +msgid "Indirect Member permissions" +msgstr "" +"\\n\n" +"Permisos indirectos de miembro " + +msgid "Indirect Member HBAC service" +msgstr "Servicio HBAC de miembro indirecto" + +msgid "Indirect Member HBAC service group" +msgstr "Grupo de servicio HBAC de miembros indirectos " + +msgid "entry" +msgstr "entrada" + +msgid "entries" +msgstr "entradas" + +msgid "Entry" +msgstr "Entrada" #, python-format -msgid "Added role \"%(value)s\"" -msgstr "Rol agregado \"%(value)s\"" +msgid "container entry (%(container)s) not found" +msgstr "no se encuentra la entrada (%(container)s) de contenedor" #, python-format -msgid "Deleted role \"%(value)s\"" -msgstr "Rol eliminado \"%(value)s\"" +msgid "%(parent)s: %(oname)s not found" +msgstr "%(parent)s: no se encuentra %(oname)s" #, python-format -msgid "Modified role \"%(value)s\"" -msgstr "Rol modificado \"%(value)s\"" +msgid "%(pkey)s: %(oname)s not found" +msgstr "%(pkey)s: no se encuentra %(oname)s" #, 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" +msgid "%(oname)s with name \"%(pkey)s\" already exists" +msgstr " %(oname)s con el nombre \"%(pkey)s\" ya existe" + +#, python-format +msgid "Rename the %(ldap_obj_name)s object" +msgstr "Cambie el nombre del %(ldap_obj_name)s objeto" + +msgid "the entry was deleted while being modified" +msgstr "la entrada fue eliminada mientras estaba siendo modificada" + +#, python-format +msgid "%s" +msgstr "%s" + +#, python-format +msgid "%s to add" +msgstr "%s a añadir" + +#, python-format +msgid "%s to remove" +msgstr "%s a eliminar" + +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" +msgstr "" +"Los resultados deberían contener sólo atributo de clave primaria (“%s”)" msgid "" "\n" @@ -5529,6 +4787,35 @@ msgstr "Argumentos para detalles de la función" msgid "Cannot query Directory Manager with API" msgstr "No se puede cosultar al Administrador de Directorios con API" +#, python-format +msgid "Added host \"%(value)s\"" +msgstr "Ha sido agregado el equipo \"%(value)s\"" + +#, 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" + +#, python-format +msgid "Deleted host \"%(value)s\"" +msgstr "Ha sido eliminado el equipo \"%(value)s\"" + +#, python-format +msgid "Modified host \"%(value)s\"" +msgstr "Ha sido modificado el equipo \"%(value)s\"" + +msgid "Password cannot be set on enrolled host." +msgstr "La contraseña no puede ser fijada en el host matriculado." + +#, 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" + +#, python-format +msgid "Disabled host \"%(value)s\"" +msgstr "Host desactivado \"%(value)s\"" + msgid "host groups" msgstr "grupos de host" @@ -5561,40 +4848,489 @@ msgid_plural "%(count)d hostgroups matched" msgstr[0] "%(count)d grupo de equipos coincidente" msgstr[1] "%(count)d grupos de equipos coincidentes" -msgid "netgroups" -msgstr "grupos de red" +msgid "configuration options" +msgstr "opciones de configuración" -msgid "Netgroup" -msgstr "Grupo de red" +msgid "Configuration" +msgstr "Configuración" + +msgid "The group doesn't exist" +msgstr "El grupo no existe" #, python-format -msgid "Added netgroup \"%(value)s\"" -msgstr "\"%(value)s\"netgroup añadido" +msgid "attribute \"%s\" not allowed" +msgstr "atributo \"%s\" no permitido" + +msgid "May not be empty" +msgstr "Puede no estar vacío" + +msgid "Unresolved rules in --rules" +msgstr "Eliminar miembro desde un grupo." + +#, python-format +msgid "Access granted: %s" +msgstr "Acceso obtenido: %s" + +#, python-format +msgid "manager %(manager)s not found" +msgstr "Administrador %(manager)s no encontrado" #, python-format msgid "" -"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " -"common namespace" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -"grupo de host con nombre “%s” ya existe. Los grupos de nombres y los grupos " -"de red comparten un espacio de nombre común" +"El principal %s de Kerberos ya existe. Utilice 'ipa user-mod' para definirlo " +"manualmente." + +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. " + +msgid "Migration of LDAP search reference is not supported." +msgstr "Migración de búsqueda de referencia LDAP no está soportada." + +msgid "Malformed DN" +msgstr "DN Malformado" + +msgid "" +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" +msgstr "" +". Comprobar GID del grupo existente. Use la opción --group-overwrite-gid " +"para anular la GID" + +msgid "Invalid LDAP URI." +msgstr " URI LDAP no válida." + +msgid "" +"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" + +msgid "Host-based access control commands" +msgstr "Comandos de control de acceso basado en host" + +msgid "sudo command group" +msgstr "grupo de comando sudo" + +msgid "sudo command groups" +msgstr "grupos de comando sudo" #, python-format -msgid "Deleted netgroup \"%(value)s\"" -msgstr "%(value)s\" de netgroup eliminados" +msgid "Added Sudo Command Group \"%(value)s\"" +msgstr "Añadido Grupo de Comando Sudo “%(value)s”" #, python-format -msgid "Modified netgroup \"%(value)s\"" -msgstr "netgroup modificado \"%(value)s\"" +msgid "Deleted Sudo Command Group \"%(value)s\"" +msgstr "Borrado Grupo de Comando Sudo “%(value)s”" #, 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" +msgid "Modified Sudo Command Group \"%(value)s\"" +msgstr "Modificado Grupo de Comando Sudo “%(value)s”" -msgid "commands for controlling sudo configuration" -msgstr "comandos para controlar la configuración sudo" +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "%(count)d Grupo de Comando Sudo emparejado" +msgstr[1] "%(count)d Grupos de Comando Sudo emparejados" + +#, python-format +msgid "Added user \"%(value)s\"" +msgstr "Ha sido agregado el usuario \"%(value)s\"" + +#, python-format +msgid "Deleted user \"%(value)s\"" +msgstr "Ha sido eliminado el usuario \"%(value)s\"" + +#, python-format +msgid "Modified user \"%(value)s\"" +msgstr "Ha sido modificado el usuario \"%(value)s\"" + +#, python-format +msgid "Disabled user account \"%(value)s\"" +msgstr " \"%(value)s\" de cuenta de usuario desactivada" + +#, python-format +msgid "Enabled user account \"%(value)s\"" +msgstr " \"%(value)s\" de cuenta de usuario activada" + +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" +"Desbloquear una cuenta de usuario\n" +"\n" +" Una cuenta de usuario puede llegar a bloquearse si la contraseña se ha " +"introducido incorrectamente demasiadas\n" +"veces dentro de un período de tiempo controlado por la política de\n" +"contraseña. Una cuenta bloqueada es una condición temporal y puede ser " +"desbloqueada por\n" +"un administrador." + +#, python-format +msgid "Unlocked account \"%(value)s\"" +msgstr "Cuenta desbloqueada \" %(value)s \"" + +msgid "Failed logins" +msgstr "Inicios de sesión fallidos" + +msgid "automount location" +msgstr "localización automontaje" + +msgid "automount locations" +msgstr "localizaciones de automontaje" + +msgid "Automount Locations" +msgstr "Ubicaciones de automontado" + +msgid "Automount Location" +msgstr "Localización de Automontaje" + +#, python-format +msgid "Added automount location \"%(value)s\"" +msgstr "Añadida localización de automontaje \"%(value)s\"" + +#, python-format +msgid "Deleted automount location \"%(value)s\"" +msgstr "Borrada una localización de automontaje \"%(value)s\"" + +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "%(count)d localización de automontaje coincidente" +msgstr[1] "%(count)d localizaciones de automontaje coincidentes" + +msgid "automount map" +msgstr "mapa de automontaje" + +msgid "automount maps" +msgstr "mapas de automontaje" + +msgid "Automount Maps" +msgstr "Mapas de montaje automático" + +msgid "Automount Map" +msgstr "Mapa de Automontaje" + +#, python-format +msgid "Added automount map \"%(value)s\"" +msgstr "Añadido mapa de automontaje \"%(value)s\"" + +#, python-format +msgid "Deleted automount map \"%(value)s\"" +msgstr "Borrado un mapa de automontaje \"%(value)s\"" + +#, python-format +msgid "Modified automount map \"%(value)s\"" +msgstr "Modificado un mapa de automontaje \"%(value)s\"" + +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "%(count)d mapa de automontaje coincidente" +msgstr[1] "%(count)d mapas de automontaje coincidentes" + +msgid "Automount key object." +msgstr "Objeto clave de automontaje" + +msgid "automount key" +msgstr "clave de automontaje" + +msgid "automount keys" +msgstr "claves de automontaje" + +msgid "Automount Keys" +msgstr "Llaves de montaje automático" + +msgid "Automount Key" +msgstr "Clave de Automontaje" + +#, 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" + +#, python-format +msgid "key named %(key)s already exists" +msgstr "ya existe una llave denominada %(key)s" + +#, 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" + +#, python-format +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." + +#, python-format +msgid "Added automount key \"%(value)s\"" +msgstr "Añadida clave de automontaje \"%(value)s\"" + +#, python-format +msgid "Added automount indirect map \"%(value)s\"" +msgstr "Añadido mapa de automontaje indirecto \"%(value)s\"" + +#, python-format +msgid "Deleted automount key \"%(value)s\"" +msgstr "Borrada clave de automontaje \"%(value)s\"" + +#, python-format +msgid "Modified automount key \"%(value)s\"" +msgstr "Modificada clave de automontaje \"%(value)s\"" + +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "%(count)d clave de automontaje coincidente" +msgstr[1] "%(count)d claves de automontaje coincidentes" + +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." + +msgid "" +"\n" +"Vaults\n" +msgstr "" +"\n" +"Bóvedas\n" + +msgid "" +"\n" +"Manage vaults.\n" +msgstr "" +"\n" +"Manejar bóvedas.\n" + +msgid "" +"\n" +"Vault is a secure place to store a secret.\n" +msgstr "" +"\n" +"La bóveda es un lugar seguro para almacenar un secreto.\n" + +msgid "" +"\n" +"Based on the ownership there are three vault categories:\n" +"* user/private vault\n" +"* service vault\n" +"* shared vault\n" +msgstr "" +"\n" +"En base al propietario hay tres categorías de bóveda:\n" +"* user/private vault\n" +"* service vault\n" +"* shared vault\n" + +msgid "" +"\n" +"User vaults are vaults owned used by a particular user. Private\n" +"vaults are vaults owned the current user. Service vaults are\n" +"vaults owned by a service. Shared vaults are owned by the admin\n" +"but they can be used by other users or services.\n" +msgstr "" +"\n" +"Las bóvedas de usuario son bóvedas propietarias usadas por un usuario " +"concreto. Las bóvedas\n" +"privadas son bóvedas propiedad del usuario actual. Las bóvedas de servcio " +"son\n" +"bóvedas propiedad de un servicio. Las bóvedas compartidas son propiedad del " +"administrador\n" +"pero pueden ser usadas por otros usuarios o sevicios.\n" + +msgid "" +"\n" +"Based on the security mechanism there are three types of\n" +"vaults:\n" +"* standard vault\n" +"* symmetric vault\n" +"* asymmetric vault\n" +msgstr "" +"\n" +"En base al mecanismos de seguridad hay tres tipos de\n" +"bóvedas:\n" +"* standard vault\n" +"* symmetric vault\n" +"* asymmetric vault\n" + +msgid "" +"\n" +"Standard vault uses a secure mechanism to transport and\n" +"store the secret. The secret can only be retrieved by users\n" +"that have access to the vault.\n" +msgstr "" +"\n" +"La bóveda standard usa un mecanismo seguro para transportar y\n" +"almacenar el secreto. El secreto puede ser sólo recuperado por los usuarios\n" +"que tiene acceso a la bovéda.\n" + +msgid "" +"\n" +"Symmetric vault is similar to the standard vault, but it\n" +"pre-encrypts the secret using a password before transport.\n" +"The secret can only be retrieved using the same password.\n" +msgstr "" +"\n" +"La bóveda symmetric es similar a la standard, pero\n" +"encripta previamente el secreto usando una contraseña antes de transportar.\n" +"El secreto sólo se puede recuperar usando la misma contraseña.\n" + +msgid "" +"\n" +"Asymmetric vault is similar to the standard vault, but it\n" +"pre-encrypts the secret using a public key before transport.\n" +"The secret can only be retrieved using the private key.\n" +msgstr "" +"\n" +"La bóveda asymmetric es similar a la bóveda standard, pero\n" +"encripta el secreto usando una clave pública antes del transporte.\n" +"El secreto sólo se puede recuperar usando la clave privada.\n" + +msgid "" +"\n" +" List vaults:\n" +" ipa vault-find\n" +" [--user |--service |--shared]\n" +msgstr "" +"\n" +" Listar bóvedas:\n" +" ipa vault-find\n" +" [--user |--service |--shared]\n" + +msgid "only \"ad\" is supported" +msgstr "solo se admite «ad»" + +msgid "range exists" +msgstr "el intervalo existe" + +msgid "SID" +msgstr "SID" + +msgid "Serial number (hex)" +msgstr "N.º de serie (hex.)" + +msgid "Request status" +msgstr "Estado de la petición" + +msgid "Revoked" +msgstr "Revocado" + +msgid "7 is not a valid revocation reason" +msgstr "7 no es una razón válida de revocación" + +msgid "groups" +msgstr "grupos" + +msgid "User Group" +msgstr "Grupo Usuario" + +#, python-format +msgid "Added group \"%(value)s\"" +msgstr "Ha sido agregado el grupo \"%(value)s\"" + +#, python-format +msgid "Deleted group \"%(value)s\"" +msgstr "Ha sido eliminado el grupo \"%(value)s\"" + +#, python-format +msgid "Modified group \"%(value)s\"" +msgstr "Ha sido modificado el grupo \"%(value)s\"" + +#, 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" + +#, python-format +msgid "Detached group \"%(value)s\" from user \"%(value)s\"" +msgstr "Ha sido desasociado el grupo \"%(value)s\" del usuario \"%(value)s\"" + +msgid "not allowed to modify user entries" +msgstr "no se permite modificar las entradas de los usuarios" + +msgid "not allowed to modify group entries" +msgstr "no se permite modificar las entradas de los grupos" + +msgid "Not a managed group" +msgstr "No es un grupo administrado" + +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" +"Comandos de Sudo\n" +"\n" +"Comandos usados como partes integrantes de sudo\n" +"\n" +"EJEMPLOS:\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" + +msgid "sudo command" +msgstr "comando sudo" + +msgid "sudo commands" +msgstr "comandos sudo" + +msgid "Sudo Commands" +msgstr "Comandos de sudo" + +#, python-format +msgid "Added Sudo Command \"%(value)s\"" +msgstr "Añadido Comando Sudo “%(value)s”" + +#, python-format +msgid "Deleted Sudo Command \"%(value)s\"" +msgstr "Borrado Comando Sudo “%(value)s”" + +#, python-format +msgid "Modified Sudo Command \"%(value)s\"" +msgstr "Modificado Comando Sudo “%(value)s”" + +#, python-format +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "%(count)d Comando Sudo emparejado" +msgstr[1] "%(count)d Comandos Sudo emparejados" msgid "invalid IP network format" msgstr "formato no válido de red IP" @@ -5712,71 +5448,100 @@ msgstr "Opciones de configuración de DNS" msgid "DNS Global Configuration" msgstr "Configuración global de DNS" -msgid "The deny type has been deprecated." -msgstr "El tipo deny ha quedado obsoleto." +#, python-format +msgid "Changed password for \"%(value)s\"" +msgstr "Cambio de contraseña para \"%(value)s\"" -msgid "HBAC rules" -msgstr "Reglas HBAC" +msgid "A dictionary representing an LDAP entry" +msgstr "Un diccionario representando una entrada LDAP" -msgid "HBAC Rules" -msgstr "Reglas HBAC" +msgid "A list of LDAP entries" +msgstr "Una lista de entradas LDAP" + +msgid "All commands should at least have a result" +msgstr "Todos los comandos deberían por lo menos tener un resultado" + +msgid "Additional instructions:" +msgstr "Instrucciones adicionales:" + +msgid "Results are truncated, try a more specific search" +msgstr "" +"Los resultados se encuentran truncados, intente realizar una búsqueda más " +"específica" #, python-format -msgid "Added HBAC rule \"%(value)s\"" -msgstr "Añadida regla HBAC \"%(value)s\"" +msgid "%(count)d variables" +msgstr "%(count)d variables" #, python-format -msgid "Deleted HBAC rule \"%(value)s\"" -msgstr "Suprimida regla HBAC \"%(value)s\"" +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "%(count)d complemento cargado" +msgstr[1] "%(count)d complementos cargados" #, python-format -msgid "Modified HBAC rule \"%(value)s\"" -msgstr "Modificada regla HBAC \"%(value)s\"" +msgid "Enter %(label)s again to verify: " +msgstr "Ingrese %(label)s nuevamente para verificar: " + +msgid "No matching entries found" +msgstr "No se encontraron entradas coincidentes" + +msgid "Topic commands:" +msgstr "Tema comandos:" + +msgid "To get command help, use:" +msgstr "Para obtener ayuda sobre el comando, utilice:" + +msgid "Command name" +msgstr "Nombre del comando" + +msgid "Positional arguments" +msgstr "Argumentos posicionales" + +msgid "No file to read" +msgstr "No existe el fichero para leer" + +msgid "incorrect type" +msgstr "tipo incorrecto" + +msgid "Only one value is allowed" +msgstr "Sólo se permite un valor" + +msgid "must be True or False" +msgstr "debe ser True o False" + +msgid "must be an integer" +msgstr "debe ser un entero" #, 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 " +msgid "must be at least %(minvalue)d" +msgstr "debe ser como mínimo %(minvalue)d" #, python-format -msgid "Enabled HBAC rule \"%(value)s\"" -msgstr "Habilitada regla HBAC \"%(value)s\"" +msgid "can be at most %(maxvalue)d" +msgstr "puede ser como máximo %(maxvalue)d" + +msgid "must be a decimal number" +msgstr "debe ser un número decimal" #, python-format -msgid "Disabled HBAC rule \"%(value)s\"" -msgstr "\"%(value)s\" regla HBAC desactivada " +msgid "must match pattern \"%(pattern)s\"" +msgstr "debe coincidir con el modelo \"%(pattern)s" -msgid "Access time" -msgstr "Hora de acceso" - -msgid "Unresolved rules in --rules" -msgstr "Eliminar miembro desde un grupo." +msgid "must be binary data" +msgstr "debe ser un dato binario" #, python-format -msgid "Access granted: %s" -msgstr "Acceso obtenido: %s" - -msgid "Privilege" -msgstr "Privilegio" +msgid "must be at least %(minlength)d bytes" +msgstr "debe ser como mínimo de %(minlength)d bytes" #, python-format -msgid "Added privilege \"%(value)s\"" -msgstr "Privilegio añadido \"%(value)s\"" +msgid "can be at most %(maxlength)d bytes" +msgstr "puede ser a lo sumo de %(maxlength)d bytes" #, python-format -msgid "Deleted privilege \"%(value)s\"" -msgstr "Privilegio eliminado \"%(value)s \"" - -#, python-format -msgid "Modified privilege \"%(value)s\"" -msgstr "Privilegio modificado \"%(value)s \"" - -#, 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" +msgid "must be exactly %(length)d bytes" +msgstr "debe ser exactamente de %(length)d bytes" #, python-format msgid "Failure decoding Certificate Signing Request: %s" @@ -5784,67 +5549,298 @@ msgstr "" "Falla al intentar decodificar la petición de identificación de certificado: " "%s" -msgid "Serial number (hex)" -msgstr "N.º de serie (hex.)" +msgid "must be Unicode text" +msgstr "debe ser texto Unicode" -msgid "Request status" -msgstr "Estado de la petición" - -msgid "Revoked" -msgstr "Revocado" - -msgid "7 is not a valid revocation reason" -msgstr "7 no es una razón válida de revocación" - -msgid "Unknown" -msgstr "Desconocido" +msgid "Leading and trailing spaces are not allowed" +msgstr "No están permitidos espacios iniciales ni finales" #, python-format -msgid "invalid SID: %(value)s" -msgstr "SID no válido: %(value)s" - -msgid "only \"ad\" is supported" -msgstr "solo se admite «ad»" - -msgid "range exists" -msgstr "el intervalo existe" - -msgid "SID" -msgstr "SID" - -msgid "configuration options" -msgstr "opciones de configuración" - -msgid "Configuration" -msgstr "Configuración" - -msgid "The group doesn't exist" -msgstr "El grupo no existe" +msgid "must be at least %(minlength)d characters" +msgstr "debe tener como mínimo %(minlength)d caracteres" #, python-format -msgid "attribute \"%s\" not allowed" -msgstr "atributo \"%s\" no permitido" +msgid "can be at most %(maxlength)d characters" +msgstr "puede tener a lo sumo %(maxlength)d caracteres" -msgid "May not be empty" -msgstr "Puede no estar vacío" +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "debe tener exactamente %(length)d caracteres" -msgid "Request must be a dict" -msgstr "La petición debe ser un diccionario" +#, python-format +msgid "must be '%(value)s'" +msgstr "debe ser «%(value)s»" -msgid "Request is missing \"method\"" -msgstr "La petición está con \"method\" desaparecido" +#, python-format +msgid "Permission denied: %(file)s" +msgstr "Permiso denegado:%(file)s " -msgid "Request is missing \"params\"" -msgstr "La petición está con \"params\" desaparecido" +msgid "too many '@' characters" +msgstr "demasiados ‘@’ caracteres" -msgid "params must be a list" -msgstr "params debe ser una lista" +msgid "cannot be longer that 255 characters" +msgstr "no puede ser más larga de 255 caracteres" -msgid "params must contain [args, options]" -msgstr "params debe contener [args, options]" +msgid "invalid SSH public key" +msgstr "clave SSH pública no válida" -msgid "params[0] (aka args) must be a list" -msgstr "params[0] (aka args) debe ser una lista" +#, python-format +msgid "invalid domain-name: %s" +msgstr "nombre de dominio no válido: %s" -msgid "params[1] (aka options) must be a dict" -msgstr "params[1] (aka options) debe ser un diccionario" +msgid "invalid IP address format" +msgstr "formato no válido de dirección IP" + +#, python-format +msgid "%(port)s is not a valid port" +msgstr "%(port)s no es un puerto válido" + +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" +msgstr "error %(code)d desconocido de %(server)s: %(error)s" + +msgid "an internal error has occurred" +msgstr "ha ocurrido un error interno" + +#, python-format +msgid "unknown command '%(name)s'" +msgstr "comando desconocido '%(name)s'" + +#, python-format +msgid "cannot connect to '%(uri)s': %(error)s" +msgstr "no se pudo conectar a '%(uri)s': %(error)s" + +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" +msgstr "Petición JSON-RPC no válida: %(error)s" + +#, 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 " + +#, python-format +msgid "Missing or invalid HTTP Referer, %(referer)s" +msgstr "Arbitro HTTP desaparecido o no válido, %(referer)s" + +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" +msgstr "Error de kerberos: %(major)s/%(minor)s" + +msgid "did not receive Kerberos credentials" +msgstr "no se ha recibido ninguna credencial de Kerberos" + +#, python-format +msgid "Service '%(service)s' not found in Kerberos database" +msgstr "" +"El servicio '%(service)s' no se encontró en la base de datos de Kerberos" + +msgid "No credentials cache found" +msgstr "No se han encontrado credenciales de cache" + +msgid "Ticket expired" +msgstr "El ticket ha expirado" + +msgid "Credentials cache permissions incorrect" +msgstr "Los permisos de credenciales de caché son incorrectos" + +msgid "Bad format in credentials cache" +msgstr "Las credenciales de caché están mal formadas" + +msgid "Cannot resolve KDC for requested realm" +msgstr "No es posible resolver KDC para el reinado solicitado" + +msgid "Session error" +msgstr "Error de sesión" + +#, python-format +msgid "Insufficient access: %(info)s" +msgstr "Acceso insuficiente: %(info)s" + +#, python-format +msgid "invalid '%(name)s': %(error)s" +msgstr "'%(name)s' inválido: %(error)s" + +msgid "Passwords do not match" +msgstr "Las contraseñas no coinciden" + +msgid "Command not implemented" +msgstr "El comando no se ha implementado" + +msgid "Client is not configured. Run ipa-client-install." +msgstr "El cliente no está configurado. Ejecutar la API de cliente a instalar." + +#, python-format +msgid "Could not get %(name)s interactively" +msgstr "No se pudo obtener %(name)s interactivamente" + +#, python-format +msgid "%(reason)s" +msgstr "%(reason)s" + +msgid "This entry already exists" +msgstr "Esta entrada ya existe" + +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" + +#, python-format +msgid "" +"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" + +msgid "" +"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" + +msgid "This command requires root access" +msgstr "Este comando necesita acceso de usuario root" + +msgid "This is already a posix group" +msgstr "Este ya es un grupo posix" + +msgid "This entry is already enabled" +msgstr "Esta entrada ya está habilitada" + +msgid "This entry is already disabled" +msgstr "Esta entrada ya está desactivada" + +msgid "This entry cannot be enabled or disabled" +msgstr "Esta entrada no puede ser activada o desactivada" + +msgid "This entry is not a member" +msgstr "Esta entrada no es miembro" + +msgid "A group may not be a member of itself" +msgstr "Un grupo no puede ser miembro de sí mismo" + +msgid "This entry is already a member" +msgstr "Esta entrada ya es un miembro" + +#, python-format +msgid "Base64 decoding failed: %(reason)s" +msgstr "Falló la decodificación base64: %(reason)s" + +msgid "A group may not be added as a member of itself" +msgstr "Un grupo no puede ser agregado como miembro de sí mismo" + +msgid "The default users group cannot be removed" +msgstr "El grupo de usuarios predeterminado no puede ser eliminado" + +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. " + +msgid "A managed group cannot have a password policy." +msgstr "Un grupo administrado no puede tener una política de contraseñas." + +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "'%(entry)s' no tiene certificado" + +#, 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." + +#, python-format +msgid "" +"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" + +#, python-format +msgid "%(attr)s does not contain '%(value)s'" +msgstr "%(attr)s no contiene '%(value)s'" + +#, python-format +msgid "" +"The search criteria was not specific enough. Expected 1 and found %(found)d." +msgstr "" +"El criterio de búsqueda no fue bastante específico. Se esperaba 1 y se " +"encontró %(found)d." + +msgid "This group already allows external members" +msgstr "Este grupo ya acepta miembros externos" + +msgid "change collided with another change" +msgstr "la modificación choca con otra modificación diferente" + +msgid "no modifications to be performed" +msgstr "no existen modificaciones a ser realizadas" + +#, python-format +msgid "%(desc)s: %(info)s" +msgstr "%(desc)s:%(info)s" + +msgid "limits exceeded for this query" +msgstr "han sido excedidos los límites para esta consulta" + +#, python-format +msgid "%(info)s" +msgstr "%(info)s" + +msgid "modifying primary key is not allowed" +msgstr "modificar la clave principal no está permitido" + +#, python-format +msgid "%(attr)s: Only one value allowed." +msgstr " %(attr)s : Solamente un valor permitido." + +#, python-format +msgid "%(attr)s: Invalid syntax." +msgstr "%(attr)s: sintaxis inválida." + +#, python-format +msgid "Bad search filter %(info)s" +msgstr "%(info)s de filtro de búsqueda errado" + +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" +msgstr "La operación certificada no puede ser completada: %(error)s" + +#, python-format +msgid "Certificate format error: %(error)s" +msgstr "Error de certificado de formato: %(error)s " + +msgid "Already registered" +msgstr "Ya está registrado" + +msgid "Not registered yet" +msgstr "Aún no está registrado" + +#, python-format +msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it" +msgstr "" +"No se puede eliminar %(key)s porque %(label)s %(dependent)s lo requiere" + +msgid "Out of memory\n" +msgstr "¡Memoria insuficiente!\n" + +msgid "Warning unrecognized encryption type.\n" +msgstr "Precaución tipo de encriptación no reconocido.\n" + +msgid "Warning unrecognized salt type.\n" +msgstr "Advertencia de tipo de sal no reconocido.\n" + +msgid "Out of memory!?\n" +msgstr "" +"¡Memoria insuficiente!\n" +"\n" + +msgid "Enctype comparison failed!\n" +msgstr "¡Falló comparación de Enctype!\n" + +msgid "Failed to create random key!\n" +msgstr "Falló la creación de clave aleatoria\n" + +msgid "Failed to create key!\n" +msgstr "¡Falló la creación de clave!\n" + +msgid "Bad or unsupported salt type.\n" +msgstr "Tipo de sal malo o no soportado.\n" diff --git a/po/eu.po b/po/eu.po index 645fd798f..88a0a35e8 100644 --- a/po/eu.po +++ b/po/eu.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -14,44 +14,12 @@ msgstr "" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -msgid "an internal error has occurred" -msgstr "barne-errore bat gertatu da" - -#, python-format -msgid "Invalid JSON-RPC request: %(error)s" -msgstr "Baliogabeko JSON-RPC eskaera: %(error)s" - -#, python-format -msgid "Kerberos error: %(major)s/%(minor)s" -msgstr "Kerberos errorea: %(major)s/%(minor)s" - -msgid "Passwords do not match" -msgstr "Pasahitzak ez datoz bat" - -#, python-format -msgid "%(reason)s" -msgstr "%(reason)s" - -msgid "This entry already exists" -msgstr "Sarrera hau dagoeneko existitzen da" - -#, python-format -msgid "%(desc)s: %(info)s" -msgstr "%(desc)s: %(info)s" - -#, python-format -msgid "%(info)s" -msgstr "%(info)s" - #, c-format msgid "Passwords do not match!" msgstr "Pasahitzak ez datoz bat!" -msgid "Command name" -msgstr "Komandoaren izena" - -msgid "invalid IP address format" -msgstr "IP helbide formatu baliogabea" +msgid "LDAP password" +msgstr "LDAP pasahitza" #, c-format msgid "Incorrect password.\n" @@ -73,24 +41,24 @@ msgstr "fitxategi-izena" msgid "password" msgstr "pasahitza" -msgid "LDAP password" -msgstr "LDAP pasahitza" - -msgid "Username" -msgstr "Erabiltzaile-izena" - -msgid "Password" -msgstr "Pasahitza" - -msgid "Certificate" -msgstr "Ziurtagiria" - -msgid "Force" -msgstr "Behartu" - msgid "Description" msgstr "Deskribapena" +msgid "UID" +msgstr "UID" + +msgid "Rename" +msgstr "Berrizendatu" + +msgid "Group" +msgstr "Taldea" + +msgid "History size" +msgstr "Historiaren tamaina" + +msgid "User" +msgstr "Erabiltzailea" + msgid "Enabled" msgstr "Gaituta" @@ -100,14 +68,17 @@ msgstr "Erabiltzaileak" msgid "User Groups" msgstr "Erabiltzaile-taldeak" +msgid "External User" +msgstr "Kanpoko erabiltzailea" + msgid "Hosts" msgstr "Ostalariak" msgid "Host Groups" msgstr "Ostalari-taldeak" -msgid "External User" -msgstr "Kanpoko erabiltzailea" +msgid "External host" +msgstr "Kanpoko ostalaria" msgid "RunAs External User" msgstr "Exekutatu kanpoko erabiltzaile bezala" @@ -118,11 +89,11 @@ msgstr "Exekutatu kanpoko talde bezala" msgid "Sudo Option" msgstr "Sudo aukera" -msgid "External host" -msgstr "Kanpoko ostalaria" +msgid "NIS domain name" +msgstr "NIS domeinu-izena" -msgid "Sudo Command Group" -msgstr "Sudo komando-taldea" +msgid "group" +msgstr "taldea" msgid "Permissions" msgstr "Baimenak" @@ -130,62 +101,23 @@ msgstr "Baimenak" msgid "Attributes" msgstr "Atributuak" -msgid "Type" -msgstr "Mota" - -msgid "Filter" -msgstr "Iragazkia" - -msgid "Subtree" -msgstr "Azpi-zuhaitza" - -msgid "Target group" -msgstr "Helburuko taldea" - -msgid "Rename" -msgstr "Berrizendatu" - -msgid "Host name" -msgstr "Ostalari-izena" - -msgid "A description of this host" -msgstr "Ostalari honen deskribapena" - -msgid "Operating system" -msgstr "Sistema eragilea" - -msgid "Host operating system and version (e.g. \"Fedora 9\")" -msgstr "Ostalariaren sistema eragilea eta bertsioa (adibidez, \"Fedora 9\")" - -msgid "User password" -msgstr "Erabiltzailearen pasahitza" - -msgid "Random password" -msgstr "Ausazko pasahitza" - -msgid "HBAC rule" -msgstr "HBAC araua" - -msgid "Service group name" -msgstr "Zerbitzu-taldearen izena" - -msgid "HBAC service group description" -msgstr "HBAC zerbitzu-taldearen deskribapena" - -msgid "ACI name" -msgstr "ACI izena" - -msgid "Permission" -msgstr "Baimena" - msgid "User group" msgstr "Erabiltzaile-taldea" -msgid "ACI prefix" -msgstr "ACI aurrizkia" +msgid "Certificate" +msgstr "Ziurtagiria" -msgid "New ACI name" -msgstr "ACI izen berria" +msgid "Force" +msgstr "Behartu" + +msgid "Rule type" +msgstr "Arau-mota" + +msgid "Services" +msgstr "Zerbitzuak" + +msgid "Service Groups" +msgstr "Zerbitzu-taldeak" msgid "Service name" msgstr "Zerbitzuaren izena" @@ -196,18 +128,6 @@ msgstr "HBAC zerbitzua" msgid "HBAC service description" msgstr "HBAC zerbitzuaren deskribapena" -msgid "description" -msgstr "deskribapena" - -msgid "Group" -msgstr "Taldea" - -msgid "History size" -msgstr "Historiaren tamaina" - -msgid "User" -msgstr "Erabiltzailea" - msgid "First name" msgstr "Izena" @@ -223,8 +143,11 @@ msgstr "Bistaratu izena" msgid "Email address" msgstr "E-posta helbidea" -msgid "UID" -msgstr "UID" +msgid "Password" +msgstr "Pasahitza" + +msgid "Random password" +msgstr "Ausazko pasahitza" msgid "Street address" msgstr "Kalea" @@ -244,23 +167,56 @@ msgstr "Fax-zenbakia" msgid "Manager" msgstr "Kudeatzailea" -msgid "group" -msgstr "taldea" +msgid "Class" +msgstr "Klasea" -msgid "Create a new group." -msgstr "Sortu talde berri bat." +msgid "HBAC rule" +msgstr "HBAC araua" -msgid "Delete group." -msgstr "Ezabatu taldea." +msgid "Type" +msgstr "Mota" -msgid "Search for groups." -msgstr "Bilatu taldeak." +msgid "Subtree" +msgstr "Azpi-zuhaitza" -msgid "Modify a group." -msgstr "Aldatu talde bat." +msgid "Target group" +msgstr "Helburuko taldea" -msgid "New Password" -msgstr "Pasahitz berria" +msgid "Service group name" +msgstr "Zerbitzu-taldearen izena" + +msgid "HBAC service group description" +msgstr "HBAC zerbitzu-taldearen deskribapena" + +msgid "ACI name" +msgstr "ACI izena" + +msgid "Permission" +msgstr "Baimena" + +msgid "Filter" +msgstr "Iragazkia" + +msgid "ACI prefix" +msgstr "ACI aurrizkia" + +msgid "New ACI name" +msgstr "ACI izen berria" + +msgid "Host name" +msgstr "Ostalari-izena" + +msgid "A description of this host" +msgstr "Ostalari honen deskribapena" + +msgid "Operating system" +msgstr "Sistema eragilea" + +msgid "Host operating system and version (e.g. \"Fedora 9\")" +msgstr "Ostalariaren sistema eragilea eta bertsioa (adibidez, \"Fedora 9\")" + +msgid "User password" +msgstr "Erabiltzailearen pasahitza" msgid "Host-group" msgstr "Ostalari-taldea" @@ -271,36 +227,6 @@ msgstr "Ostalari-taldearen izena" msgid "A description of this host-group" msgstr "Ostalari-talde honen deskribapena" -msgid "NIS domain name" -msgstr "NIS domeinu-izena" - -msgid "Class" -msgstr "Klasea" - -msgid "Hostname" -msgstr "Ostalari-izena" - -msgid "Administrator e-mail address" -msgstr "Administratzailearen e-posta helbidea" - -msgid "Rule type" -msgstr "Arau-mota" - -msgid "Services" -msgstr "Zerbitzuak" - -msgid "Service Groups" -msgstr "Zerbitzu-taldeak" - -msgid "Serial number" -msgstr "Serie-zenbakia" - -msgid "Reason" -msgstr "Arrazoia" - -msgid "Output filename" -msgstr "Irteerako fitxategi-izena" - msgid "Maximum username length" msgstr "Erabiltzaile-izenaren gehienezko luzera" @@ -325,15 +251,83 @@ msgstr "Erabiltzaile berrientzako talde lehenetsia" msgid "Default e-mail domain" msgstr "E-posta domeinu lehenetsia" +msgid "Sudo Command Group" +msgstr "Sudo komando-taldea" + +msgid "description" +msgstr "deskribapena" + msgid "Subject" msgstr "Gaia" +msgid "Reason" +msgstr "Arrazoia" + +msgid "Serial number" +msgstr "Serie-zenbakia" + +msgid "Output filename" +msgstr "Irteerako fitxategi-izena" + +msgid "Create a new group." +msgstr "Sortu talde berri bat." + +msgid "Delete group." +msgstr "Ezabatu taldea." + +msgid "Search for groups." +msgstr "Bilatu taldeak." + +msgid "Modify a group." +msgstr "Aldatu talde bat." + +msgid "Hostname" +msgstr "Ostalari-izena" + +msgid "Administrator e-mail address" +msgstr "Administratzailearen e-posta helbidea" + +msgid "New Password" +msgstr "Pasahitz berria" + +msgid "Username" +msgstr "Erabiltzaile-izena" + msgid "Data" msgstr "Datuak" msgid "Error" msgstr "Errorea" +msgid "PKINIT" +msgstr "PKINIT" + +msgid "ACI" +msgstr "ACI" + +msgid "Serial Number" +msgstr "Serie-zenbakia" + +msgid "Fingerprint (SHA1)" +msgstr "Hatz-marka (SHA1)" + +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "\"%(value)s\" zerbitzua gehituta" + +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "\"%(value)s\" zerbitzua ezabatuta" + +msgid "HBAC rules" +msgstr "HBAC arauak" + +msgid "HBAC Rules" +msgstr "HBAC arauak" + +msgid "HBAC Services" +msgstr "HBAC zerbitzuak" + msgid "Add and Add Another" msgstr "Gehitu eta gehitu beste bat" @@ -382,9 +376,6 @@ msgstr "Ziurtagiri berria" msgid "Organization" msgstr "Erakundea" -msgid "Serial Number" -msgstr "Serie-zenbakia" - msgid "SHA1 Fingerprint" msgstr "SHA1 hatz-marka" @@ -445,6 +436,16 @@ msgstr "IPA zerbitzaria" msgid "Sudo" msgstr "Sudo" +msgid "A list of ACI values" +msgstr "ACI balioen zerrenda bat" + +#, python-format +msgid "Syntax Error: %(error)s" +msgstr "Sintaxi-errorea: %(error)s" + +msgid "ACIs" +msgstr "ACIak" + msgid "entry" msgstr "sarrera" @@ -455,23 +456,6 @@ msgstr "sarrerak" msgid "Rename the %(ldap_obj_name)s object" msgstr "%(ldap_obj_name)s objektua berrizendatu" -msgid "Fingerprint (SHA1)" -msgstr "Hatz-marka (SHA1)" - -#, python-format -msgid "Added service \"%(value)s\"" -msgstr "\"%(value)s\" zerbitzua gehituta" - -#, python-format -msgid "Deleted service \"%(value)s\"" -msgstr "\"%(value)s\" zerbitzua ezabatuta" - -msgid "ACI" -msgstr "ACI" - -msgid "PKINIT" -msgstr "PKINIT" - #, python-format msgid "Added host \"%(value)s\"" msgstr "\"%(value)s\" ostalaria gehituta" @@ -484,25 +468,19 @@ msgstr "\"%(value)s\" ostalaria ezabatuta" msgid "Modified host \"%(value)s\"" msgstr "\"%(value)s\" ostalaria aldatuta" -msgid "A list of ACI values" -msgstr "ACI balioen zerrenda bat" - #, python-format -msgid "Syntax Error: %(error)s" -msgstr "Sintaxi-errorea: %(error)s" +msgid "Added hostgroup \"%(value)s\"" +msgstr "\"%(value)s\" ostalari-taldea gehituta" -msgid "ACIs" -msgstr "ACIak" +msgid "Configuration" +msgstr "Konfigurazioa" -msgid "HBAC Services" -msgstr "HBAC zerbitzuak" +msgid "The group doesn't exist" +msgstr "Taldea ez da existitzen" msgid "Invalid LDAP URI." msgstr "LDAP URI baliogabea." -msgid "Sudo Commands" -msgstr "Sudo komandoak" - #, python-format msgid "Added user \"%(value)s\"" msgstr "\"%(value)s\" erabiltzailea gehituta" @@ -521,21 +499,43 @@ msgstr "taldeak" msgid "User Group" msgstr "Erabiltzaile-taldea" -#, python-format -msgid "Added hostgroup \"%(value)s\"" -msgstr "\"%(value)s\" ostalari-taldea gehituta" +msgid "Sudo Commands" +msgstr "Sudo komandoak" msgid "invalid IP network format" msgstr "IP sare formatu baliogabea" -msgid "HBAC rules" -msgstr "HBAC arauak" +msgid "Command name" +msgstr "Komandoaren izena" -msgid "HBAC Rules" -msgstr "HBAC arauak" +msgid "invalid IP address format" +msgstr "IP helbide formatu baliogabea" -msgid "Configuration" -msgstr "Konfigurazioa" +msgid "an internal error has occurred" +msgstr "barne-errore bat gertatu da" -msgid "The group doesn't exist" -msgstr "Taldea ez da existitzen" +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" +msgstr "Baliogabeko JSON-RPC eskaera: %(error)s" + +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" +msgstr "Kerberos errorea: %(major)s/%(minor)s" + +msgid "Passwords do not match" +msgstr "Pasahitzak ez datoz bat" + +#, python-format +msgid "%(reason)s" +msgstr "%(reason)s" + +msgid "This entry already exists" +msgstr "Sarrera hau dagoeneko existitzen da" + +#, python-format +msgid "%(desc)s: %(info)s" +msgstr "%(desc)s: %(info)s" + +#, python-format +msgid "%(info)s" +msgstr "%(info)s" diff --git a/po/fr.po b/po/fr.po index a13efd71a..440d3b3e9 100644 --- a/po/fr.po +++ b/po/fr.po @@ -5,9 +5,9 @@ # Pavel Vomacka , 2017. #zanata msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -18,1024 +18,269 @@ msgstr "" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" -#, python-format -msgid "Retrieving CA cert chain failed: %s" -msgstr "Échec de la récupération de la chaîne de certificat de l'AC : %s" +#, c-format +msgid "Kerberos context initialization failed: %1$s (%2$d)\n" +msgstr "Échec de l'initialisation du contexte Kerberos : %1$s (%2$d)\n" -#, python-format -msgid "request failed with HTTP status %d" -msgstr "échec de la requête avec le code état HTTP %d" +#, c-format +msgid "Unable to parse principal: %1$s (%2$d)\n" +msgstr "Impossible d'analyser le principal : %1$s (%2$d)\n" -#, python-format -msgid "Retrieving CA status failed: %s" -msgstr "Échec de la récupération de l'état de l'AC : %s" +#, c-format +msgid "No keys accepted by KDC\n" +msgstr "Aucune clé acceptée par le KDC\n" -#, python-format -msgid "Retrieving CA status failed with status %d" -msgstr "Échec de la récupération de l'état de l'AC avec l'état %d" +#, c-format +msgid "Out of memory \n" +msgstr "Mémoire saturée\n" -#, python-format -msgid "objectclass %s not found" -msgstr "classe d'objet %s introuvable" +#, c-format +msgid "Unable to set LDAP_OPT_X_TLS\n" +msgstr "Impossible de paramétrer LDAP_OPT_X_TLS\n" -msgid "Show environment variables." -msgstr "Afficher les variables d'environnement." +#, c-format +msgid "Unable to set LDAP_OPT_X_TLS_CERTIFICATE\n" +msgstr "Impossible de paramétrer LDAP_OPT_X_TLS_CERTIFICATE\n" -#, python-format -msgid "%(count)d variables" -msgstr "%(count)d variables" +#, c-format +msgid "Unable to initialize ldap library!\n" +msgstr "Impossible d'initialiser la bibliothèque LDAP !\n" -msgid "" -"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." +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "Impossible de définir LDAP_OPT_X_SASL_NOCANON\n" -msgid "Dictionary mapping variable name to value" -msgstr "Annuaire associant un nom de variable à une valeur" +#, c-format +msgid "Unable to set LDAP_OPT_PROTOCOL_VERSION\n" +msgstr "Impossible de définir LDAP_OPT_PROTOCOL_VERSION\n" -msgid "Total number of variables env (>= count)" -msgstr "Nombre total de variables d'environnement (>= count)" +#, c-format +msgid "Simple bind failed\n" +msgstr "Échec de la connexion simple\n" -msgid "Number of variables returned (<= total)" -msgstr "Nombre de variables renvoyées (<= total)" +#, c-format +msgid "Operation failed: %s\n" +msgstr "Opération échouée : %s\n" -msgid "Show all loaded plugins." -msgstr "Afficher tous les greffons chargés." +#, c-format +msgid "Failed to get result: %s\n" +msgstr "Impossible d'obtenir le résultat : %s\n" -#, 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" +#, c-format +msgid "Timeout exceeded." +msgstr "Délai d'attente dépassé." -msgid "Number of plugins loaded" -msgstr "Nombre de greffons chargés" +#, c-format +msgid "Failed to parse extended result: %s\n" +msgstr "Impossible d'analyser le résultat étendu : %s\n" -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at '%(server)s'" -msgstr "Client %(cver)s incompatible avec le serveur %(sver)s à « %(server)s »" +#, c-format +msgid "Failed to parse result: %s\n" +msgstr "Impossible d'analyser le résultat : %s\n" -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" -msgstr "Erreur %(code)d inconnue renvoyée par %(server)s : %(error)s" +#, c-format +msgid "Missing reply control list!\n" +msgstr "Absence de liste de contrôle des réponses !\n" -msgid "an internal error has occurred" -msgstr "une erreur interne est survenue" +#, c-format +msgid "Missing reply control!\n" +msgstr "Absence de contrôle de réponse !\n" -#, python-format -msgid "an internal error has occurred on server at '%(server)s'" -msgstr "une erreur interne est survenue sur le serveur à « %(server)s »" +#, c-format +msgid "Out of Memory!\n" +msgstr "Mémoire saturée !\n" -#, python-format -msgid "unknown command '%(name)s'" -msgstr "commande « %(name)s » inconnue" +#, c-format +msgid "Failed to create control!\n" +msgstr "Échec à la création du contrôle !\n" -#, python-format -msgid "error on server '%(server)s': %(error)s" -msgstr "erreur sur le serveur « %(server)s » : %(error)s" +#, c-format +msgid "Failed to bind to server!\n" +msgstr "La liaison au serveur a échoué !\n" -#, python-format -msgid "cannot connect to '%(uri)s': %(error)s" -msgstr "impossible de se connecter à « %(uri)s » : %(error)s" +#, c-format +msgid "Failed to get keytab!\n" +msgstr "Échec d'obtention du tableau de clés !\n" -#, python-format -msgid "Invalid JSON-RPC request: %(error)s" -msgstr "Requête JSON-RPC invalide : %(error)s" +#, c-format +msgid "ber_init() failed, Invalid control ?!\n" +msgstr "Échec de « ber_init() », contrôle invalide ?!\n" -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" -msgstr "erreur de conversion des données lors du transport XML-RPC : %(error)s" +#, c-format +msgid "ber_scanf() failed, unable to find kvno ?!\n" +msgstr "échec de « ber_scanf() », « kvno » introuvable ?!\n" -#, python-format -msgid "Missing or invalid HTTP Referer, %(referer)s" -msgstr "Référence HTTP manquante ou invalide, %(referer)s" +#, c-format +msgid "Failed to retrieve encryption type type #%d\n" +msgstr "Échec lors de la récupération du type de chiffrement #%d\n" -#, python-format -msgid "Kerberos error: %(major)s/%(minor)s" -msgstr "Erreur Kerberos : %(major)s/%(minor)s" +#, c-format +msgid "Failed to retrieve encryption type %1$s (#%2$d)\n" +msgstr "Échec lors de la récupération du type de chiffrement %1$s (#%2$d)\n" -msgid "did not receive Kerberos credentials" -msgstr "Justificatifs Kerberos non reçus" +#, c-format +msgid "Failed to retrieve any keys" +msgstr "Échec lors de la récupération de toute clé" -#, python-format -msgid "Service '%(service)s' not found in Kerberos database" -msgstr "Service « %(service)s » introuvable dans la base de données Kerberos" +msgid "Failed to decode control reply!\n" +msgstr "Impossible de décoder la réponse de contrôle !\n" -msgid "No credentials cache found" -msgstr "Cache des justificatifs d'identité introuvable" +msgid "New Principal Password" +msgstr "Nouveau mot de passe du principal" -msgid "Ticket expired" -msgstr "Ticket périmé" - -msgid "Credentials cache permissions incorrect" -msgstr "Droits d'accès incorrects au cache des justificatifs d'identité" - -msgid "Bad format in credentials cache" -msgstr "Mauvais format de cache des justificatifs d'identité" - -msgid "Cannot resolve KDC for requested realm" -msgstr "Impossible de résoudre le KDC pour le domaine demandé" - -msgid "Session error" -msgstr "Erreur de session" - -#, python-format -msgid "Principal %(principal)s cannot be authenticated: %(message)s" -msgstr "Le principal %(principal)s n'a pas pu être authentifié : %(message)s" - -#, python-format -msgid "Insufficient access: %(info)s" -msgstr "Accès insuffisant : %(info)s" - -#, python-format -msgid "command '%(name)s' takes no arguments" -msgstr "la commande « %(name)s » ne prend pas d'argument" - -#, python-format -msgid "command '%(name)s' takes at most %(count)d argument" -msgid_plural "command '%(name)s' takes at most %(count)d arguments" -msgstr[0] "la commande « %(name)s » prend au plus %(count)d argument" -msgstr[1] "la commande « %(name)s » prend au plus %(count)d arguments" - -#, python-format -msgid "overlapping arguments and options: %(names)s" -msgstr "les arguments et options se chevauchent : %(names)s" - -#, python-format -msgid "'%(name)s' is required" -msgstr "« %(name)s » est requis" - -#, python-format -msgid "invalid '%(name)s': %(error)s" -msgstr "« %(name)s » invalide : %(error)s" - -#, python-format -msgid "api has no such namespace: '%(name)s'" -msgstr "l'API n'a pas un tel espace de noms : « %(name)s »" - -msgid "Passwords do not match" -msgstr "Les mots de passe ne correspondent pas" - -msgid "Command not implemented" -msgstr "Commande non implémentée" - -msgid "Client is not configured. Run ipa-client-install." -msgstr "Le client n'est pas configuré. Lancer « ipa-client-install »." - -#, python-format -msgid "Could not get %(name)s interactively" -msgstr "Impossible d'obtenir %(name)s de façon interactive" - -#, python-format -msgid "Command '%(name)s' has been deprecated" -msgstr "La commande « %(name)s » a été abandonnée." - -#, python-format -msgid "Domain '%(domain)s' is not a root domain for forest '%(forest)s'" -msgstr "" -"Le domaine « %(domain)s » n'est pas un domaine racine pour la forêt " -"« %(forest)s »" - -#, python-format -msgid "%(reason)s" -msgstr "%(reason)s" - -msgid "This entry already exists" -msgstr "Cette entrée existe déjà" - -msgid "You must enroll a host in order to create a host service" -msgstr "Vous devez enregistrer un hôte afin de créer un service" - -#, 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" - -msgid "" -"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" - -msgid "This command requires root access" -msgstr "Cette commande requiert un accès administrateur" - -msgid "This is already a posix group" -msgstr "Ce groupe est déjà de type POSIX" - -#, python-format -msgid "Principal is not of the form user@REALM: '%(principal)s'" -msgstr "Le principal n'est pas de la forme user@REALM : « %(principal)s »" - -msgid "This entry is already enabled" -msgstr "Cette entrée est déjà activée" - -msgid "This entry is already disabled" -msgstr "Cette entrée est déjà désactivée" - -msgid "This entry cannot be enabled or disabled" -msgstr "Cette entrée ne peut être activée ou désactivée" - -msgid "This entry is not a member" -msgstr "Cette entrée n'est pas un membre" - -msgid "A group may not be a member of itself" -msgstr "Un groupe ne peut être membre de lui-même" - -msgid "This entry is already a member" -msgstr "Cette entrée est déjà membre" - -#, python-format -msgid "Base64 decoding failed: %(reason)s" -msgstr "Échec du décodage « base64 » : %(reason)s" - -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" - -msgid "The default users group cannot be removed" -msgstr "Le groupe par défaut ne peut être supprimé" - -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é." - -msgid "A managed group cannot have a password policy." -msgstr "Un groupe géré ne peut pas avoir de politique de mot de passe." - -#, python-format -msgid "'%(entry)s' doesn't have a certificate." -msgstr "'%(entry)s' ne possède pas de certificat." - -#, 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à." - -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" -msgstr "" -"Un problème est survenu en vérifiant que tous les membres étaient %(verb)s : " -"%(exc)s" - -#, python-format -msgid "%(attr)s does not contain '%(value)s'" -msgstr "%(attr)s ne contient pas '%(value)s'" - -#, python-format -msgid "" -"The search criteria was not specific enough. Expected 1 and found %(found)d." -msgstr "" -"Le critère de recherche n'est pas suffisamment précis. Une valeur attendue, " -"mais %(found)d trouvées." - -msgid "This group already allows external members" -msgstr "Ce groupe autorise déjà des membres externes" - -msgid "This group cannot be posix because it is external" -msgstr "Ce groupe ne peut être de type POSIX car il est externe" - -msgid "This is already a posix group and cannot be converted to external one" -msgstr "" -"Ce groupe est déjà de type POSIX et ne peut être converti en groupe externe" - -#, python-format -msgid "Server removal aborted: %(reason)s." -msgstr "Arrêt brutal de la suppression du serveur : %(reason)s." - -#, python-format -msgid "no command nor help topic '%(topic)s'" -msgstr "pas de commande ou de sujet d'aide pour « %(topic)s »" - -msgid "change collided with another change" -msgstr "la modification s'est heurtée à une autre" - -msgid "no modifications to be performed" -msgstr "pas de modification à effectuer" - -#, python-format -msgid "%(desc)s: %(info)s" -msgstr "%(desc)s : %(info)s" - -msgid "limits exceeded for this query" -msgstr "limites dépassées pour cette requête" - -#, python-format -msgid "%(info)s" -msgstr "%(info)s" - -msgid "modifying primary key is not allowed" -msgstr "la modification de clé principale n'est pas autorisée" - -#, python-format -msgid "%(attr)s: Only one value allowed." -msgstr "%(attr)s : une seule valeur autorisée." - -#, python-format -msgid "%(attr)s: Invalid syntax." -msgstr "%(attr)s : syntaxe invalide." - -#, python-format -msgid "Bad search filter %(info)s" -msgstr "Filtre de recherche invalide %(info)s" - -msgid "Not allowed on non-leaf entry" -msgstr "Interdit sur une entrée qui n'est pas une feuille" - -msgid "LDAP timeout" -msgstr "Délai d'expiration LDAP" - -#, python-format -msgid "%(task)s LDAP task timeout, Task DN: '%(task_dn)s'" -msgstr "" -"Délai échu pour la tâche LDAP %(task)s, DN de la tâche : « %(task_dn)s »" - -msgid "Configured time limit exceeded" -msgstr "Limite configurée de durée dépassée" - -msgid "Configured size limit exceeded" -msgstr "Limite configurée de taille dépassée" - -msgid "Configured administrative server limit exceeded" -msgstr "Limite configurée côté serveur dépassée" - -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" -msgstr "L'opération de certification ne peut être effectuée : %(error)s" - -#, python-format -msgid "Certificate format error: %(error)s" -msgstr "Erreur de format de certificat : %(error)s" - -msgid "Already registered" -msgstr "Déjà enregistré" - -msgid "Not registered yet" -msgstr "Pas encore enregistré" - -#, python-format -msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it" -msgstr "" -"%(key)s ne peut pas être supprimé car %(label)s %(dependent)s le requiert" - -#, python-format -msgid "" -"%(key)s cannot be deleted or disabled because it is the last member of " -"%(label)s %(container)s" -msgstr "" -"%(key)s ne peut être supprimé ou désactivé étant le dernier membre de " -"%(container)s %(label)s" - -#, python-format -msgid "%(label)s %(key)s cannot be deleted/modified: %(reason)s" -msgstr "%(label)s %(key)s ne peut être supprimé ou modifié : %(reason)s" - -#, python-format -msgid "%(name)s certificate is not valid" -msgstr "le certificat %(name)s est invalide" - -#, python-format -msgid "Host '%(hostname)s' does not have corresponding DNS A/AAAA record" -msgstr "" -"L'hôte « %(hostname)s » n'a pas d'enregistrement DNS de type A/" -"AAAA correspondant" - -#, python-format -msgid "DNS check failed: Expected {%(expected)s} got {%(got)s}" -msgstr "" -"Échec de vérification du DNS : {%(expected)s} attendu, {%(got)s} obtenu" - -#, python-format -msgid "%(exception)s" -msgstr "%(exception)s" - -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "Entrer à nouveau %(label)s pour validation :" +msgid "Verify Principal Password" +msgstr "Vérifier le mot de passe du principal" #, c-format msgid "Passwords do not match!" msgstr "Les mots de passe ne correspondent pas !" -msgid "No matching entries found" -msgstr "Aucune entrée correspondante trouvée" - -msgid "Topic or Command" -msgstr "Thème ou commande" - -msgid "The topic or command name." -msgstr "Le nom du thème ou de la commande." - -msgid "Topic commands:" -msgstr "Commandes du thème :" - -msgid "To get command help, use:" -msgstr "Pour obtenir de l'aide, utiliser :" - -msgid " ipa --help" -msgstr " ipa --help" - -msgid "Command name" -msgstr "Nom de commande" - -msgid "Positional arguments" -msgstr "Arguments positionnels" - -#, python-format -msgid "Same as --%s" -msgstr "Identique à --%s" - -msgid "Deprecated options" -msgstr "Options obsolètes" - -msgid "No file to read" -msgstr "Pas de fichier à lire" - -msgid "any of the configured servers" -msgstr "n'importe quel serveur configuré" - -msgid "Additional instructions:" -msgstr "Instructions complémentaires :" - -#, python-format -msgid "" -"API Version number was not sent, forward compatibility not guaranteed. " -"Assuming server's API version, %(server_version)s" -msgstr "" -"Le numéro de version de l'API n'a pas été envoyé, la compatibilité " -"ascendante n'est pas garantie. La version de l'API du serveur est supposée " -"être %(server_version)s" - -msgid "" -"DNS forwarder semantics changed since IPA 4.0.\n" -"You may want to use forward zones (dnsforwardzone-*) instead.\n" -"For more details read the docs." -msgstr "" -"La sémantique de redirection DNS a été modifié depuis IPA 4.0.\n" -"Utilisez à la place les redirections de zones (dnsforwardzone-*).\n" -"Pour plus de détails, lisez la documentation." - -#, python-format -msgid "" -"DNSSEC support is experimental.\n" -"%(additional_info)s" -msgstr "" -"La prise en charge de DNSSEC est expérimentale.\n" -"%(additional_info)s" - -#, python-format -msgid "'%(option)s' option is deprecated. %(additional_info)s" -msgstr "L'option « %(option)s » est obsolète. %(additional_info)s" - -#, python-format -msgid "" -"Semantic of %(label)s was changed. %(current_behavior)s\n" -"%(hint)s" -msgstr "" -"La sémantique de %(label)s a changé. %(current_behavior)s\n" -"%(hint)s" - -#, python-format -msgid "DNS server %(server)s: %(error)s." -msgstr "Serveur DNS %(server)s : %(error)s." - -#, python-format -msgid "" -"DNS server %(server)s does not support DNSSEC: %(error)s.\n" -"If DNSSEC validation is enabled on IPA server(s), please disable it." -msgstr "" -"Le serveur DNS %(server)s ne prend pas en charge : %(error)s.\n" -"Si la validation DNSSEC est activée sur le ou les serveurs IPA, merci de la " -"désactiver." - -#, python-format -msgid "" -"forward zone \"%(fwzone)s\" is not effective because of missing proper NS " -"delegation in authoritative zone \"%(authzone)s\". Please add NS record " -"\"%(ns_rec)s\" to parent zone \"%(authzone)s\"." -msgstr "" -"La zone redirigiée « %(fwzone)s » n'est pas en fonction car il lui manque " -"une délégation NS correcte dans la zone faisant autorité « %(authzone)s ». " -"Merci d'ajouter les enregistrement NS « %(ns_rec)s » à la zone " -"« %(authzone)s »." - -#, python-format -msgid "" -"DNS server %(server)s does not support EDNS0 (RFC 6891): %(error)s.\n" -"If DNSSEC validation is enabled on IPA server(s), please disable it." -msgstr "" -"Le serveur DNS %(server)s ne prend pas en charge EDNS0 (RFC 6891) : " -"%(error)s.\n" -"Si la validation DNSSEC est activée sur le ou les serveurs, merci de la " -"désactiver." - -#, python-format -msgid "" -"DNSSEC validation failed: %(error)s.\n" -"Please verify your DNSSEC configuration or disable DNSSEC validation on all " -"IPA servers." -msgstr "" -"Échec de la validation DNSSEC : %(error)s.\n" -"Merci de vérifier votre configuration DNSSEC ou de désactiver la validation " -"DNSSEC sur tous les serveurs IPA." - -#, python-format -msgid "" -"The _kerberos TXT record from domain %(domain)s could not be created " -"(%(error)s).\n" -"This can happen if the zone is not managed by IPA. Please create the record " -"manually, containing the following value: '%(realm)s'" -msgstr "" -"L'enregistrement TXT _kerberos du domaine %(domain)s ne peut être créé " -"(%(error)s).\n" -"Cela peut arriver si la zone n'est pas gérée par IPA. Merci de créer " -"manuellement l'enregistrement, qui doit contenir la valeur suivante : " -"« %(realm)s »" - -#, python-format -msgid "" -"The _kerberos TXT record from domain %(domain)s could not be removed " -"(%(error)s).\n" -"This can happen if the zone is not managed by IPA. Please remove the record " -"manually." -msgstr "" -"L'enregistrement TXT _kerberos du domaine %(domain)s ne peut être supprimé " -"(%(error)s).\n" -"Cela peut arriver si la zone n'est pas gérée par IPA. Merci de le supprimer " -"manuellement." - -msgid "" -"No DNSSEC key master is installed. DNSSEC zone signing will not work until " -"the DNSSEC key master is installed." -msgstr "" -"Aucune clé maîtresse DNSSEC n'est installée. La signature de zone DNSSEC ne " -"pourra pas fonctionner tant qu'une clé maîtresse n'est installée." - -#, python-format -msgid "" -"Relative record name '%(record)s' contains the zone name '%(zone)s' as a " -"suffix, which results in FQDN '%(fqdn)s'. This is usually a mistake caused " -"by a missing dot at the end of the name specification." -msgstr "" -"Le nom d'enregistrement relatif « %(record)s » contient le nom de la zone " -"« %(zone)s » comme suffixe, ce qui aboutit au FQDN « %(fqdn)s ». Cela " -"constitue généralement une erreur du fait du point final manquant à la fin " -"du nom indiqué." - -#, python-format -msgid "'%(command)s' is deprecated. %(additional_info)s" -msgstr "La commande « %(command)s » est obsolète. %(additional_info)s" - -#, python-format -msgid "%(line)s" -msgstr "%(line)s" - -#, python-format -msgid "Search result has been truncated: %(reason)s" -msgstr "Les résultats de la recherche ont été tronqués : %(reason)s" - -#, python-format -msgid "" -"Your trust to %(domain)s is broken. Please re-create it by running 'ipa " -"trust-add' again." -msgstr "" -"Votre relation d'approbation avec %(domain)s est cassée. Merci de la recréer " -"à l'aide de « ipa trust-add »." - -#, python-format -msgid "DNS record(s) of host %(host)s could not be removed. (%(reason)s)" -msgstr "" -"Le ou les enregistrements DNS de l'hôte %(host)s n'ont pu être supprimés. " -"(%(reason)s)" - -msgid "" -"Forwarding policy conflicts with some automatic empty zones. Queries for " -"zones specified by RFC 6303 will ignore forwarding and recursion and always " -"result in NXDOMAIN answers. To override this behavior use forward policy " -"'only'." -msgstr "" -"La politique de transfert entre en conflit avec certaines zones automatiques " -"vides. Les requêtes pour les zones spécifiées dans la RFC 6303 ignoreront le " -"transfert et la récursion et résulteront toujours en des réponses NXDOMAIN. " -"Pour surcharger ce comportement, utiliser la politique de transfert « only »." - -#, python-format -msgid "Update of system record '%(record)s' failed with error: %(error)s" -msgstr "" -"Échec de la à jour de l'enregistrement du système « %(record)s », erreur : " -"%(error)s" - -#, python-format -msgid "" -"IPA does not manage the zone %(zone)s, please add records to your DNS server " -"manually" -msgstr "" -"IPA ne gère pas la zone %(zone)s, merci de modifier vos serveurs " -"DNS manuellement" - -msgid "" -"Automatic update of DNS system records failed. Please re-run update of " -"system records manually to get list of missing records." -msgstr "" -"Échec de la mise à jour automatique des enregistrements DNS du système. " -"Merci de relancer la mise à jour des enregistrements du système manuellement " -"pour obtenir la liste des enregistrements manquants." - -#, python-format -msgid "" -"Service %(service)s requires restart on IPA server %(server)s to apply " -"configuration changes." -msgstr "" -"Le service %(service)s doit être redémarré sur le serveur IPA %(server)s " -"pour permettre la prise en compte de la nouvelle configuration." - -#, python-format -msgid "" -"No DNS servers in IPA location %(location)s. Without DNS servers location is " -"not working as expected." -msgstr "" -"Aucun serveur DNS dans l'emplacement IPA %(location)s. Sans serveur DNS, " -"l'emplacement ne fonctionnera pas comme attendu." - -msgid "Results are truncated, try a more specific search" -msgstr "Résultats tronqués, essayer un recherche plus précise" - -#, python-format -msgid "Unknown option: %(option)s" -msgstr "Option inconnue : %(option)s" - -msgid "" -"Retrieve and print all attributes from the server. Affects command output." -msgstr "" -"Récupérer et afficher tous les attributs à partir du serveur. Affecte la " -"sortie de la commande." - -msgid "Print entries as stored on the server. Only affects output format." -msgstr "" -"Afficher les entrées telles qu'enregistrées sur le serveur. Affecte " -"uniquement le format de sortie." - -msgid "Client version. Used to determine if server will accept request." -msgstr "" -"Version client. Utilisée pour déterminer si le serveur accepte la requête." - -msgid "Forward to server instead of running locally" -msgstr "Rediriger vers le serveur au lieu d'exécuter localement" - -msgid "incorrect type" -msgstr "type incorrect" - -msgid "Only one value is allowed" -msgstr "Une seule valeur est autorisée" - -msgid "this option is deprecated" -msgstr "cette option est obsolète" - -msgid "must be True or False" -msgstr "doit être « True » ou « False »" - -msgid "must be an integer" -msgstr "doit être un nombre entier" - -#, python-format -msgid "must be at least %(minvalue)d" -msgstr "doit être supérieur ou égal à %(minvalue)d" - -#, python-format -msgid "can be at most %(maxvalue)d" -msgstr "doit être inférieur ou égal à %(maxvalue)d" - -msgid "must be a decimal number" -msgstr "doit être un nombre décimal" - -#, python-format -msgid "must be at least %(minvalue)s" -msgstr "doit valoir a minima %(minvalue)s" - -#, python-format -msgid "can be at most %(maxvalue)s" -msgstr "doit valoir au plus %(maxvalue)s" - -#, python-format -msgid "" -"number class '%(cls)s' is not included in a list of allowed number classes: " -"%(allowed)s" -msgstr "" -"La classe de nombres « %(cls)s » n'est pas dans la liste des classes de " -"nombres autorisées : %(allowed)s" - -#, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "doit correspondre au motif « %(pattern)s »" - -msgid "must be binary data" -msgstr "doivent être des données binaires" - -#, python-format -msgid "must be at least %(minlength)d bytes" -msgstr "doit être d'au moins %(minlength)d octets" - -#, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "peut être d'au plus %(maxlength)d octets" - -#, python-format -msgid "must be exactly %(length)d bytes" -msgstr "doit être d'exactement %(length)d octets" - -msgid "must be Unicode text" -msgstr "doit être un texte Unicode" - -msgid "Leading and trailing spaces are not allowed" -msgstr "Les espaces de début et de fin ne sont pas autorisées" - -#, python-format -msgid "must be at least %(minlength)d characters" -msgstr "doit être d'au moins %(minlength)d caractères" - -#, python-format -msgid "can be at most %(maxlength)d characters" -msgstr "peut être d'au plus %(maxlength)d caractères" - -#, python-format -msgid "must be exactly %(length)d characters" -msgstr "doit être d'exactement %(length)d caractères" - -#, python-format -msgid "The character %(char)r is not allowed." -msgstr "Le caractère « %(char)r » n'est pas autorisé." - -#, python-format -msgid "must be '%(value)s'" -msgstr "doit être « %(value)s »" - -#, python-format -msgid "must be one of %(values)s" -msgstr "doit être une valeur parmi %(values)s" - -msgid "must be datetime value" -msgstr "doit être une valeur date/heure" - -msgid "does not match any of accepted formats: " -msgstr "ne correspond à aucun des formats acceptés :" - -msgid "incomplete time value" -msgstr "valeur de temps incomplète" - -msgid "must be DNS name" -msgstr "doit être un nom de DNS" - -msgid "must be absolute" -msgstr "doit être absolu" - -msgid "must be relative" -msgstr "doit être relatif" - -msgid "must be dictionary" -msgstr "doit être un dictionnaire" - -msgid "A string searched in all relevant object attributes" -msgstr "" -"Une chaîne de caractères recherchée dans tous les attributs d'objets " -"pertinents" - -msgid "A dictionary representing an LDAP entry" -msgstr "Un annuaire représentant une entrée LDAP" - -msgid "A list of LDAP entries" -msgstr "Une liste d'entrées LDAP" - -msgid "All commands should at least have a result" -msgstr "Toutes les commandes doivent avoir au moins un résultat" - -msgid "User-friendly description of action performed" -msgstr "Description intelligible de l'action effectuée" - -msgid "The primary_key value of the entry, e.g. 'jdoe' for a user" -msgstr "" -"La valeur de la clé principale de l'entrée, par ex. « jdoe » pour un " -"utilisateur" - -msgid "Number of entries returned" -msgstr "Nombre d'entrées renvoyées" - -msgid "True if not all results were returned" -msgstr "Vrai si tous les résultats n'ont pas été renvoyés" - -msgid "List of deletions that failed" -msgstr "Liste des suppressions ayant échoué" - -msgid "True means the operation was successful" -msgstr "Vrai signifie que l'opération a réussi" - -msgid "Filename is empty" -msgstr "Le nom de fichier est vide" - -#, python-format -msgid "Permission denied: %(file)s" -msgstr "Autorisation refusée : %(file)s" - -msgid "empty DNS label" -msgstr "libellé DNS vide" - -msgid "DNS label cannot be longer that 63 characters" -msgstr "un libellé DNS ne peut pas dépasser 63 caractères" - -#, python-format -msgid "" -"only letters, numbers, %(chars)s are allowed. DNS label may not start or end " -"with %(chars2)s" -msgstr "" -"uniquement lettres, nombres, %(chars)s sont autorisés. Les noms DNS ne " -"peuvent commencer ou se terminer par %(chars2)s" - -msgid "too many '@' characters" -msgstr "trop de caractères « @ »" - -msgid "cannot be longer that 255 characters" -msgstr "ne peut pas dépasser 255 caractères." - -msgid "hostname contains empty label (consecutive dots)" -msgstr "le nom d'hôte contient un libellé vide (plusieurs points consécutifs)" - -msgid "not fully qualified" -msgstr "pas pleinement qualifié" - -msgid "invalid SSH public key" -msgstr "clé publique SSH invalide" - -msgid "options are not allowed" -msgstr "les options ne sont pas autorisées" - -msgid "invalid hostmask" -msgstr "masque d'hôte invalide" - -#, python-format -msgid "query '%(owner)s %(rtype)s': %(error)s" -msgstr "requête « %(owner)s %(rtype)s » : %(error)s" - -#, python-format -msgid "query '%(owner)s %(rtype)s' with EDNS0: %(error)s" -msgstr "requête « %(owner)s %(rtype)s » avec EDNS0: %(error)s" - -#, python-format -msgid "" -"answer to query '%(owner)s %(rtype)s' is missing DNSSEC signatures (no RRSIG " -"data)" -msgstr "" -"la réponse à la requête « %(owner)s %(rtype)s » ne comporte pas de " -"signatures DNSSEC (pas de données RRSIG)" - -#, python-format -msgid "record '%(owner)s %(rtype)s' failed DNSSEC validation on server %(ip)s" -msgstr "" -"la validation DNSSEC de l'enregistrement « %(owner)s %(rtype)s » a échoué " -"sur le serveur %(ip)s" - -msgid "invalid escape code in domain name" -msgstr "code d'échappement invalide dans le nom du domaine" - -msgid "domain name cannot be longer than 255 characters" -msgstr "le nom de domaine ne peut pas dépasser 255 caractères" - -msgid "DNS label cannot be longer than 63 characters" -msgstr "un libellé de DNS ne peut pas dépasser 63 caractères" - -msgid "invalid domain name" -msgstr "nom de domaine invalide" - -#, python-format -msgid "domain name '%(domain)s' should be normalized to: %(normalized)s" -msgstr "" -"le nom de domaine « %(domain)s » doit être normalisé à : %(normalized)s" - -#, python-format -msgid "invalid domain-name: %s" -msgstr "nom de domaine invalide : %s" - -#, python-format -msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!" -msgstr "" -"version d'adresse IP invalide (est %(value)d, doit être %(required_value)d) !" - -msgid "invalid IP address format" -msgstr "format d'adresse IP invalide" - -#, python-format -msgid "%(port)s is not a valid port" -msgstr "%(port)s n'est pas un port valide" - #, c-format -msgid "cannot open configuration file %s\n" +msgid "Failed to open config file %s\n" msgstr "impossible d'ouvrir le fichier de configuration %s\n" #, c-format -msgid "cannot stat() configuration file %s\n" -msgstr "impossible d'utiliser « stat() » sur le fichier de configuration %s\n" +msgid "Failed to parse config file %s\n" +msgstr "Impossible d'analyser le fichier de configuration %s\n" -#, c-format -msgid "out of memory\n" -msgstr "mémoire saturée\n" +msgid "Print as little as possible" +msgstr "Afficher aussi peu que possible" -#, c-format -msgid "read error\n" -msgstr "erreur en lecture\n" +msgid "Output only on errors" +msgstr "N'afficher que les erreurs" -#, c-format -msgid "Unable to parse principal name\n" -msgstr "Impossible d'analyser le nom du principal\n" +msgid "Contact this specific KDC Server" +msgstr "Contacter ce serveur KDC particulier" -#, c-format -msgid "krb5_parse_name %1$d: %2$s\n" -msgstr "« krb5_parse_name » %1$d : %2$s\n" +msgid "Server Name" +msgstr "Nom du serveur" -#, c-format -msgid "Removing principal %s\n" -msgstr "Suppression du principal %s\n" - -#, c-format -msgid "Failed to open keytab\n" -msgstr "Impossible d'ouvrir le tableau de clés\n" - -#, c-format -msgid "principal not found\n" -msgstr "principal introuvable\n" - -#, c-format -msgid "krb5_kt_get_entry %1$d: %2$s\n" -msgstr "« krb5_kt_get_entry » %1$d : %2$s\n" - -#, c-format -msgid "Unable to remove entry\n" -msgstr "Impossible de supprimer l'entrée\n" - -#, c-format -msgid "kvno %d\n" -msgstr "« kvno » %d\n" - -#, c-format -msgid "krb5_kt_remove_entry %1$d: %2$s\n" -msgstr "« krb5_kt_remove_entry » %1$d : %2$s\n" - -#, c-format -msgid "Unable to parse principal\n" -msgstr "Impossible d'analyser le principal\n" - -#, c-format -msgid "krb5_unparse_name %1$d: %2$s\n" -msgstr "« krb5_unparse_name » %1$d : %2$s\n" - -#, c-format -msgid "realm not found\n" -msgstr "domaine introuvable\n" - -msgid "Print debugging information" -msgstr "Affiche les informations de débogage" - -msgid "Debugging output" -msgstr "Sortie de débogage" - -msgid "" -"The principal to remove from the keytab (ex: ftp/ftp.example.com@EXAMPLE.COM)" +msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -"Le principal à supprimer d'un tableau de clés (par ex. : ftp/ftp.example." +"Le principal pour lequel obtenir un tableau de clés (par ex: ftp/ftp.example." "com@EXAMPLE.COM)" msgid "Kerberos Service Principal Name" msgstr "Nom de principal de service Kerberos" -msgid "The keytab file to remove the principcal(s) from" -msgstr "" -"Le fichier tableau de clés duquel il faut retirer le principal ou les " -"principaux." +msgid "File were to store the keytab information" +msgstr "Fichier dans lequel stocker l'information du tableau de clés" msgid "Keytab File Name" msgstr "Nom de fichier du tableau de clés" -msgid "Remove all principals in this realm" -msgstr "Supprimer tous les principaux de ce royaume" +msgid "Encryption types to request" +msgstr "Type de chiffrement à demander" -msgid "Realm name" -msgstr "Nom du royaume" +msgid "Comma separated encryption types list" +msgstr "Liste, séparée par des virgules, des types de chiffrement" + +msgid "Show the list of permitted encryption types and exit" +msgstr "Affiche la liste des types de chiffrement autorisés, et sort." + +msgid "Permitted Encryption Types" +msgstr "Type de chiffrements autorisés" + +msgid "Asks for a non-random password to use for the principal" +msgstr "Demande un mot de passe non aléatoire à utiliser pour le principal" + +msgid "LDAP DN" +msgstr "DN LDAP" + +msgid "DN to bind as if not using kerberos" +msgstr "DN à utiliser pour la connexion en cas de non-utilisation de Kerberos" + +msgid "LDAP password" +msgstr "Mot de passe LDAP" + +msgid "password to use if not using kerberos" +msgstr "" +"mot de passe à utiliser pour la connexion en cas de non-utilisation de " +"Kerberos" + +msgid "Retrieve current keys without changing them" +msgstr "Retrouver les clés courantes sans les modifier" #, c-format msgid "Kerberos context initialization failed\n" msgstr "Échec de l'initialisation du contexte Kerberos\n" #, c-format -msgid "Failed to open keytab '%1$s': %2$s\n" -msgstr "Échec de l'ouverture du tableau de clés « %1$s » : %2$s\n" +msgid "No system preferred enctypes ?!\n" +msgstr "Aucune préférence de type de chiffrement sur le système ?!\n" #, c-format -msgid "Closing keytab failed\n" -msgstr "La fermeture du tableau des clés a échoué\n" +msgid "Supported encryption types:\n" +msgstr "Type de chiffrements pris en charge :\n" #, c-format -msgid "krb5_kt_close %1$d: %2$s\n" -msgstr "« krb5_kt_close » %1$d : %2$s\n" +msgid "Warning: failed to convert type (#%d)\n" +msgstr "Avertissement : échec de conversion de type (#%d)\n" + +#, c-format +msgid "Bind password required when using a bind DN.\n" +msgstr "" +"Mot de passe de laison requis lors de l'utilisation d'un DN de liaison.\n" + +#, c-format +msgid "Server name not provided and unavailable\n" +msgstr "Nom de serveur non fourni et indisponible\n" + +#, c-format +msgid "Incompatible options provided (-r and -P)\n" +msgstr "Options incompatibles indiquées (-r et -P)\n" + +#, c-format +msgid "" +"Warning: salt types are not honored with randomized passwords (see opt. -P)\n" +msgstr "" +"Avertissement : les types « salt » ne sont pas traités avec des mots de " +"passe aléatoires (cf. option -P)\n" + +#, c-format +msgid "Invalid Service Principal Name\n" +msgstr "Nom de principal de service invalide\n" + +#, c-format +msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" +msgstr "" +"Cache des justificatifs d'identité Kerberos introuvable. Possédez-vous un " +"ticket Kerberos ?\n" + +#, c-format +msgid "" +"Kerberos User Principal not found. Do you have a valid Credential Cache?\n" +msgstr "" +"Principal d'utilisateur Kerberos introuvable. Avez-vous un cache de " +"justificatifs d'identité Kerberos ?\n" + +#, c-format +msgid "Failed to open Keytab\n" +msgstr "Échec à l'ouverture du tableau de clés\n" + +#, c-format +msgid "Retrying with pre-4.0 keytab retrieval method...\n" +msgstr "Nouvelle tentative de récupération avec la méthode pre-4.0...\n" + +#, c-format +msgid "Failed to create key material\n" +msgstr "Échec de création du contenu de la clé\n" + +#, c-format +msgid "Failed to get keytab\n" +msgstr "Échec à l'obtention du tableau de clés\n" + +#, c-format +msgid "Failed to add key to the keytab\n" +msgstr "Échec lors de l'ajout de la clé au tableau\n" + +#, c-format +msgid "Failed to close the keytab\n" +msgstr "Échec à la fermeture du tableau de clés\n" + +#, c-format +msgid "Keytab successfully retrieved and stored in: %s\n" +msgstr "Récupération du tableau de clés et stockage avec succès dans : %s\n" #, c-format msgid "No permission to join this host to the IPA domain.\n" @@ -1062,10 +307,6 @@ msgstr "Impossible d'établir la connexion sur le serveur LDAP : %s" msgid "Unable to enable SSL in LDAP\n" msgstr "Impossible d'activer SSL dans LDAP\n" -#, c-format -msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" -msgstr "Impossible de définir LDAP_OPT_X_SASL_NOCANON\n" - #, c-format msgid "Unable to set LDAP version\n" msgstr "Impossible de définir une version LDAP\n" @@ -1258,282 +499,429 @@ msgid "basedn" msgstr "« basedn »" #, c-format -msgid "Kerberos context initialization failed: %1$s (%2$d)\n" -msgstr "Échec de l'initialisation du contexte Kerberos : %1$s (%2$d)\n" +msgid "Unable to parse principal name\n" +msgstr "Impossible d'analyser le nom du principal\n" #, c-format -msgid "Unable to parse principal: %1$s (%2$d)\n" -msgstr "Impossible d'analyser le principal : %1$s (%2$d)\n" +msgid "krb5_parse_name %1$d: %2$s\n" +msgstr "« krb5_parse_name » %1$d : %2$s\n" #, c-format -msgid "No keys accepted by KDC\n" -msgstr "Aucune clé acceptée par le KDC\n" +msgid "Removing principal %s\n" +msgstr "Suppression du principal %s\n" #, c-format -msgid "Out of memory \n" -msgstr "Mémoire saturée\n" +msgid "Failed to open keytab\n" +msgstr "Impossible d'ouvrir le tableau de clés\n" #, c-format -msgid "Unable to set LDAP_OPT_X_TLS\n" -msgstr "Impossible de paramétrer LDAP_OPT_X_TLS\n" +msgid "principal not found\n" +msgstr "principal introuvable\n" #, c-format -msgid "Unable to set LDAP_OPT_X_TLS_CERTIFICATE\n" -msgstr "Impossible de paramétrer LDAP_OPT_X_TLS_CERTIFICATE\n" +msgid "krb5_kt_get_entry %1$d: %2$s\n" +msgstr "« krb5_kt_get_entry » %1$d : %2$s\n" #, c-format -msgid "Unable to initialize ldap library!\n" -msgstr "Impossible d'initialiser la bibliothèque LDAP !\n" +msgid "Unable to remove entry\n" +msgstr "Impossible de supprimer l'entrée\n" #, c-format -msgid "Unable to set LDAP_OPT_PROTOCOL_VERSION\n" -msgstr "Impossible de définir LDAP_OPT_PROTOCOL_VERSION\n" +msgid "kvno %d\n" +msgstr "« kvno » %d\n" #, c-format -msgid "Simple bind failed\n" -msgstr "Échec de la connexion simple\n" +msgid "krb5_kt_remove_entry %1$d: %2$s\n" +msgstr "« krb5_kt_remove_entry » %1$d : %2$s\n" #, c-format -msgid "Operation failed: %s\n" -msgstr "Opération échouée : %s\n" +msgid "Unable to parse principal\n" +msgstr "Impossible d'analyser le principal\n" #, c-format -msgid "Failed to get result: %s\n" -msgstr "Impossible d'obtenir le résultat : %s\n" +msgid "krb5_unparse_name %1$d: %2$s\n" +msgstr "« krb5_unparse_name » %1$d : %2$s\n" #, c-format -msgid "Timeout exceeded." -msgstr "Délai d'attente dépassé." +msgid "realm not found\n" +msgstr "domaine introuvable\n" + +msgid "Print debugging information" +msgstr "Affiche les informations de débogage" + +msgid "Debugging output" +msgstr "Sortie de débogage" + +msgid "" +"The principal to remove from the keytab (ex: ftp/ftp.example.com@EXAMPLE.COM)" +msgstr "" +"Le principal à supprimer d'un tableau de clés (par ex. : ftp/ftp.example." +"com@EXAMPLE.COM)" + +msgid "The keytab file to remove the principcal(s) from" +msgstr "" +"Le fichier tableau de clés duquel il faut retirer le principal ou les " +"principaux." + +msgid "Remove all principals in this realm" +msgstr "Supprimer tous les principaux de ce royaume" + +msgid "Realm name" +msgstr "Nom du royaume" #, c-format -msgid "Failed to parse extended result: %s\n" -msgstr "Impossible d'analyser le résultat étendu : %s\n" +msgid "Failed to open keytab '%1$s': %2$s\n" +msgstr "Échec de l'ouverture du tableau de clés « %1$s » : %2$s\n" #, c-format -msgid "Failed to parse result: %s\n" -msgstr "Impossible d'analyser le résultat : %s\n" +msgid "Closing keytab failed\n" +msgstr "La fermeture du tableau des clés a échoué\n" #, c-format -msgid "Missing reply control list!\n" -msgstr "Absence de liste de contrôle des réponses !\n" +msgid "krb5_kt_close %1$d: %2$s\n" +msgstr "« krb5_kt_close » %1$d : %2$s\n" #, c-format -msgid "Missing reply control!\n" -msgstr "Absence de contrôle de réponse !\n" - -#, c-format -msgid "Out of Memory!\n" -msgstr "Mémoire saturée !\n" - -#, c-format -msgid "Failed to create control!\n" -msgstr "Échec à la création du contrôle !\n" - -#, c-format -msgid "Failed to bind to server!\n" -msgstr "La liaison au serveur a échoué !\n" - -#, c-format -msgid "Failed to get keytab!\n" -msgstr "Échec d'obtention du tableau de clés !\n" - -#, c-format -msgid "ber_init() failed, Invalid control ?!\n" -msgstr "Échec de « ber_init() », contrôle invalide ?!\n" - -#, c-format -msgid "ber_scanf() failed, unable to find kvno ?!\n" -msgstr "échec de « ber_scanf() », « kvno » introuvable ?!\n" - -#, c-format -msgid "Failed to retrieve encryption type type #%d\n" -msgstr "Échec lors de la récupération du type de chiffrement #%d\n" - -#, c-format -msgid "Failed to retrieve encryption type %1$s (#%2$d)\n" -msgstr "Échec lors de la récupération du type de chiffrement %1$s (#%2$d)\n" - -#, c-format -msgid "Failed to retrieve any keys" -msgstr "Échec lors de la récupération de toute clé" - -msgid "Failed to decode control reply!\n" -msgstr "Impossible de décoder la réponse de contrôle !\n" - -msgid "New Principal Password" -msgstr "Nouveau mot de passe du principal" - -msgid "Verify Principal Password" -msgstr "Vérifier le mot de passe du principal" - -#, c-format -msgid "Failed to open config file %s\n" +msgid "cannot open configuration file %s\n" msgstr "impossible d'ouvrir le fichier de configuration %s\n" #, c-format -msgid "Failed to parse config file %s\n" -msgstr "Impossible d'analyser le fichier de configuration %s\n" - -msgid "Print as little as possible" -msgstr "Afficher aussi peu que possible" - -msgid "Output only on errors" -msgstr "N'afficher que les erreurs" - -msgid "Contact this specific KDC Server" -msgstr "Contacter ce serveur KDC particulier" - -msgid "Server Name" -msgstr "Nom du serveur" - -msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" -msgstr "" -"Le principal pour lequel obtenir un tableau de clés (par ex: ftp/ftp.example." -"com@EXAMPLE.COM)" - -msgid "File were to store the keytab information" -msgstr "Fichier dans lequel stocker l'information du tableau de clés" - -msgid "Encryption types to request" -msgstr "Type de chiffrement à demander" - -msgid "Comma separated encryption types list" -msgstr "Liste, séparée par des virgules, des types de chiffrement" - -msgid "Show the list of permitted encryption types and exit" -msgstr "Affiche la liste des types de chiffrement autorisés, et sort." - -msgid "Permitted Encryption Types" -msgstr "Type de chiffrements autorisés" - -msgid "Asks for a non-random password to use for the principal" -msgstr "Demande un mot de passe non aléatoire à utiliser pour le principal" - -msgid "LDAP DN" -msgstr "DN LDAP" - -msgid "DN to bind as if not using kerberos" -msgstr "DN à utiliser pour la connexion en cas de non-utilisation de Kerberos" - -msgid "LDAP password" -msgstr "Mot de passe LDAP" - -msgid "password to use if not using kerberos" -msgstr "" -"mot de passe à utiliser pour la connexion en cas de non-utilisation de " -"Kerberos" - -msgid "Retrieve current keys without changing them" -msgstr "Retrouver les clés courantes sans les modifier" +msgid "cannot stat() configuration file %s\n" +msgstr "impossible d'utiliser « stat() » sur le fichier de configuration %s\n" #, c-format -msgid "No system preferred enctypes ?!\n" -msgstr "Aucune préférence de type de chiffrement sur le système ?!\n" +msgid "out of memory\n" +msgstr "mémoire saturée\n" #, c-format -msgid "Supported encryption types:\n" -msgstr "Type de chiffrements pris en charge :\n" +msgid "read error\n" +msgstr "erreur en lecture\n" -#, c-format -msgid "Warning: failed to convert type (#%d)\n" -msgstr "Avertissement : échec de conversion de type (#%d)\n" +#, python-format +msgid "objectclass %s not found" +msgstr "classe d'objet %s introuvable" -#, c-format -msgid "Bind password required when using a bind DN.\n" -msgstr "" -"Mot de passe de laison requis lors de l'utilisation d'un DN de liaison.\n" +#, python-format +msgid "Retrieving CA cert chain failed: %s" +msgstr "Échec de la récupération de la chaîne de certificat de l'AC : %s" -#, c-format -msgid "Server name not provided and unavailable\n" -msgstr "Nom de serveur non fourni et indisponible\n" +#, python-format +msgid "request failed with HTTP status %d" +msgstr "échec de la requête avec le code état HTTP %d" -#, c-format -msgid "Incompatible options provided (-r and -P)\n" -msgstr "Options incompatibles indiquées (-r et -P)\n" +#, python-format +msgid "Retrieving CA status failed: %s" +msgstr "Échec de la récupération de l'état de l'AC : %s" -#, c-format -msgid "" -"Warning: salt types are not honored with randomized passwords (see opt. -P)\n" -msgstr "" -"Avertissement : les types « salt » ne sont pas traités avec des mots de " -"passe aléatoires (cf. option -P)\n" +#, python-format +msgid "Retrieving CA status failed with status %d" +msgstr "Échec de la récupération de l'état de l'AC avec l'état %d" -#, c-format -msgid "Invalid Service Principal Name\n" -msgstr "Nom de principal de service invalide\n" +msgid "Failed members" +msgstr "Membres en échec" -#, c-format -msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" -msgstr "" -"Cache des justificatifs d'identité Kerberos introuvable. Possédez-vous un " -"ticket Kerberos ?\n" +msgid "Failed source hosts/hostgroups" +msgstr "Hôtes/groupes d'hôtes source en échec" -#, c-format -msgid "" -"Kerberos User Principal not found. Do you have a valid Credential Cache?\n" -msgstr "" -"Principal d'utilisateur Kerberos introuvable. Avez-vous un cache de " -"justificatifs d'identité Kerberos ?\n" +msgid "Failed hosts/hostgroups" +msgstr "Hôtes/groupes d'hôtes en échec" -#, c-format -msgid "Failed to open Keytab\n" -msgstr "Échec à l'ouverture du tableau de clés\n" +msgid "Failed users/groups" +msgstr "Utilisateurs/groupes en échec" -#, c-format -msgid "Retrying with pre-4.0 keytab retrieval method...\n" -msgstr "Nouvelle tentative de récupération avec la méthode pre-4.0...\n" +msgid "Failed service/service groups" +msgstr "Services/groupes de service en échec" -#, c-format -msgid "Failed to create key material\n" -msgstr "Échec de création du contenu de la clé\n" +msgid "Failed to remove" +msgstr "Échec à la suppression" -#, c-format -msgid "Failed to get keytab\n" -msgstr "Échec à l'obtention du tableau de clés\n" +msgid "Failed RunAs" +msgstr "Échec de « RunAs »" -#, c-format -msgid "Failed to add key to the keytab\n" -msgstr "Échec lors de l'ajout de la clé au tableau\n" +msgid "Failed RunAsGroup" +msgstr "Échec de « RunAsGroup »" -#, c-format -msgid "Failed to close the keytab\n" -msgstr "Échec à la fermeture du tableau de clés\n" +msgid "Failed profiles" +msgstr "Profils en échec" -#, c-format -msgid "Keytab successfully retrieved and stored in: %s\n" -msgstr "Récupération du tableau de clés et stockage avec succès dans : %s\n" +msgid "Failed CAs" +msgstr "AC en échec" + +msgid "Failed managedby" +msgstr "Échec de « managedby »" + +msgid "Failed allowed to retrieve keytab" +msgstr "Échec de l'autorisation de récupération des tableaux de clés" + +msgid "Failed allowed to create keytab" +msgstr "Échec de l'autorisation de création de tableaux de clés" + +msgid "Failed targets" +msgstr "Échec de la cible" + +msgid "Failed owners" +msgstr "Propriétaires en échec" msgid "" "\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +"Service Constrained Delegation\n" +"\n" +"Manage rules to allow constrained delegation of credentials so\n" +"that a service can impersonate a user when communicating with another\n" +"service without requiring the user to actually forward their TGT.\n" +"This makes for a much better method of delegating credentials as it\n" +"prevents exposure of the short term secret of the user.\n" +"\n" +"The naming convention is to append the word \"target\" or \"targets\" to\n" +"a matching rule name. This is not mandatory but helps conceptually\n" +"to associate rules and targets.\n" +"\n" +"A rule consists of two things:\n" +" - A list of targets the rule applies to\n" +" - A list of memberPrincipals that are allowed to delegate for\n" +" those targets\n" +"\n" +"A target consists of a list of principals that can be delegated.\n" +"\n" +"In English, a rule says that this principal can delegate as this\n" +"list of principals, as defined by these targets.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new constrained delegation rule:\n" +" ipa servicedelegationrule-add ftp-delegation\n" +"\n" +" Add a new constrained delegation target:\n" +" ipa servicedelegationtarget-add ftp-delegation-target\n" +"\n" +" Add a principal to the rule:\n" +" ipa servicedelegationrule-add-member --principals=ftp/ipa.example." +"com ftp-delegation\n" +"\n" +" Add our target to the rule:\n" +" ipa servicedelegationrule-add-target --servicedelegationtargets=ftp-" +"delegation-target ftp-delegation\n" +"\n" +" Add a principal to the target:\n" +" ipa servicedelegationtarget-add-member --principals=ldap/ipa.example." +"com ftp-delegation-target\n" +"\n" +" Display information about a named delegation rule and target:\n" +" ipa servicedelegationrule_show ftp-delegation\n" +" ipa servicedelegationtarget_show ftp-delegation-target\n" +"\n" +" Remove a constrained delegation:\n" +" ipa servicedelegationrule-del ftp-delegation-target\n" +" ipa servicedelegationtarget-del ftp-delegation\n" +"\n" +"In this example the ftp service can get a TGT for the ldap service on\n" +"the bound user's behalf.\n" +"\n" +"It is strongly discouraged to modify the delegations that ship with\n" +"IPA, ipa-http-delegation and its targets ipa-cifs-delegation-targets and\n" +"ipa-ldap-delegation-targets. Incorrect changes can remove the ability\n" +"to delegate, causing the framework to stop functioning.\n" msgstr "" "\n" -"Greffons non accessibles depuis la ligne de commande, commandes utilisées en " -"interne\n" +"Délégation contrainte de services\n" +"\n" +"Gérez les règles permettant la délégation contrainte d'informations\n" +"d'authentification de façon à ce qu'un service puisse se faire passer\n" +"pour un utilisateur lors de la communication avec un service sans\n" +"que cela ne nécessite de la part de l'utilisateur de transmettre son TGT.\n" +"Cela constitue une méthode bien meilleure de délégation d'identification\n" +"car elle évite l'exposition du secret court terme de l'utilisateur.\n" +"\n" +"La convention de nommage est d'ajouter le mot « target » ou « targets »\n" +"au nom de la règle de correspondance. Ce poitn n'est pas obligatoire mais\n" +"aide à visualiser l'association entre règles et cibles.\n" +"\n" +"Une règle est constituée de deux choses :\n" +" - une liste de cibles auxquelles la règle s'applique,\n" +" - une liste de memberPrincipals qui sont autorisés à leur déléguer\n" +" leurs droits.\n" +"\n" +"Une cible consiste en une liste de principaux qui peuvent être délégués.\n" +"\n" +"En anglais, une règle que ce principal peut déléguer comme cette liste\n" +"de principaux, tels que définis par ces cibles.\n" +"\n" +"EXEMPLES :\n" +"\n" +" Ajouter une nouvelle règle de délégation contrainte :\n" +" ipa servicedelegationrule-add ftp-delegation\n" +"\n" +" Ajouter une nouvelle cible de délégation contrainte :\n" +" ipa servicedelegationtarget-add ftp-delegation-target\n" +"\n" +" Ajouter un principal à la règle :\n" +" ipa servicedelegationrule-add-member --principals=ftp/ipa.example." +"com ftp-delegation\n" +"\n" +" Ajouter notre cible à la règle :\n" +" ipa servicedelegationrule-add-target --servicedelegationtargets=ftp-" +"delegation-target ftp-delegation\n" +"\n" +" Add un principal à la cible :\n" +" ipa servicedelegationtarget-add-member --principals=ldap/ipa.example." +"com ftp-delegation-target\n" +"\n" +" Afficher les informations au sujet d'une règle de délégation et sa cible :\n" +" ipa servicedelegationrule_show ftp-delegation\n" +" ipa servicedelegationtarget_show ftp-delegation-target\n" +"\n" +" Supprimer une délégation contrainte :\n" +" ipa servicedelegationrule-del ftp-delegation-target\n" +" ipa servicedelegationtarget-del ftp-delegation\n" +"\n" +"Dans cet exemple, le service ftp peut obtenir un TGT pour le service ldap\n" +"au nom de l'utilisateur associé.\n" +"\n" +"Il est fortement découragé de modifier les délégations livrées avec IPA,\n" +"ipa-http-delegation et ses cibles ipa-cifs-delegation-targets et\n" +"ipa-ldap-delegation-targets. Des modifications erronées peuvent obérer\n" +"la capacité de délégation, en provoquant l'arrêt de fonctionnement du\n" +"moteur.\n" -msgid "Dict of I18N messages" -msgstr "Dictionnaire de messages I18N" +msgid "Delegation name" +msgstr "Nom de délégation" -msgid "Export plugin meta-data for the webUI." -msgstr "Exporter les meta-données du greffons pour l'interface Web" +msgid "Allowed Target" +msgstr "Cibles autorisées" -msgid "Name of object to export" -msgstr "Nom de l'objet à exporter" +msgid "Create a new service delegation rule." +msgstr "Créer une nouvelle règle de délégation de service" -msgid "Name of method to export" -msgstr "Nom de la méthode à exporter" +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 d'une paire nom/valeur. Le format est attribut=valeur.\n" +"Pour des attributs à valeurs multiples, la commande remplace les valeurs " +"déjà présentes." -msgid "Name of command to export" -msgstr "Nom de la commande à exporter" +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 : attribut=valeur. Les\n" +"attributs doivent faire partie du schéma." -msgid "Dict of JSON encoded IPA Objects" -msgstr "Dictionnaire d'objets IPA codés JSON" +msgid "" +"Retrieve and print all attributes from the server. Affects command output." +msgstr "" +"Récupérer et afficher tous les attributs à partir du serveur. Affecte la " +"sortie de la commande." -msgid "Dict of JSON encoded IPA Methods" -msgstr "Dictionnaire de méthode IPA codées JSON" +msgid "Print entries as stored on the server. Only affects output format." +msgstr "" +"Afficher les entrées telles qu'enregistrées sur le serveur. Affecte " +"uniquement le format de sortie." -msgid "Dict of JSON encoded IPA Commands" -msgstr "Dictionnaire de commande IPA codées JSON" +msgid "Suppress processing of membership attributes." +msgstr "Suppression du traitement des attributs d'adhésion." + +msgid "User-friendly description of action performed" +msgstr "Description intelligible de l'action effectuée" + +msgid "The primary_key value of the entry, e.g. 'jdoe' for a user" +msgstr "" +"La valeur de la clé principale de l'entrée, par ex. « jdoe » pour un " +"utilisateur" + +msgid "Add member to a named service delegation rule." +msgstr "Ajouter un membre à une règle nommée de délégation de service." + +msgid "Members that could not be added" +msgstr "Membres n'ayant pu être ajoutés" + +msgid "Number of members added" +msgstr "Nombre de membres ajoutés" + +msgid "Add target to a named service delegation rule." +msgstr "Ajouter une cible à une règle nommée de délégation de service." + +msgid "Delete service delegation." +msgstr "Supprimer une règle de délégation de service." + +msgid "Continuous mode: Don't stop on errors." +msgstr "Mode continu : pas d'arrêt sur erreurs." + +msgid "List of deletions that failed" +msgstr "Liste des suppressions ayant échoué" + +msgid "Search for service delegations rule." +msgstr "Rechercher des règle de délégation de service." + +msgid "A string searched in all relevant object attributes" +msgstr "" +"Une chaîne de caractères recherchée dans tous les attributs d'objets " +"pertinents" + +msgid "Time Limit" +msgstr "Limitation de durée" + +msgid "Time limit of search in seconds (0 is unlimited)" +msgstr "Limite de la durée de la recherche en secondes (0 pour illimité)" + +msgid "Size Limit" +msgstr "Limitation de taille" + +msgid "Maximum number of entries returned (0 is unlimited)" +msgstr "Nombre maximal d'entrées renvoyées (0 pour illimité)" + +msgid "Primary key only" +msgstr "Clé principale uniquement" + +msgid "Number of entries returned" +msgstr "Nombre d'entrées renvoyées" + +msgid "True if not all results were returned" +msgstr "Vrai si tous les résultats n'ont pas été renvoyés" + +msgid "Remove member from a named service delegation rule." +msgstr "Supprimer un membre d'une règle nommée de délégation de service." + +msgid "Members that could not be removed" +msgstr "Membres n'ayant pas pu être supprimés" + +msgid "Number of members removed" +msgstr "Nombre de membres supprimés" + +msgid "Remove target from a named service delegation rule." +msgstr "Supprimer une cible d'une règle nommée de délégation de service." + +msgid "Display information about a named service delegation rule." +msgstr "" +"Afficher les informations au sujet d'une règle de délégation de service." + +msgid "Rights" +msgstr "Droits" + +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." + +msgid "Create a new service delegation target." +msgstr "Créer une nouvelle cible de délégation de service" + +msgid "Add member to a named service delegation target." +msgstr "Ajouter un membre à une cible de délégation de service." + +msgid "Delete service delegation target." +msgstr "Supprimer une cible de délégation de service." + +msgid "Search for service delegation target." +msgstr "Rechercher des cibles de délégation de service" + +msgid "Remove member from a named service delegation target." +msgstr "Supprimer un membre d'une cible de délégation de service." + +msgid "Display information about a named service delegation target." +msgstr "Afficher les informations sur une cible de délégation de service." msgid "" "\n" @@ -1638,21 +1026,6 @@ msgstr "Durée maximale de la période de renouvellement (secondes)" msgid "Modify Kerberos ticket policy." msgstr "Modifier la politique de tickets Kerberos." -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 d'une paire nom/valeur. Le format est attribut=valeur.\n" -"Pour des attributs à valeurs multiples, la commande remplace les valeurs " -"déjà présentes." - -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 : attribut=valeur. Les\n" -"attributs doivent faire partie du schéma." - msgid "" "Delete an attribute/value pair. The option will be evaluated\n" "last, after all sets and adds." @@ -1660,162 +1033,527 @@ msgstr "" "Supprimer une paire attribut/valeur. L'option sera évaluée\n" "en dernier, après toutes les modifications et ajouts." -msgid "Rights" -msgstr "Droits" - -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." - msgid "Reset Kerberos ticket policy to the default values." msgstr "Réinitialiser la politique de tickets Kerberos." msgid "Display the current Kerberos ticket policy." msgstr "Afficher la politique de tickets Kerberos." -msgid "Range name" -msgstr "Nom de la plage" +msgid "Anchor to override" +msgstr "Balise à surcharger" -msgid "First Posix ID of the range" -msgstr "Premier ID POSIX de la plage" +msgid "Description" +msgstr "Description" -msgid "Number of IDs in the range" -msgstr "Nombre d'IDs dans la plage" +msgid "Group name" +msgstr "Nom du groupe" -msgid "First RID of the corresponding RID range" -msgstr "Premier RID dans la plage de RID correspondante" +msgid "GID" +msgstr "GID" -msgid "First RID of the secondary RID range" -msgstr "Premier RID dans la plage de RID secondaire" +msgid "Group ID Number" +msgstr "Numéro d'identifiant de groupe" -msgid "Domain SID of the trusted domain" -msgstr "SID du domaine approuvé" +msgid "User login" +msgstr "Identifiant de connexion" -msgid "Range type" -msgstr "Type de plage" +msgid "UID" +msgstr "UID" -msgid "Delete an ID range." -msgstr "Supprimer une plage d'ID.." +msgid "User ID Number" +msgstr "Numéro d'identifiant utilisateur" -msgid "Continuous mode: Don't stop on errors." -msgstr "Mode continu : pas d'arrêt sur erreurs." +msgid "GECOS" +msgstr "GECOS" -msgid "Search for ranges." -msgstr "Rechercher des plages." +msgid "Home directory" +msgstr "Répertoire personnel" -msgid "Time Limit" -msgstr "Limitation de durée" +msgid "Login shell" +msgstr "Interpréteur de commande" -msgid "Time limit of search in seconds" -msgstr "Limite de la durée de la recherche en secondes" +msgid "SSH public key" +msgstr "Clé publique SSH" -msgid "Size Limit" -msgstr "Limitation de taille" +msgid "ID View Name" +msgstr "Nom de la vue d'identifiants" -msgid "Maximum number of entries returned" -msgstr "Nombre maximal d'entrées renvoyées" +msgid "Add a new Group ID override." +msgstr "Ajouter une nouvelle surcharge d'identifiants de groupes." -msgid "Primary key only" -msgstr "Clé principale uniquement" +msgid "Fallback to AD DC LDAP" +msgstr "Repli sur l'annuaire LDAP du contrôleur de domaine AD" + +msgid "" +"Allow falling back to AD DC LDAP when resolving AD trusted objects. For two-" +"way trusts only." +msgstr "" +"Autorise l'utilisation en repli de l'annuaire LDAP du contrôleur de domaine " +"AD. Pour les relations d'approbation bidirectionnelles uniquement." + +msgid "Delete an Group ID override." +msgstr "Supprimer une surcharge d'identifiants de groupes." + +msgid "Search for an Group ID override." +msgstr "Rechercher une surcharge d'identifiants de groupes" + +msgid "Results should contain primary key attribute only (\"anchor\")" +msgstr "" +"Les résultats doivent uniquement contenir un attribut de clé principale " +"(« anchor »)" + +msgid "Modify an Group ID override." +msgstr "Modifier une surcharge d'identifiants de groupes." + +msgid "Rename" +msgstr "Renommer" + +msgid "Rename the Group ID override object" +msgstr "Renommer l'objet surcharge d'identifiant de groupe" + +msgid "Display information about an Group ID override." +msgstr "Afficher les informations d'une surcharge d'identifiants de groupes." + +msgid "Add a new User ID override." +msgstr "Ajouter une nouvelle surcharge d'identifiants utilisateurs." + +msgid "Delete an User ID override." +msgstr "Supprimer une surcharge d'identifiants utilisateurs." + +msgid "Search for an User ID override." +msgstr "Rechercher une surcharge d'identifiants utilisateurs" + +msgid "Modify an User ID override." +msgstr "Modifier une surcharge d'identifiants utilisateurs." + +msgid "Rename the User ID override object" +msgstr "Renommer l'objet surcharge d'identifiant d'utilisateur" + +msgid "Display information about an User ID override." +msgstr "Afficher les informations d'une surcharge d'identifiants utilisateurs." + +msgid "Add a new ID View." +msgstr "Ajouter une nouvelle vue d'identifiants" + +msgid "" +"Applies ID View to specified hosts or current members of specified " +"hostgroups. If any other ID View is applied to the host, it is overridden." +msgstr "" +"Applique une vue d'identifiants aux hôtes ou aux membres des groupes d'hôtes " +"indiqués. Si une autre vue d'identifiants était appliquée à l'hôte, elle est " +"remplacée." + +msgid "hosts" +msgstr "hôtes" + +msgid "Hosts to apply the ID View to" +msgstr "Hôtes auxquels appliquer la vue" + +msgid "hostgroups" +msgstr "groupe d'hôtes" + +msgid "" +"Hostgroups to whose hosts apply the ID View to. Please note that view is not " +"applied automatically to any hosts added to the hostgroup after running the " +"idview-apply command." +msgstr "" +"Groupes d'hôtes auxquels s'applique la vue d'identifiants. Veuillez noter " +"que cette vue ne s'applique pas automatiquement aux hôtes ajoutés au groupe " +"après l'exécution de la commande idview-apply." + +msgid "Hosts that this ID View was applied to." +msgstr "Hôtes auxquels s'applique cette vue d'identifiants." + +msgid "Hosts or hostgroups that this ID View could not be applied to." +msgstr "" +"Hôtes ou groupes d'hôtes auxquels cette vue d'identifiants ne pourra pas " +"être appliquée." + +msgid "Number of hosts the ID View was applied to:" +msgstr "Nombre d'hôtes auxquels la vue d'identifiants a été appliquée :" + +msgid "Delete an ID View." +msgstr "Supprimer une vue d'identifiants." + +msgid "Search for an ID View." +msgstr "Rechercher une vue d'identifiants." msgid "Results should contain primary key attribute only (\"name\")" msgstr "" "Les résultats doivent uniquement contenir un attribut de clé principale " "(« name »)" -msgid "Modify ID range." -msgstr "Modifier une plage." +msgid "Modify an ID View." +msgstr "Modifier une vue d'identifiants." -msgid "Display information about a range." -msgstr "Afficher les informations sur une plage." +msgid "Rename the ID View object" +msgstr "Renommer l'objet surcharge de vue d'identifiants" -msgid "Username" -msgstr "Nom d'utilisateur" +msgid "Display information about an ID View." +msgstr "Afficher les informations d'une vue d'identifiants." -msgid "Password" -msgstr "Mot de passe" +msgid "Enumerate all the hosts the view applies to." +msgstr "Énumérer tous les hôtes auxquels la vue s'applique." -msgid "Principal" -msgstr "Principal" +msgid "" +"Clears ID View from specified hosts or current members of specified " +"hostgroups." +msgstr "" +"Retire l'application de la vue d'identifiants des hôtes ou membres des " +"groupes d'hôtes indiqués." -msgid "Service principal" -msgstr "Principal du service" +msgid "Hosts to clear (any) ID View from." +msgstr "Hôtes dont on va retirer toute vue d'identifiants." -msgid "Certificate" -msgstr "Certificat" +msgid "" +"Hostgroups whose hosts should have ID Views cleared. Note that view is not " +"cleared automatically from any host added to the hostgroup after running " +"idview-unapply command." +msgstr "" +"Groupes d'hôtes dont les hôtes doivent se voir la vue d'identifiants " +"retirée. Veuillez noter que la vue n'est pas automatiquement retirée de tout " +"hôte ajouté au groupe d'hôte après l'exécution de la commande idview-unapply." -msgid "Base-64 encoded server certificate" -msgstr "Certificat du serveur codé en Base-64" +msgid "Hosts that ID View was cleared from." +msgstr "Hôtes dont la vue d'identifiants a été retirée." -msgid "PAC type" -msgstr "type de PAC" +msgid "Hosts or hostgroups that ID View could not be cleared from." +msgstr "" +"Hôtes ou groupes d'hôtes dont la vue d'identifiants n'a pu être retirée." -msgid "Keytab" -msgstr "Tableau de clés" +msgid "Number of hosts that had a ID View was unset:" +msgstr "Nombre d'hôtes dont une vue d'identifiants a été retirée :" -msgid "Managed by" -msgstr "Géré par" +msgid "" +"\n" +"OTP configuration\n" +"\n" +"Manage the default values that IPA uses for OTP tokens.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Show basic OTP configuration:\n" +" ipa otpconfig-show\n" +"\n" +" Show all OTP configuration options:\n" +" ipa otpconfig-show --all\n" +"\n" +" Change maximum TOTP authentication window to 10 minutes:\n" +" ipa otpconfig-mod --totp-auth-window=600\n" +"\n" +" Change maximum TOTP synchronization window to 12 hours:\n" +" ipa otpconfig-mod --totp-sync-window=43200\n" +"\n" +" Change maximum HOTP authentication window to 5:\n" +" ipa hotpconfig-mod --hotp-auth-window=5\n" +"\n" +" Change maximum HOTP synchronization window to 50:\n" +" ipa hotpconfig-mod --hotp-sync-window=50\n" +msgstr "" +"\n" +"Configuration OTP\n" +"\n" +"Gestion des valeurs par défaut utilisées par IPA pour les jetons OTP.\n" +"\n" +"EXEMPLES :\n" +"\n" +" Afficher la configuration de base OTP :\n" +" ipa otpconfig-show\n" +"\n" +" Afficher toutes les options de configuration OTP :\n" +" ipa otpconfig-show --all\n" +"\n" +" Modifier la fenêtre maximale d'authentification TOTP à 10 minutes :\n" +" ipa otpconfig-mod --totp-auth-window=600\n" +"\n" +" Modifier la fenêtre maximale d'authentification TOTP à 12 heures :\n" +" ipa otpconfig-mod --totp-sync-window=43200\n" +"\n" +" Modifier la fenêtre maximale d'authentification HOTP à 5 :\n" +" ipa hotpconfig-mod --hotp-auth-window=5\n" +"\n" +" Modifier la fenêtre maximale d'authentification HOTP à 50 :\n" +" ipa hotpconfig-mod --hotp-sync-window=50\n" -msgid "Add a new IPA new service." -msgstr "Ajouter un nouveau service IPA." +msgid "TOTP authentication Window" +msgstr "Fenêtre d'authentification TOTP" -msgid "Force" -msgstr "Forcer" +msgid "TOTP authentication time variance (seconds)" +msgstr "Durée de la fenêtre d'authentification TOTP (secondes)" -msgid "force principal name even if not in DNS" -msgstr "forcer le nom du principal même si absent du DNS" +msgid "TOTP Synchronization Window" +msgstr "Fenêtre de synchronisation TOTP" -msgid "Add hosts that can manage this service." -msgstr "Ajouter des hôtes pouvant administrer ce service." +msgid "TOTP synchronization time variance (seconds)" +msgstr "Variance temporelle de synchronisation TOTP (secondes)" -msgid "member host" -msgstr "hôte membre" +msgid "HOTP Authentication Window" +msgstr "Fenêtre d'authentification HOTP" -msgid "Members that could not be added" -msgstr "Membres n'ayant pu être ajoutés" +msgid "HOTP authentication skip-ahead" +msgstr "passage d'occurrence d'authentification HOTP" -msgid "Number of members added" -msgstr "Nombre de membres ajoutés" +msgid "HOTP Synchronization Window" +msgstr "Fenêtre de synchronisation HOTP" -msgid "Delete an IPA service." -msgstr "Supprimer un service IPA." +msgid "HOTP synchronization skip-ahead" +msgstr "passage d'occurrence de synchronisation HOTP" -msgid "Disable the Kerberos key and SSL certificate of a service." -msgstr "Désactiver la clé Kerberos et le certificat SSL d'un service." +msgid "Modify OTP configuration options." +msgstr "Modifier les options de configuration OTP." -msgid "Search for IPA services." -msgstr "Rechercher des services IPA." +msgid "Show the current OTP configuration." +msgstr "Afficher la configuration OTP actuelle." -msgid "host" -msgstr "hôte" +msgid "" +"\n" +"Joining an IPA domain\n" +msgstr "" +"\n" +"Rejoindre un domaine IPA\n" -msgid "Modify an existing IPA service." -msgstr "Modifier un service IPA." +msgid "Join an IPA domain" +msgstr "Rejoindre un domaine IPA" -msgid "Remove hosts that can manage this service." -msgstr "Supprimer des hôtes pouvant administrer ce service." +msgid "The hostname to register as" +msgstr "Le nom d'hôte sous lequel enregistrer" -msgid "Members that could not be removed" -msgstr "Membres n'ayant pas pu être supprimés" +msgid "The IPA realm" +msgstr "Le domaine IPA" -msgid "Number of members removed" -msgstr "Nombre de membres supprimés" +msgid "Hardware platform of the host (e.g. Lenovo T61)" +msgstr "Plate-forme matérielle de l'hôte (par ex. Lenovo T61)" -msgid "Display information about an IPA service." -msgstr "Afficher les informations sur un service IPA." +msgid "Operating System and version of the host (e.g. Fedora 9)" +msgstr "Système d'exploitation et version de l'hôte (par ex. Fedora 9)" -msgid "file to store certificate in" -msgstr "fichier où stocker le certificat" +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" +"Options de « pkinit » de Kerberos\n" +"\n" +"Activer ou désactiver l'opération « pkinit » anonyme en utilisant le\n" +"principal WELLKNOWN/ANONYMOUS@REALM. Le serveur doit avoir\n" +"été installé avec la prise en charge de « pkinit ».\n" +"\n" +"EXEMPLES :\n" +"\n" +" Activer le « pkinit » anonyme :\n" +" ipa pkinit-anonymous enable\n" +"\n" +" Désactiver le « pkinit » anonyme :\n" +" ipa pkinit-anonymous disable\n" +"\n" +"Pour plus d'informations sur « pkinit » anonyme, cf. :\n" +"\n" +"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" + +msgid "Enable or Disable Anonymous PKINIT." +msgstr "Active ou désactive un PKINIT anonyme" + +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" +msgstr "" +"\n" +"Politique de mots de passe\n" +"\n" +"Une politique de mots de passe permet de définir des limites sur les mots " +"de\n" +"passe dans IPA, comme leur durée de vie, minimale ou maximale, la taille de\n" +"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" +"\n" +"Par défaut, une politique unique et globale est définie pour tous les\n" +"utilisateurs. Vous pouvez aussi créer une politique à appliquer à un " +"groupe.\n" +"Chaque utilisateur est l'objet d'une seule politique de mots de passe, par\n" +"un groupe ou par la politique globale. Une politique de groupe remplace\n" +"totalement la politique globale ; elle n'est pas la somme de la politique\n" +"globale plus quelques paramètres spécifiques.\n" +"\n" +"Chaque politique de groupe requiert un paramètre de priorité unique. Si un\n" +"utilisateur appartient à plusieurs groupes ayant des politiques " +"différentes,\n" +"la priorité sera utilisée afin de déterminer quelle politique appliquer.\n" +"Une petite valeur indique une priorité élevée de politique.\n" +"\n" +"Les politiques de mots de passe sont automatiquement supprimées quand les\n" +"groupes auxquels elles ont été associées sont supprimés.\n" +"\n" +"EXEMPLES :\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" + +msgid "Group" +msgstr "Groupe" + +msgid "Manage password policy for specific group" +msgstr "Gérer la politique de mots de passe d'un groupe spécifique" + +msgid "Max lifetime (days)" +msgstr "Durée de vie maximale (jours)" + +msgid "Maximum password lifetime (in days)" +msgstr "Durée de vie maximale d'un mot de passe (en jours)" + +msgid "Min lifetime (hours)" +msgstr "Durée de vie minimale (jours)" + +msgid "Minimum password lifetime (in hours)" +msgstr "Durée de vie maximale d'un mot de passe (en jours)" + +msgid "History size" +msgstr "Taille de l'historique" + +msgid "Password history size" +msgstr "Taille de l'historique des mots de passe" + +msgid "Character classes" +msgstr "Classes de caractères" + +msgid "Minimum number of character classes" +msgstr "Nombre minimal de classes de caractères" + +msgid "Min length" +msgstr "Longueur minimale" + +msgid "Minimum length of password" +msgstr "Taille minimale d'un mot de passe" + +msgid "Priority" +msgstr "Priorité" + +msgid "Priority of the policy (higher number means lower priority" +msgstr "Priorité de la politique (une valeur élevé indique une priorité basse)" + +msgid "Max failures" +msgstr "Nombre maximal d'échecs" + +msgid "Consecutive failures before lockout" +msgstr "Échecs consécutifs avant verrouillage" + +msgid "Failure reset interval" +msgstr "Délai de réinitialisation après échec" + +msgid "Period after which failure count will be reset (seconds)" +msgstr "Temps après lequel le compteur d'échecs sera réinitialisé (secondes)" + +msgid "Lockout duration" +msgstr "Durée du verrouillage" + +msgid "Period for which lockout is enforced (seconds)" +msgstr "Durée pendant laquelle le verrouillage est actif (secondes)" + +msgid "Results should contain primary key attribute only (\"cn\")" +msgstr "" +"Les résultats doivent uniquement contenir un attribut de clé principale " +"(« cn »)" + +msgid "Add a new group password policy." +msgstr "Ajouter une nouvelle politique de mot de passe." + +msgid "Delete a group password policy." +msgstr "Supprimer une politique de mot de passe." + +msgid "Search for group password policies." +msgstr "Rechercher des politiques de mot de passe de groupe." + +msgid "Results should contain primary key attribute only (\"group\")" +msgstr "" +"Les résultats doivent uniquement contenir un attribut de clé principale (« " +"group »)" + +msgid "Modify a group password policy." +msgstr "Modifier une politique de mot de passe de groupe." + +msgid "Display information about password policy." +msgstr "Afficher les informations sur une politique de mot de passe." + +msgid "User" +msgstr "Utilisateur" + +msgid "Display effective policy for a specific user" +msgstr "Afficher la politique effective d'un utilisateur donné" msgid "Rule name" msgstr "Nom de règle" -msgid "Description" -msgstr "Description" - msgid "Enabled" msgstr "Activé(e)" @@ -1861,12 +1599,25 @@ msgstr "Utilisateurs" msgid "User Groups" msgstr "Groupes d'utilisateurs" +msgid "External User" +msgstr "Utilisateur externe" + +msgid "External User the rule applies to (sudorule-find only)" +msgstr "" +"Utilisateur externe auquel la règle s'applique (« sudorule-find » uniquement)" + msgid "Hosts" msgstr "Hôtes" msgid "Host Groups" msgstr "Groupes d'hôtes" +msgid "Host Masks" +msgstr "Masques d'hôtes" + +msgid "External host" +msgstr "Système externe" + msgid "Sudo Allow Commands" msgstr "Commandes « sudo allow »" @@ -1891,13 +1642,6 @@ msgstr "Groupe de « RunAs Users »" msgid "Run as any user within a specified group" msgstr "Lancer en tant que n'importe quel utilisateur du groupe indiqué" -msgid "External User" -msgstr "Utilisateur externe" - -msgid "External User the rule applies to (sudorule-find only)" -msgstr "" -"Utilisateur externe auquel la règle s'applique (« sudorule-find » uniquement)" - msgid "RunAs External User" msgstr "Utilisateur « RunAs External »" @@ -1906,6 +1650,19 @@ msgstr "" "Utilisateur externe comme tel les commandes peuvent être lancées (« sudorule-" "find » uniquement)" +msgid "External Groups of RunAs Users" +msgstr "Groupes externes de « RunAs Users »" + +msgid "External Groups of users that the command can run as" +msgstr "" +"Groupes externes d'utilisateurs comme tel la commande peut être exécutée" + +msgid "RunAs Groups" +msgstr "« RunAs Groups»" + +msgid "Run with the gid of a specified POSIX group" +msgstr "Lancer avec le GID d'un groupe POSIX donné" + msgid "RunAs External Group" msgstr "Groupe « RunAs External »" @@ -1917,15 +1674,6 @@ msgstr "" msgid "Sudo Option" msgstr "Option sudo" -msgid "RunAs Groups" -msgstr "« RunAs Groups»" - -msgid "Run with the gid of a specified POSIX group" -msgstr "Lancer avec le GID d'un groupe POSIX donné" - -msgid "External host" -msgstr "Système externe" - msgid "Create new Sudo Rule." msgstr "Créer une nouvelle règle sudo." @@ -1937,12 +1685,27 @@ msgstr "" msgid "member sudo command" msgstr "commande membre de règle sudo" +msgid "sudo commands to add" +msgstr "commandes sudo à ajouter" + msgid "Add hosts and hostgroups affected by Sudo Rule." msgstr "Ajouter des hôtes et groupes d'hôtes affectés par la règle sudo." +msgid "member host" +msgstr "hôte membre" + +msgid "hosts to add" +msgstr "hôtes à ajouter" + msgid "member host group" msgstr "groupe d'hôte membre" +msgid "host groups to add" +msgstr "groupes d'hôtes à ajouter" + +msgid "host masks of allowed hosts" +msgstr "masques d'hôtes des hôtes autorisés" + msgid "Add an option to the Sudo Rule." msgstr "Ajouter une option à la règle sudo." @@ -1952,6 +1715,9 @@ msgstr "Ajouter un groupe dans sudo pour exécution comme." msgid "member group" msgstr "groupe membre" +msgid "groups to add" +msgstr "groupes à ajouter" + msgid "Add users and groups for Sudo to execute as." msgstr "Ajouter des utilisateurs et groupes dans sudo pour exécution comme." @@ -1978,86 +1744,1680 @@ msgstr "" "Retirer des commandes et groupes de commandes sudo affectés par la règle " "sudo." +msgid "sudo commands to remove" +msgstr "commandes sudo à supprimer" + msgid "Remove hosts and hostgroups affected by Sudo Rule." msgstr "Retirer des hôtes et groupes d'hôtes affectés par la règle sudo." +msgid "hosts to remove" +msgstr "hôtes à supprimer" + +msgid "host groups to remove" +msgstr "groupes d'hôtes à supprimer" + msgid "Remove an option from Sudo Rule." msgstr "Retirer une option d'une règle sudo." msgid "Remove group for Sudo to execute as." msgstr "Retirer un groupe de sudo pour exécution comme." +msgid "groups to remove" +msgstr "groupes à supprimer" + msgid "Remove users and groups for Sudo to execute as." msgstr "Retirer des utilisateurs et groupes dans sudo pour exécution comme." +msgid "users to remove" +msgstr "utilisateurs à supprimer" + msgid "Remove users and groups affected by Sudo Rule." msgstr "Retirer des utilisateurs et groupes affectés par la règle sudo." msgid "Display Sudo Rule." msgstr "Afficher une règle sudo." -msgid "Sudo Command Group" -msgstr "Groupe de commandes sudo" +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 " +"junioradmin\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 'junioradmin' can\n" +" add users, reset passwords or add a user to the default IPA user group.\n" +msgstr "" +"\n" +"Rôles\n" +"\n" +"Les rôles sont utilisés pour affiner les délégations. Une permission " +"accorde\n" +"la capacité d'effectuer une tâche de bas niveau (ajouter un utilisateur,\n" +"modifier un groupe, etc.). Un privilège combine une ou plusieurs\n" +"permissions en une abstraction de plus haut niveau comme « useradmin ». Un\n" +"administrateur d'utilisateur (useradmin) sera capable d'ajouter, modifier\n" +"et supprimer des utilisateurs.\n" +"\n" +"Les privilèges sont assignés aux rôles.\n" +"\n" +"Peuvent être membres d'un rôle des utilisateurs, des groupes, des systèmes\n" +"et des groupes de systèmes.\n" +"\n" +"Les rôles ne peuvent contenir d'autres rôles.\n" +"\n" +"EXEMPLES :\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 fait que le groupe « junioradmin »\n" +" peut ajouter des utilisateurs, réinitialiser des mots de passe, ou ajouter\n" +" un utilisateur au groupe d'utilisateur par défaut de IPA.\n" -msgid "Group description" -msgstr "Description du groupe" +msgid "Role name" +msgstr "Nom du rôle" -msgid "Commands" -msgstr "Commandes" +msgid "A description of this role-group" +msgstr "Description de ce groupe de rôles" -msgid "Sudo Command Groups" -msgstr "Groupes de commandes sudo" +msgid "Member users" +msgstr "Utilisateurs membres" -msgid "Member Sudo commands" -msgstr "Membres de commandes sudo" +msgid "Member groups" +msgstr "Groupes de membres" -msgid "Create new Sudo Command Group." -msgstr "Créer un nouveau groupe de commandes sudo." +msgid "Member hosts" +msgstr "Hôtes membres" -msgid "Add members to Sudo Command Group." -msgstr "Ajouter des membres à un groupe de commandes sudo." +msgid "Member host-groups" +msgstr "Groupes d'hôtes membres" -msgid "Delete Sudo Command Group." -msgstr "Supprimer un groupe de commandes sudo." +msgid "Privileges" +msgstr "Privilèges" -msgid "Search for Sudo Command Groups." -msgstr "Rechercher des groupes de commandes sudo." +msgid "Member services" +msgstr "Services membres" + +msgid "Add a new role." +msgstr "Ajouter un nouveau rôle." + +msgid "Add members to a role." +msgstr "Ajouter des membres à un rôle." + +msgid "Add privileges to a role." +msgstr "Ajouter des privilèges à un rôle." + +msgid "privilege" +msgstr "privilège" + +msgid "privileges" +msgstr "privilèges" + +msgid "Number of privileges added" +msgstr "Nombre de privilèges ajoutés" + +msgid "Delete a role." +msgstr "Supprimer un rôle" + +msgid "Search for roles." +msgstr "Rechercher des rôles." + +msgid "Modify a role." +msgstr "Modifier un rôle." + +msgid "Remove members from a role." +msgstr "Supprimer des membres d'un rôle." + +msgid "Remove privileges from a role." +msgstr "Supprimer des privilèges d'un rôle." + +msgid "Number of privileges removed" +msgstr "Nombre de privilèges retirés" + +msgid "Display information about a role." +msgstr "Afficher les informations sur un rôle." msgid "" -"Results should contain primary key attribute only (\"sudocmdgroup-name\")" +"\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 --users=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 "" -"Les résultats doivent uniquement contenir un attribut de clé principale " -"(« sudocmdgroup-name »)" +"\n" +"Groupes réseau\n" +"\n" +"Un groupe réseau est un groupe utilisé pour la vérification des droits.\n" +"Il peut contenir à la fois des valeurs utilisateur et hôte.\n" +"\n" +"EXEMPLES :\n" +"\n" +" Ajouter un nouveau groupe réseau :\n" +" ipa netgroup-add --desc=\"NFS admins\" admins\n" +"\n" +" Ajouter des membres au groupe réseau :\n" +" ipa netgroup-add-member --users=tuser1 --users=tuser2 admins\n" +"\n" +" Retirer un membre du groupe réseau :\n" +" ipa netgroup-remove-member --users=tuser2 admins\n" +"\n" +" Afficher les informations sur un groupe réseau :\n" +" ipa netgroup-show admins\n" +"\n" +" Supprimer un groupe réseau :\n" +" ipa netgroup-del admins\n" -msgid "Modify Sudo Command Group." -msgstr "Modifier un groupe de commandes sudo." +msgid "Netgroup name" +msgstr "Nom de groupe réseau" -msgid "Remove members from Sudo Command Group." -msgstr "Supprimer des membres d'un groupe de commandes sudo." +msgid "Netgroup description" +msgstr "Description de groupe réseau" -msgid "Display Sudo Command Group." -msgstr "Afficher un groupe de commandes sudo." +msgid "NIS domain name" +msgstr "Nom de domaine NIS" -msgid "Permission name" -msgstr "Nom de permission" +msgid "IPA unique ID" +msgstr "ID unique IPA" + +msgid "Member netgroups" +msgstr "Groupes réseau membre" + +msgid "Member of netgroups" +msgstr "Membre des groupes réseau" + +msgid "Indirect Member netgroups" +msgstr "Groupes réseau de membres indirects" + +msgid "Member User" +msgstr "Utilisateur membre" + +msgid "Member Group" +msgstr "Groupe membre" + +msgid "Member Host" +msgstr "Hôte membre" + +msgid "Member Hostgroup" +msgstr "Groupe d'hôtes membre" + +msgid "Add a new netgroup." +msgstr "Ajouter un nouveau groupe réseau." + +msgid "Add members to a netgroup." +msgstr "Ajouter des membres à un groupe réseau." + +msgid "member netgroup" +msgstr "Groupe réseau membre" + +msgid "netgroups to add" +msgstr "Groupes réseau à ajouter" + +msgid "Delete a netgroup." +msgstr "Supprimer un groupe réseau." + +msgid "Search for a netgroup." +msgstr "Rechercher un groupe réseau." + +msgid "search for managed groups" +msgstr "rechercher les groupes administrés" + +msgid "netgroup" +msgstr "groupe réseau" + +msgid "Search for netgroups with these member netgroups." +msgstr "" +"Rechercher des groupes réseaux dont les membres sont ces groupes réseau." + +msgid "Search for netgroups without these member netgroups." +msgstr "" +"Rechercher des groupes réseaux dont les membres ne sont pas ces groupes " +"réseau." + +msgid "user" +msgstr "utilisateur" + +msgid "Search for netgroups with these member users." +msgstr "Rechercher des groupes réseaux dont les membres sont ces utilisateurs." + +msgid "Search for netgroups without these member users." +msgstr "" +"Rechercher des groupes réseaux dont les membres ne sont pas ces utilisateurs." + +msgid "group" +msgstr "groupe" + +msgid "Search for netgroups with these member groups." +msgstr "Rechercher des groupes réseaux dont les membres sont ces groupes." + +msgid "Search for netgroups without these member groups." +msgstr "" +"Rechercher des groupes réseaux dont les membres ne sont pas ces groupes." + +msgid "host" +msgstr "hôte" + +msgid "Search for netgroups with these member hosts." +msgstr "Rechercher des groupes réseaux dont les membres sont ces hôtes." + +msgid "Search for netgroups without these member hosts." +msgstr "Rechercher des groupes réseaux dont les membres ne sont pas ces hôtes." + +msgid "host group" +msgstr "groupe d'hôtes" + +msgid "Search for netgroups with these member host groups." +msgstr "" +"Rechercher des groupes réseaux dont les membres sont ces groupes d'hôtes." + +msgid "Search for netgroups without these member host groups." +msgstr "" +"Rechercher des groupes réseaux dont les membres ne sont pas ces groupes " +"d'hôtes." + +msgid "Search for netgroups with these member of netgroups." +msgstr "Rechercher des groupes réseaux avec ces membres de groupes réseau." + +msgid "Search for netgroups without these member of netgroups." +msgstr "Rechercher des groupes réseaux sans ces membres de groupes réseau." + +msgid "Modify a netgroup." +msgstr "Modifier un groupe réseau." + +msgid "Remove members from a netgroup." +msgstr "Supprimer des membres d'un groupe réseau." + +msgid "netgroups to remove" +msgstr "Groupes réseau à supprimer" + +msgid "Display information about a netgroup." +msgstr "Afficher l'information sur un groupe réseau." + +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 --group=managers --" +"membergroup=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 --attrs=postalCode --group=managers --" +"membergroup=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" +"Délégation de groupe à groupe\n" +"\n" +"Une permission permet une délégation fine des autorisations. Les règles de\n" +"contrôle d'accès, ou les instructions (ACI), accordent la possibilité aux\n" +"permissions de réaliser certaines tâches comme l'ajout d'utilisateur, la\n" +"modification d'un groupe, etc.\n" +"\n" +"La délégation de groupe à groupe permet aux membres d'un groupe de modifier\n" +"un jeu d'attributs de membres d'un autre groupe.\n" +"\n" +"EXEMPLES:\n" +"\n" +" Ajouter une règle de délégation permettant aux gestionnaires de modifier\n" +" les adresses des employés :\n" +" ipa delegation-add --attrs=street --group=managers --" +"membergroup=employees \"managers edit employees' street\"\n" +"\n" +" En gérant une liste d'attributs, vous devez inclure tous les attributs,\n" +" y compris les existants. Ajouter « postalCode » à la liste :\n" +" ipa delegation-mod --attrs=street --attrs=postalCode --group=managers --" +"membergroup=employees \"managers edit employees' street\"\n" +"\n" +" Afficher la règle modifiée :\n" +" ipa delegation-show \"managers edit employees' street\"\n" +"\n" +" Supprimer une règle :\n" +" ipa delegation-del \"managers edit employees' street\"\n" msgid "Permissions" msgstr "Permissions" +msgid "Permissions to grant (read, write). Default is write." +msgstr "Permissions à accorder (« read », « write »). Par défaut : « write »." + msgid "Attributes" msgstr "Attributs" +msgid "Attributes to which the delegation applies" +msgstr "Attributs auxquels la délégation s'applique" + +msgid "Member user group" +msgstr "Groupe d'utilisateurs membre" + +msgid "User group to apply delegation to" +msgstr "Groupe d'utilisateur auquel s'applique la délégation" + +msgid "User group" +msgstr "Groupe d'utilisateurs" + +msgid "User group ACI grants access to" +msgstr "L'ACI d'un groupe utilisateur permet un accès à" + +msgid "Add a new delegation." +msgstr "Ajouter une nouvelle délégation." + +msgid "Delete a delegation." +msgstr "Supprimer une délégation." + +msgid "True means the operation was successful" +msgstr "Vrai signifie que l'opération a réussi" + +msgid "Search for delegations." +msgstr "Rechercher des délégations." + +msgid "Modify a delegation." +msgstr "Modifier une délégation." + +msgid "Display information about a delegation." +msgstr "Afficher les informations sur une délégation." + +msgid "Range name" +msgstr "Nom de la plage" + +msgid "First Posix ID of the range" +msgstr "Premier ID POSIX de la plage" + +msgid "Number of IDs in the range" +msgstr "Nombre d'IDs dans la plage" + +msgid "First RID of the corresponding RID range" +msgstr "Premier RID dans la plage de RID correspondante" + +msgid "First RID of the secondary RID range" +msgstr "Premier RID dans la plage de RID secondaire" + +msgid "Domain SID of the trusted domain" +msgstr "SID du domaine approuvé" + +msgid "Name of the trusted domain" +msgstr "Nom du domaine approuvé" + +msgid "Range type" +msgstr "Type de plage" + +msgid "ID range type, one of ipa-ad-trust-posix, ipa-ad-trust, ipa-local" +msgstr "" +"Type de plage d'identifiants, doit être ipa-ad-trust-posix, ipa-ad-trust ou " +"ipa-local" + +msgid "Delete an ID range." +msgstr "Supprimer une plage d'ID.." + +msgid "Search for ranges." +msgstr "Rechercher des plages." + +msgid "Display information about a range." +msgstr "Afficher les informations sur une plage." + +msgid "Principal" +msgstr "Principal" + +msgid "Service principal" +msgstr "Principal du service" + +msgid "Certificate" +msgstr "Certificat" + +msgid "Base-64 encoded server certificate" +msgstr "Certificat du serveur codé en Base-64" + +msgid "PAC type" +msgstr "type de PAC" + +msgid "" +"Override default list of supported PAC types. Use 'NONE' to disable PAC " +"support for this service, e.g. this might be necessary for NFS services." +msgstr "" +"Surcharger la liste par défaut des types PAC pris en charge. Utiliser « NONE " +"» pour désactiver la prise en charge PAC pour ce service, ce qui peut être " +"nécessaire pour les services NFS par exemple." + +msgid "Requires pre-authentication" +msgstr "Nécessite une authentification préalable" + +msgid "Pre-authentication is required for the service" +msgstr "Une authentification préalable est requise pour le service" + +msgid "Trusted for delegation" +msgstr "Approuvé pour délégation." + +msgid "Client credentials may be delegated to the service" +msgstr "" +"Les informations d'identification du client peuvent être déléguées au service" + +msgid "Roles" +msgstr "Rôles" + +msgid "Keytab" +msgstr "Tableau de clés" + +msgid "Managed by" +msgstr "Géré par" + +msgid "Users allowed to retrieve keytab" +msgstr "Utilisateurs autorisés à récupérer un tableau de clés" + +msgid "Groups allowed to retrieve keytab" +msgstr "Groupes autorisés à récupérer un tableau de clés" + +msgid "Hosts allowed to retrieve keytab" +msgstr "Hôtes autorisés à récupérer un tableau de clés" + +msgid "Host Groups allowed to retrieve keytab" +msgstr "Groupes d'hôtes autorisés à récupérer un tableau de clés" + +msgid "Users allowed to create keytab" +msgstr "Utilisateurs autorisés à créer un tableau de clés" + +msgid "Groups allowed to create keytab" +msgstr "Groupes autorisés à créer un tableau de clés" + +msgid "Hosts allowed to create keytab" +msgstr "Hôtes autorisés à créer un tableau de clés" + +msgid "Host Groups allowed to create keytab" +msgstr "Groupes d'hôtes autorisés à créer un tableau de clés" + +msgid "Add a new IPA new service." +msgstr "Ajouter un nouveau service IPA." + +msgid "Force" +msgstr "Forcer" + +msgid "force principal name even if not in DNS" +msgstr "forcer le nom du principal même si absent du DNS" + +msgid "Add new certificates to a service" +msgstr "Ajouter un nouveau certificat à un service" + +msgid "Add hosts that can manage this service." +msgstr "Ajouter des hôtes pouvant administrer ce service." + +msgid "" +"Allow users, groups, hosts or host groups to create a keytab of this service." +msgstr "" +"Autoriser utilisateurs, hôtes ou groupes d'hôtes à créer un tableau de clés " +"de ce service." + +msgid "" +"Allow users, groups, hosts or host groups to retrieve a keytab of this " +"service." +msgstr "" +"Autoriser les utilisateurs, groupes, hôtes ou groupes d'hôtes à récupérer un " +"tableau de clés pour ce service." + +msgid "Delete an IPA service." +msgstr "Supprimer un service IPA." + +msgid "Disable the Kerberos key and SSL certificate of a service." +msgstr "Désactiver la clé Kerberos et le certificat SSL d'un service." + +msgid "" +"Disallow users, groups, hosts or host groups to create a keytab of this " +"service." +msgstr "" +"Interdire aux utilisateurs, hôtes ou groupes d'hôtes de créer un tableau de " +"clés de ce service." + +msgid "" +"Disallow users, groups, hosts or host groups to retrieve a keytab of this " +"service." +msgstr "" +"Interdire aux utilisateurs, hôtes ou groupes d'hôtes de récupérer un tableau " +"de clés de ce service." + +msgid "Search for IPA services." +msgstr "Rechercher des services IPA." + +msgid "Modify an existing IPA service." +msgstr "Modifier un service IPA." + +msgid "Remove certificates from a service" +msgstr "Supprimer les certificats d'un service" + +msgid "Remove hosts that can manage this service." +msgstr "Supprimer des hôtes pouvant administrer ce service." + +msgid "Display information about an IPA service." +msgstr "Afficher les informations sur un service IPA." + +msgid "file to store certificate in" +msgstr "fichier où stocker le certificat" + +msgid "" +"\n" +"Raise the IPA Domain Level.\n" +msgstr "" +"\n" +"Relever le niveau du domaine IPA.\n" + +msgid "Query current Domain Level." +msgstr "Interroger le niveau actuel du domaine." + +msgid "Current domain level:" +msgstr "Niveau actuel du domaine :" + +msgid "Change current Domain Level." +msgstr "Modifier le niveau actuel du domaine." + +msgid "Domain Level" +msgstr "Niveau du domaine" + +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts. You\n" +"can use HBAC to control which users or groups can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users and target hosts.\n" +"This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\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 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 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 --hbacsvcs=sftp ftpers\n" +" ipa hbacrule-add --hostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" 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" +"Contrôle d'accès des systèmes (HBAC)\n" +"\n" +"HBAC (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\n" +"d'utiliser le système HBAC afin de contrôler quels utilisateurs ou quels\n" +"groupes d'un système source peuvent accéder à quels services, ou groupes\n" +"de services, sur un hôte cible.\n" +"\n" +"Vous pouvez aussi indiquer une catégorie d'utilisateur, d'hôtes cibles.\n" +"La seule catégorie existante pour le moment est \"all\", mais elles\n" +"pourront être étendues dans le futur.\n" +"\n" +"Les hôtes cible des règles HBAC doivent être des hôtes administrés par IPA.\n" +"\n" +"Les services et groupes de services disponibles sont gérés respectivement\n" +"par les greffons « hbacsvc » et « hbacsvcgroup ».\n" +"\n" +"EXEMPLES:\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 --usercat=all test1\n" +" ipa hbacrule-add-host --hosts=server.example.com test1\n" +"\n" +" Afficher les propriétés d'une règle HBAC nommée :\n" +" ipa hbacrule-show test1\n" +"\n" +" Créer une règle pour un service donné. Elle permet d'avoir accés au\n" +" service sshd sur toute machine depuis n'importe quelle autre machine :\n" +" ipa hbacrule-add --hostcat=all john_sshd\n" +" ipa hbacrule-add-user --users=john john_sshd\n" +" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" +"\n" +" Créer une règle pour un nouveau groupe de services. Elle permet d'avoir\n" +" accès au service FTP de toute machine depuis n'importe quelle machine.\n" +" ipa hbacsvcgroup-add ftpers\n" +" ipa hbacsvc-add sftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp --hbacsvcs=sftp ftpers\n" +" ipa hbacrule-add --hostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" 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" +"\n" + +msgid "Rule type" +msgstr "Type de règle" + +msgid "Rule type (allow)" +msgstr "Type de règle (allow)" + +msgid "Service category" +msgstr "Catégorie de service" + +msgid "Service category the rule applies to" +msgstr "Catégorie de services à laquelle la règle s'applique" + +msgid "Services" +msgstr "Services" + +msgid "Service Groups" +msgstr "Groupes de services" + +msgid "Create a new HBAC rule." +msgstr "Créer une nouvelle règle HBAC." + +msgid "Add target hosts and hostgroups to an HBAC rule." +msgstr "Ajouter des hôtes et des groupes d'hôtes cibles à une règle HBAC." + +msgid "Add services to an HBAC rule." +msgstr "Ajouter des services à une règle HBAC." + +msgid "member HBAC service" +msgstr "Service HBAC membre" + +msgid "HBAC services to add" +msgstr "Services HBAC à ajouter" + +msgid "member HBAC service group" +msgstr "Groupe de services HBAC membre" + +msgid "HBAC service groups to add" +msgstr "Groupes de services HBAC à ajouter" + +msgid "Add users and groups to an HBAC rule." +msgstr "Ajouter des utilisateurs et groupes à une règle HBAC." + +msgid "Delete an HBAC rule." +msgstr "Supprimer une règle HBAC." + +msgid "Disable an HBAC rule." +msgstr "Désactiver une règle HBAC." + +msgid "Enable an HBAC rule." +msgstr "Activer une règle HBAC." + +msgid "Search for HBAC rules." +msgstr "Rechercher des règles HBAC." + +msgid "Modify an HBAC rule." +msgstr "Modifier une règle HBAC." + +msgid "Remove target hosts and hostgroups from an HBAC rule." +msgstr "Retirer des hôtes et des groupes d'hôtes cibles d'une règle HBAC." + +msgid "Remove service and service groups from an HBAC rule." +msgstr "Ajouter des services et des groupes de services d'une règle HBAC." + +msgid "HBAC services to remove" +msgstr "Services HBAC à supprimer" + +msgid "HBAC service groups to remove" +msgstr "Groupes de services HBAC à supprimer" + +msgid "Remove users and groups from an HBAC rule." +msgstr "Retirer des utilisateurs et des groupes d'une règle HBAC." + +msgid "Display the properties of an HBAC rule." +msgstr "Afficher les propriétés d'une règle HBAC." + +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" +"Privilèges\n" +"\n" +"Un privilège combine les permissions en tâches logiques. Une permission\n" +"fournit les droits de réaliser une tâche unique. Certaines opérations IPA\n" +"requièrent une combinaison de plusieurs permissions. Un privilège est la\n" +"combinaison de ces permissions pour réaliser une tâche.\n" +"\n" +"Par exemple, la création d'utilisateurs 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" +"\n" +"La combinaison de ces trois tâches de bas niveau en privilège nommé\n" +"« Add User » facilite la gestion des rôles.\n" +"\n" +"Un privilège ne peut contenir d'autres privilèges.\n" +"\n" +"Reportez-vous la gestion des rôles et des permissions pour plus " +"d'informations.\n" + +msgid "Privilege name" +msgstr "Nom du privilège" + +msgid "Privilege description" +msgstr "Description du privilège" + +msgid "Granting privilege to roles" +msgstr "Privilèges accordés aux rôles" + +msgid "Add a new privilege." +msgstr "Ajouter un nouveau privilège." + +msgid "Add members to a privilege." +msgstr "Ajouter des membres à un privilège." + +msgid "Add permissions to a privilege." +msgstr "Ajouter des permissions à un privilège." + +msgid "permission" +msgstr "permission" + +msgid "permissions" +msgstr "permissions" + +msgid "Number of permissions added" +msgstr "Nombre de permissions ajoutées" + +msgid "Delete a privilege." +msgstr "Supprimer un privilège" + +msgid "Search for privileges." +msgstr "Rechercher des privilèges." + +msgid "Modify a privilege." +msgstr "Modifier un privilège." + +msgid "Remove members from a privilege" +msgstr "Supprimer les membres d'un privilège" + +msgid "roles to remove" +msgstr "rôles à supprimer" + +msgid "Remove permissions from a privilege." +msgstr "Supprimer des permissions d'un privilège." + +msgid "Number of permissions removed" +msgstr "Nombre de permissions supprimées" + +msgid "Display information about a privilege." +msgstr "Afficher les informations sur un privilège." + +msgid "" +"\n" +"Realm domains\n" +"\n" +"Manage the list of domains associated with IPA realm.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Display the current list of realm domains:\n" +" ipa realmdomains-show\n" +"\n" +" Replace the list of realm domains:\n" +" ipa realmdomains-mod --domain=example.com\n" +" ipa realmdomains-mod --domain={example1.com,example2.com,example3.com}\n" +"\n" +" Add a domain to the list of realm domains:\n" +" ipa realmdomains-mod --add-domain=newdomain.com\n" +"\n" +" Delete a domain from the list of realm domains:\n" +" ipa realmdomains-mod --del-domain=olddomain.com\n" +msgstr "" +"\n" +"Domaines du royaume\n" +"\n" +"Gérer la liste des domaines associés au royaume IPA.\n" +"\n" +"EXEMPLES:\n" +"\n" +" Afficher la liste actuelle des domaines du royaume :\n" +" ipa realmdomains-show\n" +"\n" +" Remplacer la liste des domaines du royaume :\n" +" ipa realmdomains-mod --domain=example.com\n" +" ipa realmdomains-mod --domain={example1.com,example2.com,example3.com}\n" +"\n" +" Ajouter un domaine à la liste des domaines du royaume :\n" +" ipa realmdomains-mod --add-domain=newdomain.com\n" +"\n" +" Supprimer un domaine de la liste des domaines du royaume :\n" +" ipa realmdomains-mod --del-domain=olddomain.com\n" + +msgid "Domain" +msgstr "Domaine" + +msgid "Add domain" +msgstr "Ajouter un domaine" + +msgid "Delete domain" +msgstr "Supprimer un domaine" + +msgid "Modify realm domains." +msgstr "Modifier les domaines du royaume." + +msgid "Force adding domain even if not in DNS" +msgstr "Forcer l'ajout d'un domaine même si absent des DNS" + +msgid "Display the list of realm domains." +msgstr "Afficher la liste des domaines du royaume." + +msgid "Service name" +msgstr "Nom de service" + +msgid "HBAC service" +msgstr "Service HBAC" + +msgid "HBAC service description" +msgstr "Description de service HBAC" + +msgid "Add a new HBAC service." +msgstr "Ajouter un nouveau service HBAC." + +msgid "Delete an existing HBAC service." +msgstr "Supprimer un service HBAC existant." + +msgid "Search for HBAC services." +msgstr "Rechercher des services HBAC." + +msgid "Modify an HBAC service." +msgstr "Modifier un service HBAC." + +msgid "Display information about an HBAC service." +msgstr "Afficher des informations sur un service HBAC." + +msgid "First name" +msgstr "Prénom" + +msgid "Last name" +msgstr "Nom" + +msgid "Full name" +msgstr "Nom complet" + +msgid "Display name" +msgstr "Nom affiché" + +msgid "Initials" +msgstr "Initiales" + +msgid "Kerberos principal" +msgstr "Principal Kerberos" + +msgid "Kerberos principal expiration" +msgstr "Expiration du principal Kerberos" + +msgid "Email address" +msgstr "Adresse courriel" + +msgid "Password" +msgstr "Mot de passe" + +msgid "Prompt to set the user password" +msgstr "Invite de définition du mot de passe utilisateur" + +msgid "Generate a random user password" +msgstr "Créer un mot de passe aléatoire" + +msgid "Random password" +msgstr "Mot de passe aléatoire" + +msgid "User ID Number (system will assign one if not provided)" +msgstr "" +"Numéro identifiant d'utilisateur (le système en assigne un si non défini)" + +msgid "Street address" +msgstr "Adresse" + +msgid "City" +msgstr "Ville" + +msgid "State/Province" +msgstr "État/Province" + +msgid "ZIP" +msgstr "Code postal" + +msgid "Telephone Number" +msgstr "Numéro de téléphone" + +msgid "Mobile Telephone Number" +msgstr "Numéro de téléphone mobile" + +msgid "Pager Number" +msgstr "Numéro de téléavertisseur" + +msgid "Fax Number" +msgstr "Numéro de fax" + +msgid "Org. Unit" +msgstr "Unité organisationnelle" + +msgid "Job Title" +msgstr "Titre de poste" + +msgid "Manager" +msgstr "Gestionnaire" + +msgid "Car License" +msgstr "Permis de conduire/carte d'identité" + +msgid "User authentication types" +msgstr "Types d'authentification utilisateur" + +msgid "Types of supported user authentication" +msgstr "Types d'authentification utilisateur pris en charge" + +msgid "Class" +msgstr "Classe" + +msgid "" +"User category (semantics placed on this attribute are for local " +"interpretation)" +msgstr "" +"Catégorie d'utilisateurs (la sémantique associée à cet attribut est " +"interprétée localement)" + +msgid "RADIUS proxy configuration" +msgstr "Configuration du serveur mandataire RADIUS" + +msgid "RADIUS proxy username" +msgstr "Nom d'utilisateur sur serveur mandataire RADIUS" + +msgid "Department Number" +msgstr "Numéro du service" + +msgid "Employee Number" +msgstr "Matricule" + +msgid "Employee Type" +msgstr "Type d'employé" + +msgid "Preferred Language" +msgstr "Langue préférée" + +msgid "Member of groups" +msgstr "Membre des groupes" + +msgid "Member of Sudo rule" +msgstr "Membre de règle Sudo" + +msgid "Member of HBAC rule" +msgstr "Membre de règle HBAC" + +msgid "Kerberos keys available" +msgstr "Clés Kerberos disponibles" + +msgid "Activate a stage user." +msgstr "Activer un utilisateur en attente." + +msgid "Add a new stage user." +msgstr "Ajouter un nouvel utilisateur en attente." + +msgid "Create Stage user in from a delete user" +msgstr "Créer un utilisateur en attente depuis un utilisateur supprimé" + +msgid "Add a manager to the stage user entry" +msgstr "Ajouter un responsable à l'entrée d'utilisateur en attente" + +msgid "Delete a stage user." +msgstr "Supprimer un utilisateur en attente." + +msgid "Search for stage users." +msgstr "Rechercher des utilisateurs en attente." + +msgid "role" +msgstr "rôle" + +msgid "HBAC rule" +msgstr "Règle HBAC" + +msgid "sudo rule" +msgstr "règle sudo" + +msgid "Modify a stage user." +msgstr "Modifier un utilisateur en attente." + +msgid "Remove a manager to the stage user entry" +msgstr "Supprimer un responsable de l'entrée de l'utilisateur en attente." + +msgid "Display information about a stage user." +msgstr "Afficher les informations sur un utilisateur en attente." + +msgid "" +"\n" +"RADIUS Proxy Servers\n" +"\n" +"Manage RADIUS Proxy Servers.\n" +"\n" +"IPA supports the use of an external RADIUS proxy server for krb5 OTP\n" +"authentications. This permits a great deal of flexibility when\n" +"integrating with third-party authentication services.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new server:\n" +" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" +"\n" +" Find all servers whose entries include the string \"example.com\":\n" +" ipa radiusproxy-find example.com\n" +"\n" +" Examine the configuration:\n" +" ipa radiusproxy-show MyRADIUS\n" +"\n" +" Change the secret:\n" +" ipa radiusproxy-mod MyRADIUS --secret\n" +"\n" +" Delete a configuration:\n" +" ipa radiusproxy-del MyRADIUS\n" +msgstr "" +"\n" +"RADIUS Proxy Servers\n" +"\n" +"Gestion des serveurs mandataires RADIUS.\n" +"\n" +"IPA prend en charge l'utilisation d'un serveur mandataire externe RADIUS\n" +"pour des authentifications OTP « krb5 ». Cela procure une grande souplesse\n" +"pour l'intégration des services d'authentification tierce partie.\n" +"\n" +"\n" +"EXEMPLES:\n" +"\n" +" Ajouter un nouveau serveur :\n" +" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" +"\n" +" Rechercher tous les serveurs dont les entrées incluent la chaîne « example." +"com » :\n" +" ipa radiusproxy-find example.com\n" +"\n" +" Afficher la configuration:\n" +" ipa radiusproxy-show MyRADIUS\n" +"\n" +" Modifier le secret:\n" +" ipa radiusproxy-mod MyRADIUS --secret\n" +"\n" +" Supprimer la configuration:\n" +" ipa radiusproxy-del MyRADIUS\n" + +msgid "RADIUS proxy server name" +msgstr "Nom du serveur mandataire RADIUS" + +msgid "A description of this RADIUS proxy server" +msgstr "Description de ce serveur mandataire RADIUS" + +msgid "Server" +msgstr "Serveur" + +msgid "The hostname or IP (with or without port)" +msgstr "Nom d'hôte ou adresse IP (avec ou sans port)" + +msgid "Secret" +msgstr "Secret" + +msgid "The secret used to encrypt data" +msgstr "Secret utilisé pour chiffrer les données" + +msgid "Timeout" +msgstr "Délai d'expiration" + +msgid "The total timeout across all retries (in seconds)" +msgstr "Délai d'expiration total pour toutes les tentatives (en secondes)" + +msgid "Retries" +msgstr "Tentatives" + +msgid "The number of times to retry authentication" +msgstr "Le nombre de fois autorisées pour tenter une authentification" + +msgid "User attribute" +msgstr "Attribut utilisateur" + +msgid "The username attribute on the user object" +msgstr "L'attribut de nom d'utilisateur de l'objet utilisateur" + +msgid "Add a new RADIUS proxy server." +msgstr "Ajouter un nouveau serveur mandataire RADIUS." + +msgid "Delete a RADIUS proxy server." +msgstr "Supprimer un serveur mandataire RADIUS." + +msgid "Search for RADIUS proxy servers." +msgstr "Rechercher des serveurs mandataires RADIUS." + +msgid "Modify a RADIUS proxy server." +msgstr "Modifier un serveur mandataire RADIUS" + +msgid "Display information about a RADIUS proxy server." +msgstr "Afficher les informations sur un serveur mandataire RADIUS." + +msgid "" +"\n" +"Misc plug-ins\n" +msgstr "" +"\n" +"Greffons divers\n" + +msgid "Show environment variables." +msgstr "Afficher les variables d'environnement." + +msgid "Forward to server instead of running locally" +msgstr "Rediriger vers le serveur au lieu d'exécuter localement" + +msgid "" +"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." + +msgid "Dictionary mapping variable name to value" +msgstr "Annuaire associant un nom de variable à une valeur" + +msgid "Total number of variables env (>= count)" +msgstr "Nombre total de variables d'environnement (>= count)" + +msgid "Number of variables returned (<= total)" +msgstr "Nombre de variables renvoyées (<= total)" + +msgid "Show all loaded plugins." +msgstr "Afficher tous les greffons chargés." + +msgid "Number of plugins loaded" +msgstr "Nombre de greffons chargés" + +msgid "Profile ID" +msgstr "ID de profil" + +msgid "Profile ID for referring to this profile" +msgstr "Identifiant de profil" + +msgid "Profile description" +msgstr "Description de profil" + +msgid "Brief description of this profile" +msgstr "Brève description de ce profil" + +msgid "Store issued certificates" +msgstr "Stocker les certificats émis" + +msgid "Whether to store certs issued using this profile" +msgstr "Stocker ou non les certificats émis à partir de ce profil" + +msgid "Delete a Certificate Profile." +msgstr "Supprimer un profil de certificat." + +msgid "Search for Certificate Profiles." +msgstr "Rechercher des profils de certificats." + +msgid "Results should contain primary key attribute only (\"id\")" +msgstr "" +"Les résultats doivent uniquement contenir un attribut de clé principale " +"(« id »)" + +msgid "Import a Certificate Profile." +msgstr "Importer un profil de certificat." + +msgid "Filename of a raw profile. The XML format is not supported." +msgstr "Nom de fichier du profil brut. Le format XML n'est pas pris en charge." + +msgid "Modify Certificate Profile configuration." +msgstr "Modifier la configuration d'un profil de certificat." + +msgid "File containing profile configuration" +msgstr "Fichier contenant la configuration du profil" + +msgid "Display the properties of a Certificate Profile." +msgstr "Afficher les propriétés d'un profil de certificat." + +msgid "Write profile configuration to file" +msgstr "Écrire le profil de configuration dans un fichier" + +msgid "" +"\n" +"OTP Tokens\n" +"\n" +"Manage OTP tokens.\n" +"\n" +"IPA supports the use of OTP tokens for multi-factor authentication. This\n" +"code enables the management of OTP tokens.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new token:\n" +" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" +"\n" +" Examine the token:\n" +" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" +"\n" +" Change the vendor:\n" +" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" +"\"\n" +"\n" +" Delete a token:\n" +" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" +msgstr "" +"\n" +"Jetons OTP\n" +"\n" +"Configuration des jetons OTP.\n" +"\n" +"IPA prend en charge l'utilisation de jetons OTP pour une authentification\n" +"à facteurs multiples. Ce code active la gestion des jetons OTP.\n" +"\n" +"EXEMPLES :\n" +"\n" +" Ajouter un nouveau jeton :\n" +" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" +"\n" +" Examiner un jeton :\n" +" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" +"\n" +" Modifier le fournisseur :\n" +" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" +"\"\n" +"\n" +" Supprimer un jeton :\n" +" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" + +msgid "Unique ID" +msgstr "ID unique" + msgid "Type" msgstr "Type" -msgid "Member of group" -msgstr "Membre du groupe" +msgid "Type of the token" +msgstr "Type du jeton" -msgid "Filter" -msgstr "Filtre" +msgid "Token description (informational only)" +msgstr "Description du jeton (à titre d'information)" -msgid "Legal LDAP filter (e.g. ou=Engineering)" -msgstr "Filtre LDAP valide (i.e. ou=Engineering)" +msgid "Owner" +msgstr "Propriétaire" + +msgid "Assigned user of the token (default: self)" +msgstr "Utilisateur assigné au jeton (par défaut : soi-même)" + +msgid "Assigned manager of the token (default: self)" +msgstr "Administrateur assigné au jeton (par défaut : soi-même)" + +msgid "Disabled" +msgstr "Désactivé" + +msgid "Mark the token as disabled (default: false)" +msgstr "Marquer le jeton comme désactivé (par défaut : faux, false)" + +msgid "Validity start" +msgstr "Départ de validation" + +msgid "First date/time the token can be used" +msgstr "Date et heure à partir desquels le jeton peut être utilisé" + +msgid "Validity end" +msgstr "Fin de validation" + +msgid "Last date/time the token can be used" +msgstr "Date et heure au delà desquels le jeton ne peut plus être utilisé" + +msgid "Vendor" +msgstr "Fournisseur" + +msgid "Token vendor name (informational only)" +msgstr "Nom du fabricant du jeton (à titre d'information)" + +msgid "Model" +msgstr "Modèle" + +msgid "Token model (informational only)" +msgstr "Modèle du jeton (à titre d'information)" + +msgid "Serial" +msgstr "Numéro de série" + +msgid "Token serial (informational only)" +msgstr "Numéro de série du jeton (à titre d'information)" + +msgid "Key" +msgstr "Clé" + +msgid "Token secret (Base32; default: random)" +msgstr "Secret du jeton (Base32 ; par défaut : aléatoire)" + +msgid "Algorithm" +msgstr "Algorithme" + +msgid "Token hash algorithm" +msgstr "Algorithme de hachage du jeton" + +msgid "Digits" +msgstr "Chiffres" + +msgid "Number of digits each token code will have" +msgstr "Nombre de chiffres des codes du jeton" + +msgid "Clock offset" +msgstr "Décalage d'horloge" + +msgid "TOTP token / FreeIPA server time difference" +msgstr "Différence entre le jeton TOTP et le serveur FreeIPA" + +msgid "Clock interval" +msgstr "Intervalle d'horloge" + +msgid "Length of TOTP token code validity" +msgstr "Durée de validité du code du jeton TOTP" + +msgid "Counter" +msgstr "Compteur" + +msgid "Add a new OTP token." +msgstr "Ajouter un nouveau jeton OTP" + +msgid "(deprecated)" +msgstr "(obsolète)" + +msgid "Do not display QR code" +msgstr "Ne pas afficher le code QR" + +msgid "Add users that can manage this token." +msgstr "Ajouter des utilisateurs pouvant gérer ce jeton." + +msgid "Delete an OTP token." +msgstr "Supprimer un jeton OTP" + +msgid "Search for OTP token." +msgstr "Rechercher un jeton OTP" + +msgid "Modify a OTP token." +msgstr "Modifier un jeton OTP" + +msgid "Rename the OTP token object" +msgstr "Renommer l'objet jeton OTP" + +msgid "Remove users that can manage this token." +msgstr "Supprimer des utilisateurs pouvant gérer ce jeton." + +msgid "Display information about an OTP token." +msgstr "Afficher des informations au sujet du jeton OTP" + +msgid "" +"\n" +"Plugins not accessible directly through the CLI, commands used internally\n" +msgstr "" +"\n" +"Greffons non accessibles depuis la ligne de commande, commandes utilisées en " +"interne\n" + +msgid "Dict of I18N messages" +msgstr "Dictionnaire de messages I18N" + +msgid "Export plugin meta-data for the webUI." +msgstr "Exporter les meta-données du greffons pour l'interface Web" + +msgid "Name of object to export" +msgstr "Nom de l'objet à exporter" + +msgid "Name of method to export" +msgstr "Nom de la méthode à exporter" + +msgid "Name of command to export" +msgstr "Nom de la commande à exporter" + +msgid "Dict of JSON encoded IPA Objects" +msgstr "Dictionnaire d'objets IPA codés JSON" + +msgid "Dict of JSON encoded IPA Methods" +msgstr "Dictionnaire de méthode IPA codées JSON" + +msgid "Dict of JSON encoded IPA Commands" +msgstr "Dictionnaire de commande IPA codées JSON" + +msgid "A description of this auto member rule" +msgstr "Une description de cette règle d'auto-adhésion" + +msgid "Default (fallback) Group" +msgstr "Groupe par défaut (repli)" + +msgid "Default group for entries to land" +msgstr "Groupe par défaut pour les nouvelles entrées" + +msgid "Add an automember rule." +msgstr "Ajouter une règle d'auto-adhésion." + +msgid "Automember Rule" +msgstr "Règle d'auto-adhésion" + +msgid "Grouping Type" +msgstr "Type de groupe" + +msgid "Grouping to which the rule applies" +msgstr "Type de groupe auquel la règle s'applique" + +msgid "Add conditions to an automember rule." +msgstr "Ajouter une condition à une règle d'auto-adhésion." + +msgid "Inclusive Regex" +msgstr "« Regex » d'inclusion" + +msgid "Exclusive Regex" +msgstr "« Regex » d'exclusion" + +msgid "Attribute Key" +msgstr "Clé d'attribut" + +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a " +"user" +msgstr "" +"Attribut à filtrer via « regex ». Ex. FQDN pour un hôte, ou « manager » pour " +"un utilisateur" + +msgid "Conditions that could not be added" +msgstr "Conditions n'ayant pu être ajoutées" + +msgid "Number of conditions added" +msgstr "Nombre de conditions ajoutées" + +msgid "Remove default (fallback) group for all unmatched entries." +msgstr "" +"Supprimer le groupe par défaut (repli) pour toute entrée sans correspondance." + +msgid "Set default (fallback) group for all unmatched entries." +msgstr "" +"Définir un groupe par défaut (repli) pour toutes les entrées sans " +"correspondance." + +msgid "Default (fallback) group for entries to land" +msgstr "Groupe par défaut (repli) pour ranger des entrées" + +msgid "Display information about the default (fallback) automember groups." +msgstr "" +"Afficher des informations pour les groupes d'auto-adhésion par défaut " +"(repli).\n" +" " + +msgid "Delete an automember rule." +msgstr "Supprimer une règle d'auto-adhésion." + +msgid "Search for automember rules." +msgstr "Rechercher des règles d'auto-adhésion." + +msgid "Modify an automember rule." +msgstr "" +"Modifier une règle d'auto-adhésion.\n" +" " + +msgid "Rebuild auto membership." +msgstr "Reconstruire les appartenances automatiques." + +msgid "Rebuild membership for all members of a grouping" +msgstr "Reconstruire l'appartenance pour tous les membres d'un groupe" + +msgid "Rebuild membership for specified users" +msgstr "Reconstruire l'appartenance pour les utilisateurs indiqués " + +msgid "Rebuild membership for specified hosts" +msgstr "Reconstruire l'appartenance pour les hôtes indiqués" + +msgid "No wait" +msgstr "Pas d'attente" + +msgid "Don't wait for rebuilding membership" +msgstr "Ne pas attendre pour reconstruire l'appartenance" + +msgid "Remove conditions from an automember rule." +msgstr "Supprimer des conditions d'une règle d'auto-adhésion. " + +msgid "Conditions that could not be removed" +msgstr "Conditions n'ayant pu être supprimées" + +msgid "Number of conditions removed" +msgstr "Nombre de conditions supprimées" + +msgid "Display information about an automember rule." +msgstr "Afficher des informations au sujet d'une règle d'auto-adhésion. " + +msgid "Permission name" +msgstr "Nom de permission" + +msgid "Granted rights" +msgstr "Droits accordés" + +msgid "Rights to grant (read, search, compare, write, add, delete, all)" +msgstr "Droits à accorder (read, search, compare, write, add, delete, all)" + +msgid "Effective attributes" +msgstr "Attributs impactés" + +msgid "All attributes to which the permission applies" +msgstr "Tous les attributs auxquels la permission s'applique" + +msgid "Included attributes" +msgstr "Attributs inclus" + +msgid "User-specified attributes to which the permission applies" +msgstr "Attributs propres à un utilisateur auxquels la permission s'applique" + +msgid "Excluded attributes" +msgstr "Attributs exclus" + +msgid "" +"User-specified attributes to which the permission explicitly does not apply" +msgstr "" +"Attributs propres à un utilisateur auxquels la permission ne s'applique " +"explicitement pas" + +msgid "Default attributes" +msgstr "Attributs par défaut" + +msgid "Attributes to which the permission applies by default" +msgstr "Attributs auxquels la permission s'applique par défaut" + +msgid "Bind rule type" +msgstr "Type de règle liée" msgid "Subtree" msgstr "Sous-arbre" @@ -2065,15 +3425,76 @@ msgstr "Sous-arbre" msgid "Subtree to apply permissions to" msgstr "Branche à laquelle appliquer les permissions" +msgid "Extra target filter" +msgstr "Filtre cible supplémentaire" + +msgid "Raw target filter" +msgstr "Filtre cible brut" + +msgid "All target filters, including those implied by type and memberof" +msgstr "" +"Tous les filtres cible, y compris ceux définis avec « type » et « memberof »" + +msgid "Target DN" +msgstr "DN cible" + +msgid "" +"Optional DN to apply the permission to (must be in the subtree, but may not " +"yet exist)" +msgstr "" +"DN optionnel auquel appliquer les permissions (doit être dans le sous-arbre, " +"mais peut ne pas encore exister)" + +msgid "Target DN subtree" +msgstr "Sous-arbre des DN cibles" + +msgid "" +"Optional DN subtree where an entry can be moved to (must be in the subtree, " +"but may not yet exist)" +msgstr "" +"Sous-arbre optionnel de DN dans lequel une entrée peut être déplacée (doit " +"être dans le sous-arbre, mais peut ne pas encore exister)" + +msgid "Origin DN subtree" +msgstr "Sous-arbre des DN origines" + +msgid "" +"Optional DN subtree from where an entry can be moved (must be in the " +"subtree, but may not yet exist)" +msgstr "" +"Sous-arbre optionnel de DN dans lequel une entrée peut être déplacée (doit " +"être dans le sous-arbre, mais peut ne pas encore exister)" + +msgid "Member of group" +msgstr "Membre du groupe" + +msgid "Target members of a group (sets memberOf targetfilter)" +msgstr "Membres cibles d'un groupe (définit « memberof » du filtre cible)" + msgid "Target group" msgstr "Groupe cible" +msgid "User group to apply permissions to (sets target)" +msgstr "" +"Groupe d'utilisateurs auquel appliquer les permissions (définit « target »)" + +msgid "Type of IPA object (sets subtree and objectClass targetfilter)" +msgstr "" +"Type d'objets IPA (définit le sous-arbre et le filtre cible de la classe " +"d'objets)" + msgid "Indirect Member of roles" msgstr "Membres indirect des rôles" msgid "Add a new permission." msgstr "Ajouter une nouvelle permission." +msgid "Add a system permission without an ACI (internal command)" +msgstr "Ajout d'une permission système sans ACI (commande interne)" + +msgid "Permission flags" +msgstr "Marqueurs de permission" + msgid "Delete a permission." msgstr "Supprimer une permission." @@ -2086,384 +3507,49 @@ msgstr "Recherche des permissions." msgid "Modify a permission." msgstr "Modifier une permission." -msgid "Rename" -msgstr "Renommer" - msgid "Display information about a permission." msgstr "Afficher les informations sur une permission." msgid "" "\n" -"Kerberos pkinit options\n" +"HBAC Service Groups\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" +"HBAC service groups can contain any number of individual services,\n" +"or \"members\". Every group must have a description.\n" "\n" "EXAMPLES:\n" "\n" -" Enable anonymous pkinit:\n" -" ipa pkinit-anonymous enable\n" +" Add a new HBAC service group:\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" "\n" -" Disable anonymous pkinit:\n" -" ipa pkinit-anonymous disable\n" +" Add members to an HBAC service group:\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd --hbacsvcs=login login\n" "\n" -"For more information on anonymous pkinit see:\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show login\n" "\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" +" Delete an HBAC service group:\n" +" ipa hbacsvcgroup-del login\n" msgstr "" "\n" -"Options de « pkinit » de Kerberos\n" +"Groupes de services HBAC\n" "\n" -"Activer ou désactiver l'opération « pkinit » anonyme en utilisant le\n" -"principal WELLKNOWN/ANONYMOUS@REALM. Le serveur doit avoir\n" -"été installé avec la prise en charge de « pkinit ».\n" +"Les groupes de services HBAC peuvent contenir n'importe quel nombre de\n" +"services « membres » individuels. Chaque groupe doit avoir une description.\n" "\n" -"EXEMPLES :\n" +"EXEMPLES:\n" "\n" -" Activer le « pkinit » anonyme :\n" -" ipa pkinit-anonymous enable\n" +" Ajouter un nouveau groupe de services HBAC :\n" +" ipa hbacsvcgroup-add --desc=\"login services\" login\n" "\n" -" Désactiver le « pkinit » anonyme :\n" -" ipa pkinit-anonymous disable\n" +" Ajouter des membres à un groupe de services HBAC :\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd --hbacsvcs=login login\n" "\n" -"Pour plus d'informations sur « pkinit » anonyme, cf. :\n" +" Afficher les informations d'un groupe nommé :\n" +" ipa hbacsvcgroup-show login\n" "\n" -"http://k5wiki.kerberos.org/wiki/Projects/Anonymous_pkinit\n" - -msgid "Enable or Disable Anonymous PKINIT." -msgstr "Active ou désactive un PKINIT anonyme" - -msgid "Ping a remote server." -msgstr "« Ping » sur un serveur distant." - -msgid "Self-service name" -msgstr "Nom de la permission de libre service" - -msgid "Add a new self-service permission." -msgstr "Ajouter une nouvelle permission de libre service." - -msgid "Delete a self-service permission." -msgstr "Supprimer une permission de libre service." - -msgid "Search for a self-service permission." -msgstr "Rechercher des permissions de libre service." - -msgid "Modify a self-service permission." -msgstr "Modifier une permission de libre service." - -msgid "Display information about a self-service permission." -msgstr "Afficher les informations sur une permission de libre service." - -msgid "" -"\n" -"SELinux User Mapping\n" -"\n" -"Map IPA users to SELinux users by host.\n" -"\n" -"Hosts, hostgroups, users and groups can be either defined within\n" -"the rule or it may point to an existing HBAC rule. When using\n" -"--hbacrule option to selinuxusermap-find an exact match is made on the\n" -"HBAC rule name, so only one or zero entries will be returned.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Create a rule, \"test1\", that sets all users to xguest_u:s0 on the host " -"\"server\":\n" -" ipa selinuxusermap-add --usercat=all --selinuxuser=xguest_u:s0 test1\n" -" ipa selinuxusermap-add-host --hosts=server.example.com test1\n" -"\n" -" Create a rule, \"test2\", that sets all users to guest_u:s0 and uses an " -"existing HBAC rule for users and hosts:\n" -" ipa selinuxusermap-add --usercat=all --hbacrule=webserver --" -"selinuxuser=guest_u:s0 test2\n" -"\n" -" Display the properties of a rule:\n" -" ipa selinuxusermap-show test2\n" -"\n" -" Create a rule for a specific user. This sets the SELinux context for\n" -" user john to unconfined_u:s0-s0:c0.c1023 on any machine:\n" -" ipa selinuxusermap-add --hostcat=all --selinuxuser=unconfined_u:s0-s0:c0." -"c1023 john_unconfined\n" -" ipa selinuxusermap-add-user --users=john john_unconfined\n" -"\n" -" Disable a rule:\n" -" ipa selinuxusermap-disable test1\n" -"\n" -" Enable a rule:\n" -" ipa selinuxusermap-enable test1\n" -"\n" -" Find a rule referencing a specific HBAC rule:\n" -" ipa selinuxusermap-find --hbacrule=allow_some\n" -"\n" -" Remove a rule:\n" -" ipa selinuxusermap-del john_unconfined\n" -"\n" -"SEEALSO:\n" -"\n" -" The list controlling the order in which the SELinux user map is applied\n" -" and the default SELinux user are available in the config-show command.\n" -msgstr "" -"\n" -"Mappage d'utilisateur SELinux\n" -"\n" -"Fait correspondre des utilisateurs IPA aux utilisateurs SELinux par hôte.\n" -"\n" -"Hôtes, groupes d'hôtes, utilisateurs et groupes peuvent être définis par\n" -"rapport, soit à la règle, soit en pointant vers une règle HBAC existante.\n" -"En utilisant l'option « --hbacrule » de « selinuxusermap-find », une\n" -"recherche de correspondance exacte est faite sur le nom de la règle HBAC,\n" -"de sorte qu'une seule entrée sera renvoyée ou bien aucune.\n" -"\n" -"EXEMPLES :\n" -"\n" -" Créer une règle « test1 » qui attribue à tous les utilisateurs le contexte\n" -"« xguest_u:s0 » sur l'hôte « server » :\n" -" ipa selinuxusermap-add --usercat=all --selinuxuser=xguest_u:s0 test1\n" -" ipa selinuxusermap-add-host --hosts=server.example.com test1\n" -"\n" -" Créer une règle « test2 » qui attribue à tous les utilisateurs le contexte\n" -"« guest_u:s0 » et utilise une règle HBAC existante pour utilisateurs et " -"hôtes :\n" -" ipa selinuxusermap-add --usercat=all --hbacrule=webserver --" -"selinuxuser=guest_u:s0 test1\n" -"\n" -" Afficher les propriétés d'une règle :\n" -" ipa selinuxusermap-show test2\n" -"\n" -" Créer une règle pour un utilisateur donné. Elle fixe le contexte\n" -" SELinux de l'utilisateur « john » à « unconfined_u:s0-s0:c0.c1023 »\n" -" sur toute machine :\n" -" ipa selinuxusermap-add --hostcat=all --selinuxuser=unconfined_u:s0-s0:c0." -"c1023 john_unconfined\n" -" ipa selinuxusermap-add-user --users=john john_unconfined\n" -"\n" -" Désactiver une règle :\n" -" ipa selinuxusermap-disable test1\n" -"\n" -" Activer une règle :\n" -" ipa selinuxusermap-enable test1\n" -"\n" -" Trouver une règle référençant une règle HBAC donnée :\n" -" ipa selinuxusermap-find --hbacrule=allow_some\n" -"\n" -" Supprimer une règle :\n" -" ipa selinuxusermap-del john_unconfined\n" -"\n" -"VOIR AUSSI :\n" -"\n" -" La liste contrôlant l'ordre dans lequel la mappe d'utilisateurs SELinux\n" -" est appliquée, ainsi que l'utilisateur SELinux par défaut, sont " -"disponibles\n" -" avec la commande « config-show ».\n" - -msgid "SELinux User" -msgstr "Utilisateur SELinux" - -msgid "HBAC Rule" -msgstr "Règle HBAC" - -msgid "HBAC Rule that defines the users, groups and hostgroups" -msgstr "" -"Règle HBAC délimitant les utilisateurs, les groupes et les groupes d'hôtes" - -msgid "Create a new SELinux User Map." -msgstr "Créer une nouvelle mappe d'utilisateurs SELinux" - -msgid "Add target hosts and hostgroups to an SELinux User Map rule." -msgstr "" -"Ajouter des hôtes et groupes d'hôtes cibles à une mappe d'utilisateurs " -"SELinux" - -msgid "Add users and groups to an SELinux User Map rule." -msgstr "Ajouter des utilisateurs et groupes à une mappe d'utilisateurs SELinux" - -msgid "Delete a SELinux User Map." -msgstr "Supprimer une mappe d'utilisateurs SELinux" - -msgid "Disable an SELinux User Map rule." -msgstr "Désactiver une mappe d'utilisateurs SELinux" - -msgid "Enable an SELinux User Map rule." -msgstr "Activer une mappe d'utilisateurs SELinux" - -msgid "Search for SELinux User Maps." -msgstr "Rechercher des mappes d'utilisateurs SELinux" - -msgid "Modify a SELinux User Map." -msgstr "Modifier une mappe d'utilisateurs SELinux" - -msgid "Remove target hosts and hostgroups from an SELinux User Map rule." -msgstr "" -"Supprimer des hôtes et groupes d'hôtes cibles d'une mappe d'utilisateurs " -"SELinux" - -msgid "Remove users and groups from an SELinux User Map rule." -msgstr "" -"Supprimer des utilisateurs et groupes d'une mappe d'utilisateurs SELinux" - -msgid "Display the properties of a SELinux User Map rule." -msgstr "Afficher les propriétés d'une mappe d'utilisateurs SELinux" - -msgid "Host name" -msgstr "Nom d'hôte" - -msgid "A description of this host" -msgstr "Une description de cet hôte" - -msgid "Locality" -msgstr "Localité" - -msgid "Host locality (e.g. \"Baltimore, MD\")" -msgstr "Localité de l'hôte (par ex. « Paris, IDF »)" - -msgid "Location" -msgstr "Emplacement" - -msgid "Host location (e.g. \"Lab 2\")" -msgstr "Emplacement de l'hôte (par ex. \"Lab 2\")" - -msgid "Platform" -msgstr "Plate-forme" - -msgid "Host hardware platform (e.g. \"Lenovo T61\")" -msgstr "Plate-forme matérielle de l'hôte (par ex. « Lenovo T61 »)" - -msgid "Operating system" -msgstr "Système d'exploitation" - -msgid "Host operating system and version (e.g. \"Fedora 9\")" -msgstr "Système d'exploitation et version (par ex. « Fedora 9 »)" - -msgid "User password" -msgstr "Mot de passe utilisateur" - -msgid "Password used in bulk enrollment" -msgstr "Mot de passe utilisé pour les inscriptions en masse" - -msgid "Generate a random password to be used in bulk enrollment" -msgstr "Créer un mot de passe aléatoire utilisé pour l'inscription en masse" - -msgid "Random password" -msgstr "Mot de passe aléatoire" - -msgid "Principal name" -msgstr "Nom principal" - -msgid "MAC address" -msgstr "Adresse MAC" - -msgid "Hardware MAC address(es) on this host" -msgstr "Adresse(s) MAC du matériel sur cet hôte" - -msgid "SSH public key" -msgstr "Clé publique SSH" - -msgid "Member of host-groups" -msgstr "Membre du groupe d'hôtes" - -msgid "Roles" -msgstr "Rôles" - -msgid "Member of netgroups" -msgstr "Membre des groupes réseau" - -msgid "Member of Sudo rule" -msgstr "Membre de règle Sudo" - -msgid "Member of HBAC rule" -msgstr "Membre de règle HBAC" - -msgid "Indirect Member of host-group" -msgstr "Membre indirect des groupes d'hôtes" - -msgid "Managing" -msgstr "Gérant" - -msgid "Add a new host." -msgstr "Ajouter un nouvel hôte." - -msgid "force host name even if not in DNS" -msgstr "forcer le nom même si absent des DNS" - -msgid "skip reverse DNS detection" -msgstr "sauter la détection du DNS inverse" - -msgid "IP Address" -msgstr "Adresse IP" - -msgid "Add the host to DNS with this IP address" -msgstr "Ajouter l'hôte aux DNS avec cette adresse IP" - -msgid "Add hosts that can manage this host." -msgstr "Ajouter les hôtes qui peuvent gérer cet hôte." - -msgid "Delete a host." -msgstr "Supprimer un hôte." - -msgid "Remove entries from DNS" -msgstr "Supprimer les entrées du DNS" - -msgid "Disable the Kerberos key, SSL certificate and all services of a host." -msgstr "" -"Désactiver la clé Kerberos, les certificats SSL et tous les services d'un " -"hôte." - -msgid "Search for hosts." -msgstr "Rechercher des hôtes." - -msgid "Results should contain primary key attribute only (\"hostname\")" -msgstr "" -"Les résultats doivent uniquement contenir un attribut de clé principale " -"(« hostname »)" - -msgid "host group" -msgstr "groupe d'hôtes" - -msgid "Search for hosts with these member of host groups." -msgstr "Rechercher des hôtes avec ces membres de groupes d'hôtes." - -msgid "Search for hosts without these member of host groups." -msgstr "Rechercher des hôtes sans ces membres de groupes d'hôtes." - -msgid "netgroup" -msgstr "groupe réseau" - -msgid "role" -msgstr "rôle" - -msgid "Search for hosts without these member of roles." -msgstr "Rechercher des hôtes sans ces membres de rôles." - -msgid "HBAC rule" -msgstr "Règle HBAC" - -msgid "Search for hosts with these member of HBAC rules." -msgstr "Rechercher des hôtes avec ces membres de règles HBAC." - -msgid "sudo rule" -msgstr "règle sudo" - -msgid "Search for hosts without these member of sudo rules." -msgstr "Rechercher des systèmes sans ces membres de règles sudo." - -msgid "user" -msgstr "utilisateur" - -msgid "Modify information about a host." -msgstr "Modifier les informations d'un hôte." - -msgid "Kerberos principal name for this host" -msgstr "Nom du principal Kerberos pour cet hôte" - -msgid "Update DNS entries" -msgstr "Mettre à jour les entrées DNS" - -msgid "Remove hosts that can manage this host." -msgstr "Supprimer les hôtes qui peuvent gérer cet hôte." - -msgid "Display information about a host." -msgstr "Afficher les informations sur un hôte." +" Supprimer un groupe de services HBAC :\n" +" ipa hbacsvcgroup-del login\n" msgid "Service group name" msgstr "Nom de groupe de services HBAC" @@ -2480,9 +3566,6 @@ msgstr "Ajouter un nouveau groupe de services HBAC." msgid "Add members to an HBAC service group." msgstr "Ajouter des membres à un groupe de services HBAC." -msgid "member HBAC service" -msgstr "Service HBAC membre" - msgid "Delete an HBAC service group." msgstr "Supprimer un groupe de services HBAC." @@ -2498,15 +3581,92 @@ msgstr "Supprimer des membres d'un groupe de services HBAC." msgid "Display information about an HBAC service group." msgstr "Afficher les informations sur un groupe de services HBAC." -msgid "Nested Methods to execute" -msgstr "Commandes imbriquées à exécuter" - msgid "" "\n" -"Misc plug-ins\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 (using Bash\n" +" brace expansion):\n" +" ipa selfservice-add --permissions=write --attrs={street,postalCode,l,c," +"st} \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones.\n" +" Add telephoneNumber to the list (using Bash brace expansion):\n" +" ipa selfservice-mod --attrs={street,postalCode,l,c,st,telephoneNumber} " +"\"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" 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" -"Greffons divers\n" +"Permissions de libre service\n" +"\n" +"Une permission permet d'affiner une délégation de permissions. Les règles " +"ou\n" +"instructions de contrôle d'accès (ACI) accordent la permission de donner " +"les\n" +"permissions d'effectuer des tâches données comme ajouter un utilisateur,\n" +"modifier un groupe, etc.\n" +"\n" +"Une permission de libre service définit ce qu'un objet peut modifier dans " +"sa\n" +"propre entrée.\n" +"\n" +"\n" +"EXEMPLES :\n" +"\n" +" Ajouter une règle de libre service permettant aux utilisateurs de gérer\n" +"leurs adresses (avec les extensions entre accolades de Bash) :\n" +" ipa selfservice-add --permissions=write --attrs={street,postalCode,l,c," +"st} \"Users manage their own address\"\n" +"\n" +" En gérant les listes d'attributs, vous devez incorporer tous les attributs\n" +"dans la liste, y compris les existants.\n" +" Ajouter « telephoneNumber » à la liste (avec extension entre accolades " +"Bash) :\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" + +msgid "Self-service name" +msgstr "Nom de la permission de libre service" + +msgid "Attributes to which the permission applies." +msgstr "Attributs auxquels les permissions s'appliquent." + +msgid "Add a new self-service permission." +msgstr "Ajouter une nouvelle permission de libre service." + +msgid "Delete a self-service permission." +msgstr "Supprimer une permission de libre service." + +msgid "Search for a self-service permission." +msgstr "Rechercher des permissions de libre service." + +msgid "Modify a self-service permission." +msgstr "Modifier une permission de libre service." + +msgid "Display information about a self-service permission." +msgstr "Afficher les informations sur une permission de libre service." msgid "ACI name" msgstr "Nom d'ACI" @@ -2517,11 +3677,12 @@ msgstr "Permission" msgid "Permission ACI grants access to" msgstr "L'ACI « permission » permet un accès à" -msgid "User group" -msgstr "Groupe d'utilisateurs" +msgid "Permissions to grant(read, write, add, delete, all)" +msgstr "" +"Permissions à accorder (« read », « write », « add », « delete », « all »)" -msgid "User group ACI grants access to" -msgstr "L'ACI d'un groupe utilisateur permet un accès à" +msgid "Attributes to which the permission applies" +msgstr "Attributs auxquels les permissions s'appliquent" msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" @@ -2534,6 +3695,12 @@ msgstr "Membre de" msgid "Member of a group" msgstr "Membre d'un groupe" +msgid "Filter" +msgstr "Filtre" + +msgid "Legal LDAP filter (e.g. ou=Engineering)" +msgstr "Filtre LDAP valide (i.e. ou=Engineering)" + msgid "Subtree to apply ACI to" msgstr "Sous-arbre auquel appliquer l'ACI" @@ -2577,29 +3744,699 @@ msgstr "Nouveau nom de l'ACI" msgid "Display a single ACI given an ACI name." msgstr "Afficher une ICA d'après son nom." -msgid "Service name" -msgstr "Nom de service" +msgid "Location of the ACI" +msgstr "Emplacement de l'ACI" -msgid "HBAC service" -msgstr "Service HBAC" +msgid "Server name" +msgstr "Nom du serveur" -msgid "HBAC service description" -msgstr "Description de service HBAC" +msgid "IPA server hostname" +msgstr "Nom d'hôte du serveur IPA" -msgid "Add a new HBAC service." -msgstr "Ajouter un nouveau service HBAC." +msgid "Managed suffixes" +msgstr "Suffixes administrés" -msgid "Delete an existing HBAC service." -msgstr "Supprimer un service HBAC existant." +msgid "Min domain level" +msgstr "Niveau de domaine mini" -msgid "Search for HBAC services." -msgstr "Rechercher des services HBAC." +msgid "Minimum domain level" +msgstr "Niveau de domaine minimal" -msgid "Modify an HBAC service." -msgstr "Modifier un service HBAC." +msgid "Max domain level" +msgstr "Niveau de domaine maxi" -msgid "Display information about an HBAC service." -msgstr "Afficher des informations sur un service HBAC." +msgid "Maximum domain level" +msgstr "Niveau de domaine maximal" + +msgid "Check connection to remote IPA server." +msgstr "Vérifier la connexion au serveur IPA distant." + +msgid "Remote server name" +msgstr "Nom du serveur distant" + +msgid "Remote IPA server hostname" +msgstr "Nom d'hôte du serveur IPA distant" + +msgid "Delete IPA server." +msgstr "Supprimer un serveur IPA." + +msgid "Search for IPA servers." +msgstr "Rechercher des serveurs IPA." + +msgid "suffix" +msgstr "suffixe" + +msgid "Show IPA server." +msgstr "Afficher les informations sur le serveur IPA." + +msgid "Host name" +msgstr "Nom d'hôte" + +msgid "A description of this host" +msgstr "Une description de cet hôte" + +msgid "Locality" +msgstr "Localité" + +msgid "Host locality (e.g. \"Baltimore, MD\")" +msgstr "Localité de l'hôte (par ex. « Paris, IDF »)" + +msgid "Location" +msgstr "Emplacement" + +msgid "Host location (e.g. \"Lab 2\")" +msgstr "Emplacement de l'hôte (par ex. \"Lab 2\")" + +msgid "Platform" +msgstr "Plate-forme" + +msgid "Host hardware platform (e.g. \"Lenovo T61\")" +msgstr "Plate-forme matérielle de l'hôte (par ex. « Lenovo T61 »)" + +msgid "Operating system" +msgstr "Système d'exploitation" + +msgid "Host operating system and version (e.g. \"Fedora 9\")" +msgstr "Système d'exploitation et version (par ex. « Fedora 9 »)" + +msgid "User password" +msgstr "Mot de passe utilisateur" + +msgid "Password used in bulk enrollment" +msgstr "Mot de passe utilisé pour les inscriptions en masse" + +msgid "Generate a random password to be used in bulk enrollment" +msgstr "Créer un mot de passe aléatoire utilisé pour l'inscription en masse" + +msgid "Principal name" +msgstr "Nom principal" + +msgid "MAC address" +msgstr "Adresse MAC" + +msgid "Hardware MAC address(es) on this host" +msgstr "Adresse(s) MAC du matériel sur cet hôte" + +msgid "" +"Host category (semantics placed on this attribute are for local " +"interpretation)" +msgstr "" +"Catégorie d'hôte (les sémantiques associées à cet attribut vous sont propres)" + +msgid "Assigned ID View" +msgstr "Vue d'identifiants attribuée" + +msgid "Member of host-groups" +msgstr "Membre du groupe d'hôtes" + +msgid "Indirect Member of host-group" +msgstr "Membre indirect des groupes d'hôtes" + +msgid "Managing" +msgstr "Gérant" + +msgid "Add a new host." +msgstr "Ajouter un nouvel hôte." + +msgid "force host name even if not in DNS" +msgstr "forcer le nom même si absent des DNS" + +msgid "skip reverse DNS detection" +msgstr "sauter la détection du DNS inverse" + +msgid "IP Address" +msgstr "Adresse IP" + +msgid "Add the host to DNS with this IP address" +msgstr "Ajouter l'hôte aux DNS avec cette adresse IP" + +msgid "Add certificates to host entry" +msgstr "Ajouter les certificats à l'entrée de l'hôte" + +msgid "Add hosts that can manage this host." +msgstr "Ajouter les hôtes qui peuvent gérer cet hôte." + +msgid "" +"Allow users, groups, hosts or host groups to create a keytab of this host." +msgstr "" +"Autoriser des utilisateurs, hôtes ou groupes d'hôtes à créer un tableau de " +"clés de cet hôte." + +msgid "" +"Allow users, groups, hosts or host groups to retrieve a keytab of this host." +msgstr "" +"Autoriser des utilisateurs, hôtes ou groupes d'hôtes à récupérer un tableau " +"de clés de cet hôte." + +msgid "Delete a host." +msgstr "Supprimer un hôte." + +msgid "Remove entries from DNS" +msgstr "Supprimer les entrées du DNS" + +msgid "Disable the Kerberos key, SSL certificate and all services of a host." +msgstr "" +"Désactiver la clé Kerberos, les certificats SSL et tous les services d'un " +"hôte." + +msgid "" +"Disallow users, groups, hosts or host groups to create a keytab of this host." +msgstr "" +"Interdire aux utilisateurs, hôtes ou groupes d'hôtes de créer un tableau de " +"clés de cet hôte." + +msgid "" +"Disallow users, groups, hosts or host groups to retrieve a keytab of this " +"host." +msgstr "" +"Interdire aux utilisateurs, hôtes ou groupes d'hôtes à récupérer un tableau " +"de clés de cet hôte." + +msgid "Search for hosts." +msgstr "Rechercher des hôtes." + +msgid "Results should contain primary key attribute only (\"hostname\")" +msgstr "" +"Les résultats doivent uniquement contenir un attribut de clé principale " +"(« hostname »)" + +msgid "Search for hosts with these member of host groups." +msgstr "Rechercher des hôtes avec ces membres de groupes d'hôtes." + +msgid "Search for hosts without these member of host groups." +msgstr "Rechercher des hôtes sans ces membres de groupes d'hôtes." + +msgid "Search for hosts without these member of roles." +msgstr "Rechercher des hôtes sans ces membres de rôles." + +msgid "Search for hosts with these member of HBAC rules." +msgstr "Rechercher des hôtes avec ces membres de règles HBAC." + +msgid "Search for hosts without these member of sudo rules." +msgstr "Rechercher des systèmes sans ces membres de règles sudo." + +msgid "Modify information about a host." +msgstr "Modifier les informations d'un hôte." + +msgid "Kerberos principal name for this host" +msgstr "Nom du principal Kerberos pour cet hôte" + +msgid "Update DNS entries" +msgstr "Mettre à jour les entrées DNS" + +msgid "Remove certificates from host entry" +msgstr "Supprimer les certificats de l'entrée de l'hôte" + +msgid "Remove hosts that can manage this host." +msgstr "Supprimer les hôtes qui peuvent gérer cet hôte." + +msgid "Display information about a host." +msgstr "Afficher les informations sur un hôte." + +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup (using Bash brace expansion):\n" +" ipa hostgroup-add-member --hosts={box1,box2,box3} baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" +msgstr "" +"\n" +"Groupes d'hôtes.\n" +"\n" +"Gestion des groupes d'hôtes. Permet d'appliquer des contrôles d'accès\n" +"à plusieurs hôtes en utilisant HBAC (Host-based Access Control).\n" +"\n" +"EXEMPLES :\n" +"\n" +" Ajouter un nouveau groupe d'hôtes :\n" +" ipa hostgroup-add --desc=\"Systèmes de Baltimore\" baltimore\n" +"\n" +" Ajouter un nouveau groupe d'hôtes :\n" +" ipa hostgroup-add --desc=\"Systèmes du Maryland\" maryland\n" +"\n" +" Ajouter des membres à un groupe d'hôtes :\n" +" ipa hostgroup-add-member --hosts={box1,box2,box3} baltimore\n" +"\n" +" Ajouter un groupe d'hôtes en tant que membre d'un autre groupe d'hôtes :\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Supprimer un hôte d'un groupe :\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Afficher un groupe d'hôtes :\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Supprimer un groupe d'hôtes :\n" +" ipa hostgroup-del baltimore\n" + +msgid "Host-group" +msgstr "Groupe d'hôtes" + +msgid "Name of host-group" +msgstr "Nom du groupe d'hôtes" + +msgid "A description of this host-group" +msgstr "Description de ce groupe d'hôtes" + +msgid "Indirect Member hosts" +msgstr "Hôtes membres indirects" + +msgid "Indirect Member host-groups" +msgstr "Groupes d'hôtes membres indirects" + +msgid "Add a new hostgroup." +msgstr "Ajouter un nouveau groupe d'hôtes." + +msgid "Add members to a hostgroup." +msgstr "Ajouter des membres à un groupe d'hôtes." + +msgid "Delete a hostgroup." +msgstr "Supprimer un groupe d'hôtes." + +msgid "Search for hostgroups." +msgstr "Rechercher un groupe d'hôtes." + +msgid "Modify a hostgroup." +msgstr "Modifier un groupe d'hôtes." + +msgid "Remove members from a hostgroup." +msgstr "Supprimer des membres d'un groupe d'hôtes." + +msgid "Display information about a hostgroup." +msgstr "Afficher des informations sur un groupe d'hôtes." + +msgid "" +"\n" +"Server configuration\n" +"\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" +"\n" +"NOTES:\n" +"\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" +"\n" +"Some attributes are read-only, provided only for information purposes. " +"These\n" +"include:\n" +"\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" +"\n" +"When setting the order list for mapping SELinux users you may need to\n" +"quote the value so it isn't interpreted by the shell.\n" +"\n" +"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" +"\n" +" Define SELinux user map order:\n" +" ipa config-mod --ipaselinuxusermaporder='guest_u:s0$xguest_u:s0$user_u:s0-" +"s0:c0.c1023$staff_u:s0-s0:c0.c1023$unconfined_u:s0-s0:c0.c1023'\n" +msgstr "" +"\n" +"Configuration du serveur\n" +"\n" +"Gérer les valeurs par défaut utilisées par IPA ainsi que certains de ses\n" +"paramètres d'ajustement.\n" +"\n" +"NOTES :\n" +"\n" +"La valeur de notification du mot de passe (--pwdexpnotify) est stockée ici\n" +"en vue de sa réplication. Elle n'est pas actuellement utilisée pour " +"notifier\n" +"par avance aux utilisateurs l'expiration de leur mot de passe.\n" +"\n" +"Certains attributs sont en lecture seule, fournis à titre d'information ;\n" +"ils comprennent :\n" +"\n" +"* la base sujet de certificat : la base de sujet de certificat configuré,\n" +" ex. O=EXAMPLE.COM, configurable uniquement à l'installation.\n" +"* les fonctions du greffon mots de passe : définit les hachages " +"additionnels\n" +" qu'un mot de passe va générer (d'autres conditions peuvent s'appliquer).\n" +"\n" +"En fixant la liste ordonnée pour le mappage des utilisateurs SELinux, vous\n" +"devez mettre entre guillemets les valeurs pour éviter leur interprétation.\n" +"\n" +"EXEMPLES :\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 à 99 caractères :\n" +" ipa config-mod --maxusername=99\n" +"\n" +" Augmenter délais et limites de taille des recherches sur le serveur IPA :\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" +"\n" +" Définir le domaine pour les courriels de l'utilisateur par défaut :\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Activer le mode migration pour que « ipa migrate-ds » soit opérationelle :\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +" Définir l'ordre de la mappe des utilisateurs SELinux :\n" +" ipa config-mod --ipaselinuxusermaporder='guest_u:s0$xguest_u:s0$user_u:s0-" +"s0:c0.c1023$staff_u:s0-s0:c0.c1023$unconfined_u:s0-s0:c0.c1023'\n" + +msgid "Maximum username length" +msgstr "Longueur maximale du nom d'utilisateur" + +msgid "Home directory base" +msgstr "Base du répertoire utilisateur" + +msgid "Default location of home directories" +msgstr "Emplacement par défaut des répertoires utilisateur" + +msgid "Default shell" +msgstr "Interpréteur de commande par défaut" + +msgid "Default shell for new users" +msgstr "Interpréteur de commande par défaut pour les nouveaux utilisateurs" + +msgid "Default users group" +msgstr "Groupe utilisateur par défaut" + +msgid "Default group for new users" +msgstr "Groupe utilisateur par défaut pour les nouveaux utilisateurs" + +msgid "Default e-mail domain" +msgstr "Domaine par défaut pour les courriels" + +msgid "Search time limit" +msgstr "Limite de temps d'une recherche" + +msgid "Maximum amount of time (seconds) for a search (-1 or 0 is unlimited)" +msgstr "Durée maximale (secondes) pour une recherche (0 ou -1 pour illimitée)" + +msgid "Search size limit" +msgstr "Limite de taille d'une recherche" + +msgid "Maximum number of records to search (-1 or 0 is unlimited)" +msgstr "Nombre maximum d'entrées à rechercher (-1 ou 0 pour illimité)" + +msgid "User search fields" +msgstr "Champs de recherche utilisateur" + +msgid "A comma-separated list of fields to search in when searching for users" +msgstr "" +"Une liste, séparée avec des virgules, des champs à explorer pour une " +"recherche d'utilisateurs" + +msgid "Group search fields" +msgstr "Champs de recherche de groupe" + +msgid "A comma-separated list of fields to search in when searching for groups" +msgstr "" +"Une liste séparée par des virgules des champs à explorer pour une recherche " +"de groupes" + +msgid "Enable migration mode" +msgstr "Activer le mode migration" + +msgid "Certificate Subject base" +msgstr "Base de sujet de certificat" + +msgid "Base for certificate subjects (OU=Test,O=Example)" +msgstr "Base pour les sujets de certificat (OU=Test,O=Example)" + +msgid "Default group objectclasses" +msgstr "Classes d'objets de groupe par défaut" + +msgid "Default group objectclasses (comma-separated list)" +msgstr "Classes d'objets de groupe par défaut (liste séparée par des virgules)" + +msgid "Default user objectclasses" +msgstr "Classes d'objets utilisateur par défaut" + +msgid "Default user objectclasses (comma-separated list)" +msgstr "" +"Classes d'objets utilisateurs par défaut (liste séparée par des virgules)" + +msgid "Password Expiration Notification (days)" +msgstr "Notification d'expiration de mot de passe (jours)" + +msgid "Number of days's notice of impending password expiration" +msgstr "Nombre de jours de préavis d'expiration de mot de passe" + +msgid "Password plugin features" +msgstr "Fonctionnalités du greffon mots de passe" + +msgid "Extra hashes to generate in password plug-in" +msgstr "Hachages additionnels à générer dans le greffon mots de passe" + +msgid "SELinux user map order" +msgstr "Ordre de la mappe des utilisateurs SELinux" + +msgid "Order in increasing priority of SELinux users, delimited by $" +msgstr "" +"Ordre des utilisateurs SELinux par priorité croissante, délimités par $" + +msgid "Default SELinux user" +msgstr "Utilisateur SELinux par défaut" + +msgid "Default SELinux user when no match is found in SELinux map rule" +msgstr "" +"Utilisateur SELinux par défaut quand il n'y a aucune correspondance dans la " +"règle de mappe SELinux" + +msgid "Default PAC types" +msgstr "Types de PAC par défaut" + +msgid "Default types of PAC supported for services" +msgstr "Types de PAC par défaut pris en charge pour des services" + +msgid "Default user authentication types" +msgstr "Types d'authentification utilisateur par défaut" + +msgid "Default types of supported user authentication" +msgstr "Types d'authentification utilisateur pris en charge par défaut" + +msgid "Modify configuration options." +msgstr "Modifier les options de configuration." + +msgid "Show the current configuration." +msgstr "Afficher la configuration actuelle." + +msgid "" +"\n" +"Manage CA ACL rules.\n" +"\n" +"This plugin is used to define rules governing which principals are\n" +"permitted to have certificates issued using a given certificate\n" +"profile.\n" +"\n" +"PROFILE ID SYNTAX:\n" +"\n" +"A Profile ID is a string without spaces or punctuation starting with a " +"letter\n" +"and followed by a sequence of letters, digits or underscore (\"_\").\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a CA ACL \"test\" that grants all users access to the\n" +" \"UserCert\" profile:\n" +" ipa caacl-add test --usercat=all\n" +" ipa caacl-add-profile test --certprofiles UserCert\n" +"\n" +" Display the properties of a named CA ACL:\n" +" ipa caacl-show test\n" +"\n" +" Create a CA ACL to let user \"alice\" use the \"DNP3\" profile:\n" +" ipa caacl-add-profile alice_dnp3 --certprofiles DNP3\n" +" ipa caacl-add-user alice_dnp3 --user=alice\n" +"\n" +" Disable a CA ACL:\n" +" ipa caacl-disable test\n" +"\n" +" Remove a CA ACL:\n" +" ipa caacl-del test\n" +msgstr "" +"\n" +"Gestion des règles de LCA de l'AC.\n" +"\n" +"Ce grffon est utilisé pour définir les règles gouvernant quels principaux \n" +"sont autorisés à se voir attribuer des certificats à l'aide d'un profil\n" +"donné de certificat.\n" +"\n" +"SYNTAXE D'IDENTIFIANT DE PROFIL :\n" +"\n" +"Un identifiant de profil est une chaîne sans espace ni ponctuation débutant " +"par\n" +"une lettre et suivie d'une séquence de lettres, chiffres, ou caractère " +"souligné (\"_\").\n" +"\n" +"EXEMPLES :\n" +"\n" +" Créer une LCA d'AC « test » autorisant tous les utilisateurs à accéder \n" +" au profil « UserCert » :\n" +" ipa caacl-add test --usercat=all\n" +" ipa caacl-add-profile test --certprofiles UserCert\n" +"\n" +" Afficher les propriétés d'une LCA d'AC nommée :\n" +" ipa caacl-show test\n" +"\n" +" Créer une LCA d'AC autorisant l'utilisatrice « alice » à utiliser le " +"profile « DNP3 » :\n" +" ipa caacl-add-profile alice_dnp3 --certprofiles DNP3\n" +" ipa caacl-add-user alice_dnp3 --user=alice\n" +"\n" +" Désactiver une LCA d'AC :\n" +" ipa caacl-disable test\n" +"\n" +" Supprimer une LCA d'AC :\n" +" ipa caacl-del test\n" + +msgid "ACL name" +msgstr "Nom de la LCA" + +msgid "Profile category" +msgstr "Catégorie de profil" + +msgid "Profile category the ACL applies to" +msgstr "Catégorie de profil à laquelle la LCA s'applique" + +msgid "User category the ACL applies to" +msgstr "Catégorie d'utilisateur à laquelle la LCA s'applique" + +msgid "Host category the ACL applies to" +msgstr "Catégorie d'hôte à laquelle la LCA s'applique" + +msgid "Service category the ACL applies to" +msgstr "Catégorie de service à laquelle la LCA s'applique" + +msgid "Profiles" +msgstr "Profils" + +msgid "Create a new CA ACL." +msgstr "Créer une nouvelle LCA d'AC." + +msgid "Add target hosts and hostgroups to a CA ACL." +msgstr "Ajouter des hôtes cibles et groupes d'hôtes à une LCA d'AC." + +msgid "Add profiles to a CA ACL." +msgstr "Ajouter des profils à une LCA d'AC." + +msgid "Add services to a CA ACL." +msgstr "Ajouter des services à une LCA d'AC." + +msgid "Add users and groups to a CA ACL." +msgstr "Ajouter des utilisateurs et groupes à une LCA d'AC." + +msgid "Delete a CA ACL." +msgstr "Supprimer une LCA d'AC." + +msgid "Disable a CA ACL." +msgstr "Désactiver une LCA d'AC." + +msgid "Enable a CA ACL." +msgstr "Activer une LCA d'AC." + +msgid "Search for CA ACLs." +msgstr "Rechercher des LCA d'AC." + +msgid "Modify a CA ACL." +msgstr "Modifier une LCA d'AC." + +msgid "Remove target hosts and hostgroups from a CA ACL." +msgstr "Retirer des utilisateurs et groupes d'une LCA d'AC." + +msgid "Remove profiles from a CA ACL." +msgstr "Retirer des profils d'une LCA d'AC." + +msgid "Remove services from a CA ACL." +msgstr "Retirer des services d'une LCA d'AC." + +msgid "Remove users and groups from a CA ACL." +msgstr "Retirer des utilisateurs et groupes d'une LCA d'AC." + +msgid "Display the properties of a CA ACL." +msgstr "Afficher les propriétés d'une LCA d'AC." + +msgid "Simulate use of Host-based access controls" +msgstr "Simulation de l'utilisation des contrôles d'accès basées sur les hôtes" + +msgid "Target host" +msgstr "Hôte cible" + +msgid "Service" +msgstr "Service" + +msgid "Rules to test. If not specified, --enabled is assumed" +msgstr "Règles à tester. Si non précisé, --enabled est implicite" + +msgid "Hide details which rules are matched, not matched, or invalid" +msgstr "Masquer les détails des règles satisfaites ou pas, ou invalides" + +msgid "Include all enabled IPA rules into test [default]" +msgstr "Inclure toutes les règles IPA actives dans le test [par défaut]" + +msgid "Include all disabled IPA rules into test" +msgstr "Inclure toutes les règles IPA inactives dans le test" + +msgid "Maximum number of rules to process when no --rules is specified" +msgstr "Nombre maximal de règles à traiter quand « --rules » n'est défini" + +msgid "Warning" +msgstr "Attention" + +msgid "Matched rules" +msgstr "Règles satisfaites" + +msgid "Not matched rules" +msgstr "Règles non satisfaites" + +msgid "Non-existent or invalid rules" +msgstr "Règles inexistantes ou invalides" + +msgid "Result of simulation" +msgstr "Résultat de la simulation" msgid "" "\n" @@ -2829,21 +4666,40 @@ msgstr "DN du conteneur pour des groupes dans le DS relatif au DN de base" msgid "User object class" msgstr "Classe d'objets utilisateur" +msgid "Objectclasses used to search for user entries in DS" +msgstr "" +"Classes d'objets à utiliser pour la recherche d'entrées utilisateurs dans DS" + msgid "Group object class" msgstr "Classe d'objets groupe" +msgid "Objectclasses used to search for group entries in DS" +msgstr "Classes d'objets à utiliser pour la recherche d'entrées groupe dans DS" + msgid "Ignore user object class" msgstr "Classe d'objets utilisateur à ignorer" +msgid "Objectclasses to be ignored for user entries in DS" +msgstr "Classes d'objets à ignorer pour des entrées utilisateur dans DS" + msgid "Ignore user attribute" msgstr "Attribut utilisateur à ignorer" +msgid "Attributes to be ignored for user entries in DS" +msgstr "Attributs à ignorer dans des entrées utilisateur dans DS" + msgid "Ignore group object class" msgstr "Classe d'objets groupe à ignorer" +msgid "Objectclasses to be ignored for group entries in DS" +msgstr "Classes d'objets à ignorer pour les entrées groupe dans DS" + msgid "Ignore group attribute" msgstr "Attribut groupe à ignorer" +msgid "Attributes to be ignored for group entries in DS" +msgstr "Attributs à ignorer dans les entrées groupe dans DS" + msgid "Overwrite GID" msgstr "Surcharger le GID" @@ -2884,6 +4740,36 @@ msgstr "Ignorer le greffon « compat »" msgid "Allows migration despite the usage of compat plugin" msgstr "Autoriser la migration malgré l'utilisation du greffon « compat »" +msgid "CA certificate" +msgstr "Certificat d'AC" + +msgid "Load CA certificate of LDAP server from FILE" +msgstr "Charger le certificat de l'AC du serveur LDAP depuis FILE" + +msgid "Add to default group" +msgstr "Ajouter au groupe par défaut" + +msgid "Add migrated users without a group to a default group (default: true)" +msgstr "" +"Ajouter les utilisateurs migrés n'ayant pas de groupe à un groupe par défaut " +"(par défaut : vrai)" + +msgid "Search scope" +msgstr "Étendue de la recherche" + +msgid "" +"LDAP search scope for users and groups: base, onelevel, or subtree. Defaults " +"to onelevel" +msgstr "" +"Portée de recherche LDAP pour les utilisateurs et les groupes : base, " +"onelevel, ou subtree. Valeur par défaut : onelevel" + +msgid "groups to exclude from migration" +msgstr "groupes à exclure de la migration" + +msgid "users to exclude from migration" +msgstr "utilisateurs à exclure de la migration" + msgid "Lists of objects migrated; categorized by type." msgstr "Liste des objets migrés, catégorisés par type." @@ -2897,145 +4783,515 @@ msgid "False if migration fails because the compatibility plug-in is enabled." msgstr "" "False si la migration échoue parce que le greffon « compat » est activé." -msgid "A description of this auto member rule" -msgstr "Une description de cette règle d'auto-adhésion" - -msgid "Default (fallback) Group" -msgstr "Groupe par défaut (repli)" - -msgid "Default group for entries to land" -msgstr "Groupe par défaut pour les nouvelles entrées" - -msgid "Add an automember rule." -msgstr "Ajouter une règle d'auto-adhésion." - -msgid "Automember Rule" -msgstr "Règle d'auto-adhésion" - -msgid "Grouping Type" -msgstr "Type de groupe" - -msgid "Grouping to which the rule applies" -msgstr "Type de groupe auquel la règle s'applique" - -msgid "Add conditions to an automember rule." -msgstr "Ajouter une condition à une règle d'auto-adhésion." - -msgid "Inclusive Regex" -msgstr "« Regex » d'inclusion" - -msgid "Exclusive Regex" -msgstr "« Regex » d'exclusion" - -msgid "Attribute Key" -msgstr "Clé d'attribut" - -msgid "" -"Attribute to filter via regex. For example fqdn for a host, or manager for a " -"user" -msgstr "" -"Attribut à filtrer via « regex ». Ex. FQDN pour un hôte, ou « manager » pour " -"un utilisateur" - -msgid "Conditions that could not be added" -msgstr "Conditions n'ayant pu être ajoutées" - -msgid "Number of conditions added" -msgstr "Nombre de conditions ajoutées" - -msgid "Remove default (fallback) group for all unmatched entries." -msgstr "" -"Supprimer le groupe par défaut (repli) pour toute entrée sans correspondance." - -msgid "Set default (fallback) group for all unmatched entries." -msgstr "" -"Définir un groupe par défaut (repli) pour toutes les entrées sans " -"correspondance." - -msgid "Default (fallback) group for entries to land" -msgstr "Groupe par défaut (repli) pour ranger des entrées" - -msgid "Display information about the default (fallback) automember groups." -msgstr "" -"Afficher des informations pour les groupes d'auto-adhésion par défaut " -"(repli).\n" -" " - -msgid "Delete an automember rule." -msgstr "Supprimer une règle d'auto-adhésion." - -msgid "Search for automember rules." -msgstr "Rechercher des règles d'auto-adhésion." - -msgid "Modify an automember rule." -msgstr "" -"Modifier une règle d'auto-adhésion.\n" -" " - -msgid "Remove conditions from an automember rule." -msgstr "Supprimer des conditions d'une règle d'auto-adhésion. " - -msgid "Conditions that could not be removed" -msgstr "Conditions n'ayant pu être supprimées" - -msgid "Number of conditions removed" -msgstr "Nombre de conditions supprimées" - -msgid "Display information about an automember rule." -msgstr "Afficher des informations au sujet d'une règle d'auto-adhésion. " - msgid "" "\n" -"Sudo Commands\n" +"SELinux User Mapping\n" "\n" -"Commands used as building blocks for sudo\n" +"Map IPA users to SELinux users by host.\n" +"\n" +"Hosts, hostgroups, users and groups can be either defined within\n" +"the rule or it may point to an existing HBAC rule. When using\n" +"--hbacrule option to selinuxusermap-find an exact match is made on the\n" +"HBAC rule name, so only one or zero entries will be returned.\n" "\n" "EXAMPLES:\n" "\n" -" Create a new command\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Create a rule, \"test1\", that sets all users to xguest_u:s0 on the host " +"\"server\":\n" +" ipa selinuxusermap-add --usercat=all --selinuxuser=xguest_u:s0 test1\n" +" ipa selinuxusermap-add-host --hosts=server.example.com test1\n" "\n" -" Remove a command\n" -" ipa sudocmd-del /usr/bin/less\n" +" Create a rule, \"test2\", that sets all users to guest_u:s0 and uses an " +"existing HBAC rule for users and hosts:\n" +" ipa selinuxusermap-add --usercat=all --hbacrule=webserver --" +"selinuxuser=guest_u:s0 test2\n" +"\n" +" Display the properties of a rule:\n" +" ipa selinuxusermap-show test2\n" +"\n" +" Create a rule for a specific user. This sets the SELinux context for\n" +" user john to unconfined_u:s0-s0:c0.c1023 on any machine:\n" +" ipa selinuxusermap-add --hostcat=all --selinuxuser=unconfined_u:s0-s0:c0." +"c1023 john_unconfined\n" +" ipa selinuxusermap-add-user --users=john john_unconfined\n" +"\n" +" Disable a rule:\n" +" ipa selinuxusermap-disable test1\n" +"\n" +" Enable a rule:\n" +" ipa selinuxusermap-enable test1\n" +"\n" +" Find a rule referencing a specific HBAC rule:\n" +" ipa selinuxusermap-find --hbacrule=allow_some\n" +"\n" +" Remove a rule:\n" +" ipa selinuxusermap-del john_unconfined\n" +"\n" +"SEEALSO:\n" +"\n" +" The list controlling the order in which the SELinux user map is applied\n" +" and the default SELinux user are available in the config-show command.\n" msgstr "" "\n" -"Commandes sudo\n" +"Mappage d'utilisateur SELinux\n" "\n" -"Commandes utilisées en tant que briques de base pour sudo\n" +"Fait correspondre des utilisateurs IPA aux utilisateurs SELinux par hôte.\n" +"\n" +"Hôtes, groupes d'hôtes, utilisateurs et groupes peuvent être définis par\n" +"rapport, soit à la règle, soit en pointant vers une règle HBAC existante.\n" +"En utilisant l'option « --hbacrule » de « selinuxusermap-find », une\n" +"recherche de correspondance exacte est faite sur le nom de la règle HBAC,\n" +"de sorte qu'une seule entrée sera renvoyée ou bien aucune.\n" "\n" "EXEMPLES :\n" "\n" -" Ajouter une nouvelle commande\n" -" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" +" Créer une règle « test1 » qui attribue à tous les utilisateurs le contexte\n" +"« xguest_u:s0 » sur l'hôte « server » :\n" +" ipa selinuxusermap-add --usercat=all --selinuxuser=xguest_u:s0 test1\n" +" ipa selinuxusermap-add-host --hosts=server.example.com test1\n" "\n" -" Supprimer une commande\n" -" ipa sudocmd-del /usr/bin/less\n" +" Créer une règle « test2 » qui attribue à tous les utilisateurs le contexte\n" +"« guest_u:s0 » et utilise une règle HBAC existante pour utilisateurs et " +"hôtes :\n" +" ipa selinuxusermap-add --usercat=all --hbacrule=webserver --" +"selinuxuser=guest_u:s0 test1\n" +"\n" +" Afficher les propriétés d'une règle :\n" +" ipa selinuxusermap-show test2\n" +"\n" +" Créer une règle pour un utilisateur donné. Elle fixe le contexte\n" +" SELinux de l'utilisateur « john » à « unconfined_u:s0-s0:c0.c1023 »\n" +" sur toute machine :\n" +" ipa selinuxusermap-add --hostcat=all --selinuxuser=unconfined_u:s0-s0:c0." +"c1023 john_unconfined\n" +" ipa selinuxusermap-add-user --users=john john_unconfined\n" +"\n" +" Désactiver une règle :\n" +" ipa selinuxusermap-disable test1\n" +"\n" +" Activer une règle :\n" +" ipa selinuxusermap-enable test1\n" +"\n" +" Trouver une règle référençant une règle HBAC donnée :\n" +" ipa selinuxusermap-find --hbacrule=allow_some\n" +"\n" +" Supprimer une règle :\n" +" ipa selinuxusermap-del john_unconfined\n" +"\n" +"VOIR AUSSI :\n" +"\n" +" La liste contrôlant l'ordre dans lequel la mappe d'utilisateurs SELinux\n" +" est appliquée, ainsi que l'utilisateur SELinux par défaut, sont " +"disponibles\n" +" avec la commande « config-show ».\n" -msgid "Sudo Command" -msgstr "Commande sudo" +msgid "SELinux User" +msgstr "Utilisateur SELinux" -msgid "A description of this command" -msgstr "Description de la commande" +msgid "HBAC Rule" +msgstr "Règle HBAC" -msgid "Create new Sudo Command." -msgstr "Créer une nouvelle commande sudo." +msgid "HBAC Rule that defines the users, groups and hostgroups" +msgstr "" +"Règle HBAC délimitant les utilisateurs, les groupes et les groupes d'hôtes" -msgid "Delete Sudo Command." -msgstr "Supprimer une commande sudo." +msgid "Create a new SELinux User Map." +msgstr "Créer une nouvelle mappe d'utilisateurs SELinux" -msgid "Search for Sudo Commands." -msgstr "Rechercher des commandes sudo." +msgid "Add target hosts and hostgroups to an SELinux User Map rule." +msgstr "" +"Ajouter des hôtes et groupes d'hôtes cibles à une mappe d'utilisateurs " +"SELinux" -msgid "Results should contain primary key attribute only (\"command\")" +msgid "Add users and groups to an SELinux User Map rule." +msgstr "Ajouter des utilisateurs et groupes à une mappe d'utilisateurs SELinux" + +msgid "Delete a SELinux User Map." +msgstr "Supprimer une mappe d'utilisateurs SELinux" + +msgid "Disable an SELinux User Map rule." +msgstr "Désactiver une mappe d'utilisateurs SELinux" + +msgid "Enable an SELinux User Map rule." +msgstr "Activer une mappe d'utilisateurs SELinux" + +msgid "Search for SELinux User Maps." +msgstr "Rechercher des mappes d'utilisateurs SELinux" + +msgid "Modify a SELinux User Map." +msgstr "Modifier une mappe d'utilisateurs SELinux" + +msgid "Remove target hosts and hostgroups from an SELinux User Map rule." +msgstr "" +"Supprimer des hôtes et groupes d'hôtes cibles d'une mappe d'utilisateurs " +"SELinux" + +msgid "Remove users and groups from an SELinux User Map rule." +msgstr "" +"Supprimer des utilisateurs et groupes d'une mappe d'utilisateurs SELinux" + +msgid "Display the properties of a SELinux User Map rule." +msgstr "Afficher les propriétés d'une mappe d'utilisateurs SELinux" + +msgid "" +"\n" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less --sudocmds=/usr/bin/" +"vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" +msgstr "" +"\n" +"Groupes de commandes sudo\n" +"\n" +"Administre les groupes de commandes sudo.\n" +"\n" +"EXEMPLES :\n" +"\n" +" Ajouter un nouveau groupe de commandes sudo :\n" +" ipa sudocmdgroup-add --desc='commandes administrateurs' admincmds\n" +"\n" +" Supprimer un groupe de commandes sudo :\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Gérer les commandes, l'appartenance d'un groupe de commandes sudo :\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less --sudocmds=/usr/bin/" +"vim admincmds\n" +"\n" +" Administrer les commandes, l'appartenance d'un groupe de commandes sudo :\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Afficher un groupe de commandes sudo :\n" +" ipa group-show localadmins\n" + +msgid "Sudo Command Group" +msgstr "Groupe de commandes sudo" + +msgid "Group description" +msgstr "Description du groupe" + +msgid "Commands" +msgstr "Commandes" + +msgid "Sudo Command Groups" +msgstr "Groupes de commandes sudo" + +msgid "Member Sudo commands" +msgstr "Membres de commandes sudo" + +msgid "Create new Sudo Command Group." +msgstr "Créer un nouveau groupe de commandes sudo." + +msgid "Add members to Sudo Command Group." +msgstr "Ajouter des membres à un groupe de commandes sudo." + +msgid "Delete Sudo Command Group." +msgstr "Supprimer un groupe de commandes sudo." + +msgid "Search for Sudo Command Groups." +msgstr "Rechercher des groupes de commandes sudo." + +msgid "" +"Results should contain primary key attribute only (\"sudocmdgroup-name\")" msgstr "" "Les résultats doivent uniquement contenir un attribut de clé principale " -"(« command »)" +"(« sudocmdgroup-name »)" -msgid "Modify Sudo Command." -msgstr "Modifier une commande sudo." +msgid "Modify Sudo Command Group." +msgstr "Modifier un groupe de commandes sudo." -msgid "Display Sudo Command." -msgstr "Afficher une commande sudo." +msgid "Remove members from Sudo Command Group." +msgstr "Supprimer des membres d'un groupe de commandes sudo." + +msgid "Display Sudo Command Group." +msgstr "Afficher un groupe de commandes sudo." + +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" +"Account lockout on password failure happens per IPA master. The user-status\n" +"command can be used to identify which master the user is locked out on.\n" +"It is on that master the administrator must unlock the user.\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" +"Utilisateurs\n" +"\n" +"Gestion des utilisateurs. Tous les utilisateurs sont de type POSIX.\n" +"\n" +"IPA prend en charge un grand nombre de formats de noms d'utilisateurs.\n" +"Certaines restrictions peuvent cependant s'appliquer dans un environnement\n" +"particulier. Par exemple, les noms d'utilisateurs commençant par un chiffre\n" +"ou ceux dépassant une certaine longueur peuvent poser problème à certains\n" +"systèmes UNIX.\n" +"Utiliser la commande « ipa config-mod » afin de modifier le format de nom\n" +"d'utilisateur autorisé par les outils IPA.\n" +"\n" +"La désactivation d'un compte utilisateur lui interdit d'obtenir de\n" +"nouveaux justificatifs d'identité Kerberos. Elle n'invalide pas les\n" +"justificatifs déjà obtenus.\n" +"\n" +"L'administration des mots de passe ne fait pas partie de ce module. Pour\n" +"plus d'informations sur ce sujet, cf. : « ipa help passwd »\n" +"\n" +"Le verrouillage de compte en cas d'échec de mot de passe est déclenché par\n" +"le maître IPA de l'utilisateur. La commande « user-status » permet de\n" +"l'identifier. C'est sur ​​ce maître que l'administrateur doit déverrouiller\n" +"l'utilisateur.\n" +"\n" +"EXEMPLES :\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" +"\n" + +msgid "Account disabled" +msgstr "Compte désactivé" + +msgid "Preserved user" +msgstr "Utilisateurs préservés" + +msgid "Add a new user." +msgstr "Ajouter un nouvel utilisateur." + +msgid "Don't create user private group" +msgstr "Ne pas créer de groupe privé" + +msgid "Add one or more certificates to the user entry" +msgstr "Ajouter un ou plusieurs certificats à l'entrée utilisateur" + +msgid "Add a manager to the user entry" +msgstr "Ajouter un responsable à l'entrée de l'utilisateur" + +msgid "Delete a user." +msgstr "Supprimer un utilisateur." + +msgid "Disable a user account." +msgstr "Désactiver un compte utilisateur." + +msgid "Enable a user account." +msgstr "Activer un compte utilisateur." + +msgid "Search for users." +msgstr "Rechercher des utilisateurs." + +msgid "Self" +msgstr "Moi-même" + +msgid "Display user record for current Kerberos principal" +msgstr "" +"Afficher l'enregistrement utilisateur pour le principal Kerberos en cours" + +msgid "Modify a user." +msgstr "Modifier un utilisateur." + +msgid "Remove one or more certificates to the user entry" +msgstr "Supprimer les certificats de l'entrée de l'utilisateur" + +msgid "Remove a manager to the user entry" +msgstr "Supprimer un responsable de l'entrée de l'utilisateur" + +msgid "Display information about a user." +msgstr "Afficher l'information sur un utilisateur." + +msgid "Move deleted user into staged area" +msgstr "Déplacer l'utilisateur supprimé dans l'espace en attente" + +msgid "Undelete a delete user account." +msgstr "Restaurer un compte utilisateur supprimé." + +msgid "Segment name" +msgstr "Nom de segment" + +msgid "Arbitrary string identifying the segment" +msgstr "Chaîne arbitraire identifiant le segment" + +msgid "Left node" +msgstr "Nœud de gauche" + +msgid "Left replication node - an IPA server" +msgstr "Nœud de réplication à gauche - un serveur IPA" + +msgid "Right node" +msgstr "Nœud de droite" + +msgid "Right replication node - an IPA server" +msgstr "Nœud de réplication à droite - un serveur IPA" + +msgid "Connectivity" +msgstr "Connectivité" + +msgid "Direction of replication between left and right replication node" +msgstr "" +"Direction de la réplication entre les nœuds gauche et droit de réplication" + +msgid "Attributes to strip" +msgstr "Attributs à supprimer" + +msgid "" +"A space separated list of attributes which are removed from replication " +"updates." +msgstr "" +"Une liste séparée par des espaces d'attributs qui seront supprimés lors des " +"mises à jour de la réplication." + +msgid "" +"Attributes that are not replicated to a consumer server during a fractional " +"update. E.g., `(objectclass=*) $ EXCLUDE accountlockout memberof" +msgstr "" +"Attributs qui ne seront pas répliqués vers un serveur consommateur lors " +"d'une réplication partielle. Par exemple, `(objectclass=*) $ EXCLUDE " +"accountlockout memberof" + +msgid "Attributes for total update" +msgstr "Attributs pour une mise à jour complète" + +msgid "" +"Attributes that are not replicated to a consumer server during a total " +"update. E.g. (objectclass=*) $ EXCLUDE accountlockout" +msgstr "" +"Les attributs qui ne sont pas répliqués vers un serveur consommateur pendant " +"une mise à jour complète. Par exemple : (objectclass=*) $ EXCLUDE " +"accountlockout" + +msgid "Session timeout" +msgstr "Délai d'expiration de la session" + +msgid "" +"Number of seconds outbound LDAP operations waits for a response from the " +"remote replica before timing out and failing" +msgstr "" +"Durée en secondes à attendre le bon achèvement des requêtes LDAP sortantes " +"de la part d'un replica distant avant mise en échec" + +msgid "Replication agreement enabled" +msgstr "Agrément de réplication activé" + +msgid "" +"Whether a replication agreement is active, meaning whether replication is " +"occurring per that agreement" +msgstr "" +"Activation ou non d'un agrément de réplication, signifiant que la " +"réplication fonctionne par le biais de cet agrément" + +msgid "Suffix name" +msgstr "Nom du suffixe" + +msgid "Managed LDAP suffix DN" +msgstr "DN du suffixe LDAP administré" + +msgid "Add a new segment." +msgstr "Ajouter un noveau segment." + +msgid "Delete a segment." +msgstr "Supprimer un segment." + +msgid "Search for topology segments." +msgstr "Rechercher des segments de topologie." + +msgid "Modify a segment." +msgstr "Modifier un segment." + +msgid "" +"Request a full re-initialization of the node retrieving data from the other " +"node." +msgstr "" +"Demander une réinitialisation complète du nœud en récupérant les données " +"d'un autre nœud." + +msgid "Initialize left node" +msgstr "Initialiser le nœud de gauche" + +msgid "Initialize right node" +msgstr "Initialiser le nœud de droite" + +msgid "Stop already started refresh of chosen node(s)" +msgstr "Arrêter un rafraichissement en cours du ou des nœuds choisis." + +msgid "Display a segment." +msgstr "Afficher un segment." + +msgid "Add a new topology suffix to be managed." +msgstr "Ajouter un nouveau suffixe de topologie à gérer." + +msgid "Delete a topology suffix." +msgstr "Supprimer un suffixe de topologie." + +msgid "Search for topology suffixes." +msgstr "Rechercher des suffixes de topologie." + +msgid "Modify a topology suffix." +msgstr "Modifier un suffixe de topologie." + +msgid "Show managed suffix." +msgstr "Afficher le suffixe géré." msgid "" "\n" @@ -3250,9 +5506,6 @@ msgstr "" " Supprimer la clé « man » de la carte « auto.share » :\n" " ipa automountkey-del baltimore auto.share --key=man\n" -msgid "Key" -msgstr "Clé" - msgid "Automount key name." msgstr "Nom de clé « automount »." @@ -3344,1696 +5597,122 @@ msgstr "Modifier une carte « automount »." msgid "Display an automount map." msgstr "Afficher une carte « automount »." -msgid "Delegation name" -msgstr "Nom de délégation" +msgid "Nested Methods to execute" +msgstr "Commandes imbriquées à exécuter" -msgid "Member user group" -msgstr "Groupe d'utilisateurs membre" +msgid "Vault name" +msgstr "Nom du coffre-fort" -msgid "User group to apply delegation to" -msgstr "Groupe d'utilisateur auquel s'applique la délégation" +msgid "Vault description" +msgstr "Description du coffre-fort" -msgid "Add a new delegation." -msgstr "Ajouter une nouvelle délégation." +msgid "Vault type" +msgstr "Type de coffre-fort" -msgid "Delete a delegation." -msgstr "Supprimer une délégation." +msgid "Salt" +msgstr "Sel" -msgid "Search for delegations." -msgstr "Rechercher des délégations." +msgid "Vault salt" +msgstr "Sel du coffre-fort" -msgid "Modify a delegation." -msgstr "Modifier une délégation." +msgid "Public key" +msgstr "Clé publique" -msgid "Display information about a delegation." -msgstr "Afficher les informations sur une délégation." +msgid "Vault public key" +msgstr "Clé publique du coffre-fort" -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" -msgstr "" -"\n" -"Politique de mots de passe\n" -"\n" -"Une politique de mots de passe permet de définir des limites sur les mots " -"de\n" -"passe dans IPA, comme leur durée de vie, minimale ou maximale, la taille de\n" -"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" -"\n" -"Par défaut, une politique unique et globale est définie pour tous les\n" -"utilisateurs. Vous pouvez aussi créer une politique à appliquer à un " -"groupe.\n" -"Chaque utilisateur est l'objet d'une seule politique de mots de passe, par\n" -"un groupe ou par la politique globale. Une politique de groupe remplace\n" -"totalement la politique globale ; elle n'est pas la somme de la politique\n" -"globale plus quelques paramètres spécifiques.\n" -"\n" -"Chaque politique de groupe requiert un paramètre de priorité unique. Si un\n" -"utilisateur appartient à plusieurs groupes ayant des politiques " -"différentes,\n" -"la priorité sera utilisée afin de déterminer quelle politique appliquer.\n" -"Une petite valeur indique une priorité élevée de politique.\n" -"\n" -"Les politiques de mots de passe sont automatiquement supprimées quand les\n" -"groupes auxquels elles ont été associées sont supprimés.\n" -"\n" -"EXEMPLES :\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" +msgid "Owner users" +msgstr "Utilisateurs propriétaires" -msgid "Group" -msgstr "Groupe" +msgid "Owner groups" +msgstr "Groupes propriétaires" -msgid "Manage password policy for specific group" -msgstr "Gérer la politique de mots de passe d'un groupe spécifique" +msgid "Owner services" +msgstr "Services propriétaires" -msgid "Max lifetime (days)" -msgstr "Durée de vie maximale (jours)" +msgid "Vault service" +msgstr "Service du coffre-fort" -msgid "Maximum password lifetime (in days)" -msgstr "Durée de vie maximale d'un mot de passe (en jours)" +msgid "Shared vault" +msgstr "Coffre-fort partagé" -msgid "Min lifetime (hours)" -msgstr "Durée de vie minimale (jours)" +msgid "Vault user" +msgstr "Utilisateur du coffre-fort" -msgid "Minimum password lifetime (in hours)" -msgstr "Durée de vie maximale d'un mot de passe (en jours)" +msgid "Transport Certificate" +msgstr "Certificat de transport" -msgid "History size" -msgstr "Taille de l'historique" +msgid "Service name of the service vault" +msgstr "Nom de service du service coffre" -msgid "Password history size" -msgstr "Taille de l'historique des mots de passe" +msgid "Username of the user vault" +msgstr "Nom d'utilisateur du coffre-fort personnel" -msgid "Character classes" -msgstr "Classes de caractères" +msgid "Add members to a vault." +msgstr "Ajouter des membres à un coffre-fort." -msgid "Minimum number of character classes" -msgstr "Nombre minimal de classes de caractères" +msgid "Add owners to a vault." +msgstr "Ajouter des propriétaires à un coffre-fort." -msgid "Min length" -msgstr "Longueur minimale" +msgid "Owners that could not be added" +msgstr "Propriétaires n'ayant pu être ajoutés" -msgid "Minimum length of password" -msgstr "Taille minimale d'un mot de passe" +msgid "Number of owners added" +msgstr "Nombre de propriétaires ajoutés" -msgid "Priority" -msgstr "Priorité" +msgid "Session key wrapped with transport certificate" +msgstr "Clé de session emballée avec le certificat de transport" -msgid "Priority of the policy (higher number means lower priority" -msgstr "Priorité de la politique (une valeur élevé indique une priorité basse)" +msgid "Vault data encrypted with session key" +msgstr "Les données du coffre-fort sont chiffrées avec la clé de session" -msgid "Max failures" -msgstr "Nombre maximal d'échecs" +msgid "Nonce" +msgstr "Usage unique" -msgid "Consecutive failures before lockout" -msgstr "Échecs consécutifs avant verrouillage" +msgid "Delete a vault." +msgstr "Supprimer un coffre-fort." -msgid "Failure reset interval" -msgstr "Délai de réinitialisation après échec" +msgid "Search for vaults." +msgstr "Rechercher des coffres-forts" -msgid "Period after which failure count will be reset (seconds)" -msgstr "Temps après lequel le compteur d'échecs sera réinitialisé (secondes)" +msgid "List all service vaults" +msgstr "Énumérer tous les coffres-forts de services" -msgid "Lockout duration" -msgstr "Durée du verrouillage" +msgid "List all user vaults" +msgstr "Énumérer tous les coffres-forts d'utilisateurs" -msgid "Period for which lockout is enforced (seconds)" -msgstr "Durée pendant laquelle le verrouillage est actif (secondes)" +msgid "Remove members from a vault." +msgstr "Supprimer les membres d'un coffre-fort." -msgid "Results should contain primary key attribute only (\"cn\")" -msgstr "" -"Les résultats doivent uniquement contenir un attribut de clé principale " -"(« cn »)" +msgid "Remove owners from a vault." +msgstr "Supprimer les propriétaires d'un coffre-fort." -msgid "Add a new group password policy." -msgstr "Ajouter une nouvelle politique de mot de passe." +msgid "Owners that could not be removed" +msgstr "Propriétaires n'ayant pu être supprimés" -msgid "Delete a group password policy." -msgstr "Supprimer une politique de mot de passe." +msgid "Number of owners removed" +msgstr "Nombre de propriétaires supprimés" -msgid "Search for group password policies." -msgstr "Rechercher des politiques de mot de passe de groupe." +msgid "Display information about a vault." +msgstr "Afficher des informations sur un coffre-fort." -msgid "Results should contain primary key attribute only (\"group\")" -msgstr "" -"Les résultats doivent uniquement contenir un attribut de clé principale (« " -"group »)" +msgid "Show vault configuration." +msgstr "Afficher la configuration du coffre-fort." -msgid "Modify a group password policy." -msgstr "Modifier une politique de mot de passe de groupe." +msgid "Output file to store the transport certificate" +msgstr "Fichier où stocker le certificat de transport" -msgid "Display information about password policy." -msgstr "Afficher les informations sur une politique de mot de passe." +msgid "Add owners to a vault container." +msgstr "Ajouter des propriétaires à un conteneur de coffre-fort." -msgid "User" -msgstr "Utilisateur" +msgid "Delete a vault container." +msgstr "Supprimer un conteneur de coffre-fort." -msgid "Display effective policy for a specific user" -msgstr "Afficher la politique effective d'un utilisateur donné" +msgid "Remove owners from a vault container." +msgstr "Supprimer des propriétaires d'un conteneur de coffre-fort." -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" -"Account lockout on password failure happens per IPA master. The user-status\n" -"command can be used to identify which master the user is locked out on.\n" -"It is on that master the administrator must unlock the user.\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" -"Utilisateurs\n" -"\n" -"Gestion des utilisateurs. Tous les utilisateurs sont de type POSIX.\n" -"\n" -"IPA prend en charge un grand nombre de formats de noms d'utilisateurs.\n" -"Certaines restrictions peuvent cependant s'appliquer dans un environnement\n" -"particulier. Par exemple, les noms d'utilisateurs commençant par un chiffre\n" -"ou ceux dépassant une certaine longueur peuvent poser problème à certains\n" -"systèmes UNIX.\n" -"Utiliser la commande « ipa config-mod » afin de modifier le format de nom\n" -"d'utilisateur autorisé par les outils IPA.\n" -"\n" -"La désactivation d'un compte utilisateur lui interdit d'obtenir de\n" -"nouveaux justificatifs d'identité Kerberos. Elle n'invalide pas les\n" -"justificatifs déjà obtenus.\n" -"\n" -"L'administration des mots de passe ne fait pas partie de ce module. Pour\n" -"plus d'informations sur ce sujet, cf. : « ipa help passwd »\n" -"\n" -"Le verrouillage de compte en cas d'échec de mot de passe est déclenché par\n" -"le maître IPA de l'utilisateur. La commande « user-status » permet de\n" -"l'identifier. C'est sur ​​ce maître que l'administrateur doit déverrouiller\n" -"l'utilisateur.\n" -"\n" -"EXEMPLES :\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" -"\n" - -msgid "User login" -msgstr "Identifiant de connexion" - -msgid "First name" -msgstr "Prénom" - -msgid "Last name" -msgstr "Nom" - -msgid "Full name" -msgstr "Nom complet" - -msgid "Display name" -msgstr "Nom affiché" - -msgid "Initials" -msgstr "Initiales" - -msgid "Home directory" -msgstr "Répertoire personnel" - -msgid "Login shell" -msgstr "Interpréteur de commande" - -msgid "Kerberos principal" -msgstr "Principal Kerberos" - -msgid "Email address" -msgstr "Adresse courriel" - -msgid "Prompt to set the user password" -msgstr "Invite de définition du mot de passe utilisateur" - -msgid "Generate a random user password" -msgstr "Créer un mot de passe aléatoire" - -msgid "UID" -msgstr "UID" - -msgid "User ID Number (system will assign one if not provided)" -msgstr "" -"Numéro identifiant d'utilisateur (le système en assigne un si non défini)" - -msgid "GID" -msgstr "GID" - -msgid "Group ID Number" -msgstr "Numéro d'identifiant de groupe" - -msgid "Street address" -msgstr "Adresse" - -msgid "City" -msgstr "Ville" - -msgid "State/Province" -msgstr "État/Province" - -msgid "ZIP" -msgstr "Code postal" - -msgid "Telephone Number" -msgstr "Numéro de téléphone" - -msgid "Mobile Telephone Number" -msgstr "Numéro de téléphone mobile" - -msgid "Pager Number" -msgstr "Numéro de téléavertisseur" - -msgid "Fax Number" -msgstr "Numéro de fax" - -msgid "Org. Unit" -msgstr "Unité organisationnelle" - -msgid "Job Title" -msgstr "Titre de poste" - -msgid "Manager" -msgstr "Gestionnaire" - -msgid "Car License" -msgstr "Permis de conduire/carte d'identité" - -msgid "Account disabled" -msgstr "Compte désactivé" - -msgid "Member of groups" -msgstr "Membre des groupes" - -msgid "Kerberos keys available" -msgstr "Clés Kerberos disponibles" - -msgid "Add a new user." -msgstr "Ajouter un nouvel utilisateur." - -msgid "Don't create user private group" -msgstr "Ne pas créer de groupe privé" - -msgid "Delete a user." -msgstr "Supprimer un utilisateur." - -msgid "Disable a user account." -msgstr "Désactiver un compte utilisateur." - -msgid "Enable a user account." -msgstr "Activer un compte utilisateur." - -msgid "Search for users." -msgstr "Rechercher des utilisateurs." - -msgid "Self" -msgstr "Moi-même" - -msgid "Display user record for current Kerberos principal" -msgstr "" -"Afficher l'enregistrement utilisateur pour le principal Kerberos en cours" - -msgid "group" -msgstr "groupe" - -msgid "Modify a user." -msgstr "Modifier un utilisateur." - -msgid "Display information about a user." -msgstr "Afficher l'information sur un utilisateur." - -msgid "Group name" -msgstr "Nom du groupe" - -msgid "GID (use this option to set it manually)" -msgstr "GID (utiliser cette option pour le définir manuellement)" - -msgid "Member users" -msgstr "Utilisateurs membres" - -msgid "Member groups" -msgstr "Groupes de membres" - -msgid "Indirect Member users" -msgstr "Utilisateurs membres indirects" - -msgid "Indirect Member groups" -msgstr "Groupes membres indirects" - -msgid "Create a new group." -msgstr "Créer un nouveau groupe." - -msgid "Create as a non-POSIX group" -msgstr "Créer en tant que groupe non-POSIX" - -msgid "Allow adding external non-IPA members from trusted domains" -msgstr "" -"Autoriser l'ajout de membres externes non-IPA depuis des domaines approuvés" - -msgid "Add members to a group." -msgstr "Ajouter des membres à un groupe." - -msgid "External member" -msgstr "Membre externe" - -msgid "Delete group." -msgstr "Supprimer un groupe." - -msgid "Detach a managed group from a user." -msgstr "Détacher un groupe administré d'un utilisateur." - -msgid "Search for groups." -msgstr "Rechercher des groupes." - -msgid "search for private groups" -msgstr "rechercher des groupes privés" - -msgid "Results should contain primary key attribute only (\"group-name\")" -msgstr "" -"Les résultats doivent uniquement contenir un attribut de clé principale " -"(« group-name »)" - -msgid "Modify a group." -msgstr "Modifier un groupe." - -msgid "change to a POSIX group" -msgstr "Transformer en groupe POSIX" - -msgid "change to support external non-IPA members from trusted domains" -msgstr "" -"modifier afin de permettre une prise en charge des membres externes non-IPA " -"depuis des domaines approuvés" - -msgid "Rename the group object" -msgstr "Renommer l'objet groupe" - -msgid "Remove members from a group." -msgstr "Supprimer des membres d'un groupe." - -msgid "Display information about a named group." -msgstr "Afficher les informations d'un groupe nommé." - -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" -"Définir le mot de passe d'un utilisateur\n" -"\n" -"Si une personne autre que l'utilisateur change le mot de passe de cet\n" -"utilisateur (par exemple en cas de réinitialisation par les services\n" -"d'assistance technique), le mot de passe devra être modifié la première\n" -"fois qu'il sera utilisé, afin que l'utilisateur soit le seul à connaître\n" -"son mot de passe.\n" -"\n" -"La politique de mot de passe de IPA contrôle la fréquence de changement\n" -"des mots de passe, les prérequis de leur résistance, et la taille\n" -"de l'historique des mots de passe.\n" -"\n" -"EXEMPLES :\n" -"\n" -" Réinitialiser son propre mot de passe :\n" -" ipa passwd\n" -"\n" -" Modifier le mot de passe d'un utilisateur :\n" -" ipa passwd tuser1\n" - -msgid "Set a user's password." -msgstr "Définir le mot de passe d'un utilisateur." - -msgid "New Password" -msgstr "Nouveau mot de passe" - -msgid "Current Password" -msgstr "Mot de passe actuel" - -msgid "" -"\n" -"Joining an IPA domain\n" -msgstr "" -"\n" -"Rejoindre un domaine IPA\n" - -msgid "Join an IPA domain" -msgstr "Rejoindre un domaine IPA" - -msgid "The hostname to register as" -msgstr "Le nom d'hôte sous lequel enregistrer" - -msgid "The IPA realm" -msgstr "Le domaine IPA" - -msgid "Hardware platform of the host (e.g. Lenovo T61)" -msgstr "Plate-forme matérielle de l'hôte (par ex. Lenovo T61)" - -msgid "Operating System and version of the host (e.g. Fedora 9)" -msgstr "Système d'exploitation et version de l'hôte (par ex. Fedora 9)" - -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 " -"junioradmin\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 'junioradmin' can\n" -" add users, reset passwords or add a user to the default IPA user group.\n" -msgstr "" -"\n" -"Rôles\n" -"\n" -"Les rôles sont utilisés pour affiner les délégations. Une permission " -"accorde\n" -"la capacité d'effectuer une tâche de bas niveau (ajouter un utilisateur,\n" -"modifier un groupe, etc.). Un privilège combine une ou plusieurs\n" -"permissions en une abstraction de plus haut niveau comme « useradmin ». Un\n" -"administrateur d'utilisateur (useradmin) sera capable d'ajouter, modifier\n" -"et supprimer des utilisateurs.\n" -"\n" -"Les privilèges sont assignés aux rôles.\n" -"\n" -"Peuvent être membres d'un rôle des utilisateurs, des groupes, des systèmes\n" -"et des groupes de systèmes.\n" -"\n" -"Les rôles ne peuvent contenir d'autres rôles.\n" -"\n" -"EXEMPLES :\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 fait que le groupe « junioradmin »\n" -" peut ajouter des utilisateurs, réinitialiser des mots de passe, ou ajouter\n" -" un utilisateur au groupe d'utilisateur par défaut de IPA.\n" - -msgid "Role name" -msgstr "Nom du rôle" - -msgid "A description of this role-group" -msgstr "Description de ce groupe de rôles" - -msgid "Member hosts" -msgstr "Hôtes membres" - -msgid "Member host-groups" -msgstr "Groupes d'hôtes membres" - -msgid "Privileges" -msgstr "Privilèges" - -msgid "Add a new role." -msgstr "Ajouter un nouveau rôle." - -msgid "Add members to a role." -msgstr "Ajouter des membres à un rôle." - -msgid "Add privileges to a role." -msgstr "Ajouter des privilèges à un rôle." - -msgid "privilege" -msgstr "privilège" - -msgid "Number of privileges added" -msgstr "Nombre de privilèges ajoutés" - -msgid "Delete a role." -msgstr "Supprimer un rôle" - -msgid "Search for roles." -msgstr "Rechercher des rôles." - -msgid "Modify a role." -msgstr "Modifier un rôle." - -msgid "Remove members from a role." -msgstr "Supprimer des membres d'un rôle." - -msgid "Remove privileges from a role." -msgstr "Supprimer des privilèges d'un rôle." - -msgid "Number of privileges removed" -msgstr "Nombre de privilèges retirés" - -msgid "Display information about a role." -msgstr "Afficher les informations sur un rôle." - -msgid "Host-group" -msgstr "Groupe d'hôtes" - -msgid "Name of host-group" -msgstr "Nom du groupe d'hôtes" - -msgid "A description of this host-group" -msgstr "Description de ce groupe d'hôtes" - -msgid "Indirect Member hosts" -msgstr "Hôtes membres indirects" - -msgid "Indirect Member host-groups" -msgstr "Groupes d'hôtes membres indirects" - -msgid "Add a new hostgroup." -msgstr "Ajouter un nouveau groupe d'hôtes." - -msgid "Add members to a hostgroup." -msgstr "Ajouter des membres à un groupe d'hôtes." - -msgid "Delete a hostgroup." -msgstr "Supprimer un groupe d'hôtes." - -msgid "Search for hostgroups." -msgstr "Rechercher un groupe d'hôtes." - -msgid "Modify a hostgroup." -msgstr "Modifier un groupe d'hôtes." - -msgid "Remove members from a hostgroup." -msgstr "Supprimer des membres d'un groupe d'hôtes." - -msgid "Display information about a hostgroup." -msgstr "Afficher des informations sur un groupe d'hôtes." - -msgid "Netgroup name" -msgstr "Nom de groupe réseau" - -msgid "Netgroup description" -msgstr "Description de groupe réseau" - -msgid "NIS domain name" -msgstr "Nom de domaine NIS" - -msgid "IPA unique ID" -msgstr "ID unique IPA" - -msgid "Member netgroups" -msgstr "Groupes réseau membre" - -msgid "Indirect Member netgroups" -msgstr "Groupes réseau de membres indirects" - -msgid "Member User" -msgstr "Utilisateur membre" - -msgid "Member Group" -msgstr "Groupe membre" - -msgid "Member Host" -msgstr "Hôte membre" - -msgid "Member Hostgroup" -msgstr "Groupe d'hôtes membre" - -msgid "Add a new netgroup." -msgstr "Ajouter un nouveau groupe réseau." - -msgid "Add members to a netgroup." -msgstr "Ajouter des membres à un groupe réseau." - -msgid "member netgroup" -msgstr "Groupe réseau membre" - -msgid "Delete a netgroup." -msgstr "Supprimer un groupe réseau." - -msgid "Search for a netgroup." -msgstr "Rechercher un groupe réseau." - -msgid "search for managed groups" -msgstr "rechercher les groupes administrés" - -msgid "Search for netgroups with these member netgroups." -msgstr "" -"Rechercher des groupes réseaux dont les membres sont ces groupes réseau." - -msgid "Search for netgroups without these member netgroups." -msgstr "" -"Rechercher des groupes réseaux dont les membres ne sont pas ces groupes " -"réseau." - -msgid "Search for netgroups with these member users." -msgstr "Rechercher des groupes réseaux dont les membres sont ces utilisateurs." - -msgid "Search for netgroups without these member users." -msgstr "" -"Rechercher des groupes réseaux dont les membres ne sont pas ces utilisateurs." - -msgid "Search for netgroups with these member groups." -msgstr "Rechercher des groupes réseaux dont les membres sont ces groupes." - -msgid "Search for netgroups without these member groups." -msgstr "" -"Rechercher des groupes réseaux dont les membres ne sont pas ces groupes." - -msgid "Search for netgroups with these member hosts." -msgstr "Rechercher des groupes réseaux dont les membres sont ces hôtes." - -msgid "Search for netgroups without these member hosts." -msgstr "Rechercher des groupes réseaux dont les membres ne sont pas ces hôtes." - -msgid "Search for netgroups with these member host groups." -msgstr "" -"Rechercher des groupes réseaux dont les membres sont ces groupes d'hôtes." - -msgid "Search for netgroups without these member host groups." -msgstr "" -"Rechercher des groupes réseaux dont les membres ne sont pas ces groupes " -"d'hôtes." - -msgid "Search for netgroups with these member of netgroups." -msgstr "Rechercher des groupes réseaux avec ces membres de groupes réseau." - -msgid "Search for netgroups without these member of netgroups." -msgstr "Rechercher des groupes réseaux sans ces membres de groupes réseau." - -msgid "Modify a netgroup." -msgstr "Modifier un groupe réseau." - -msgid "Remove members from a netgroup." -msgstr "Supprimer des membres d'un groupe réseau." - -msgid "Display information about a netgroup." -msgstr "Afficher l'information sur un groupe réseau." - -msgid "Global forwarders" -msgstr "Redirecteurs globaux" - -msgid "Forward policy" -msgstr "Politique de redirection" - -msgid "" -"Global forwarding policy. Set to \"none\" to disable any configured global " -"forwarders." -msgstr "" -"Politique globale de redirection. Mettre à « none » pour désactiver tout " -"redirecteur global configuré." - -msgid "Allow PTR sync" -msgstr "Autoriser la synchronisation PTR" - -msgid "Allow synchronization of forward (A, AAAA) and reverse (PTR) records" -msgstr "" -"Autoriser la synchronisation des enregistrements directs (A, AAAA) et " -"inverses (PTR)" - -msgid "Zone refresh interval" -msgstr "Intervalle de rafraîchissement de zone" - -msgid "An interval between regular polls of the name server for new DNS zones" -msgstr "" -"Délai entre deux interrogations du serveur de noms pour la recherche de " -"nouvelles zones" - -msgid "Record name" -msgstr "Nom d'enregistrement" - -msgid "Time to live" -msgstr "Durée de vie" - -msgid "Class" -msgstr "Classe" - -msgid "DNS class" -msgstr "Classe de DNS" - -msgid "Records" -msgstr "Enregistrements" - -msgid "Record type" -msgstr "Type d'enregistrement" - -msgid "Record data" -msgstr "Données d'enregistrement" - -msgid "A record" -msgstr "Enregistrement A" - -msgid "A IP Address" -msgstr "A Adresse IP" - -msgid "A Create reverse" -msgstr "A Créer un enregistrement inverse" - -msgid "Create reverse record for this IP Address" -msgstr "Créer l'enregistrement inverse pour cette adresse IP" - -msgid "AAAA record" -msgstr "Enregistrement AAAA" - -msgid "AAAA IP Address" -msgstr "AAAA Adresse IP" - -msgid "AAAA Create reverse" -msgstr "AAAA Créer un enregistrement inverse" - -msgid "A6 record" -msgstr "Enregistrement A6" - -msgid "A6 Record data" -msgstr "Données d'enregistrement A6" - -msgid "AFSDB record" -msgstr "Enregistrement AFSDB" - -msgid "AFSDB Subtype" -msgstr "Sous-type AFSDB" - -msgid "Subtype" -msgstr "Sous-type" - -msgid "AFSDB Hostname" -msgstr "Nom d'hôte AFSDB" - -msgid "Hostname" -msgstr "Nom d'hôte" - -msgid "APL record" -msgstr "Enregistrement APL" - -msgid "CERT record" -msgstr "Enregistrement CERT" - -msgid "CERT Certificate Type" -msgstr "Type de certificat CERT" - -msgid "Certificate Type" -msgstr "Type de certificat" - -msgid "CERT Key Tag" -msgstr "Étiquette de clé CERT" - -msgid "Key Tag" -msgstr "Étiquette de clé" - -msgid "CERT Algorithm" -msgstr "Algorithme CERT" - -msgid "Algorithm" -msgstr "Algorithme" - -msgid "CERT Certificate/CRL" -msgstr "Certificat/CRL CERT" - -msgid "Certificate/CRL" -msgstr "Certificat/CRL" - -msgid "CNAME record" -msgstr "Enregistrement CNAME" - -msgid "CNAME Hostname" -msgstr "Nom d'hôte CNAME" - -msgid "A hostname which this alias hostname points to" -msgstr "Un nom d'hôte vers lequel cet alias pointe" - -msgid "DHCID record" -msgstr "Enregistrement DHCID" - -msgid "DLV record" -msgstr "Enregistrement DLV" - -msgid "DNAME record" -msgstr "Enregistrement DNAME" - -msgid "DNAME Target" -msgstr "Cible DNAME" - -msgid "Target" -msgstr "Cible" - -msgid "DNSKEY record" -msgstr "Enregistrement DNSKEY" - -msgid "DS record" -msgstr "Enregistrement DS" - -msgid "DS Key Tag" -msgstr "Étiquette de clé DS" - -msgid "DS Algorithm" -msgstr "Algorithme DS" - -msgid "DS Digest Type" -msgstr "Type de condensé DS" - -msgid "Digest Type" -msgstr "Type de condensé" - -msgid "DS Digest" -msgstr "Condensé DS" - -msgid "Digest" -msgstr "Condensé" - -msgid "HIP record" -msgstr "Enregistrement HIP" - -msgid "IPSECKEY record" -msgstr "Enregistrement IPSECKEY" - -msgid "KEY record" -msgstr "Enregistrement KEY" - -msgid "Flags" -msgstr "Marqueurs" - -msgid "KX record" -msgstr "Enregistrement KX" - -msgid "KX Preference" -msgstr "Préférence KX" - -msgid "Preference given to this exchanger. Lower values are more preferred" -msgstr "" -"Préférence donnée à cet échangeur. Les plus petites valeurs sont les " -"premières choisies" - -msgid "KX Exchanger" -msgstr "Échangeur KX" - -msgid "A host willing to act as a key exchanger" -msgstr "Un hôte prêt à jouer le rôle de changeur de clé" - -msgid "LOC record" -msgstr "Enregistrement LOC" - -msgid "LOC Degrees Latitude" -msgstr "Degrés de latitude LOC" - -msgid "Degrees Latitude" -msgstr "Degrés de latitude" - -msgid "LOC Minutes Latitude" -msgstr "Minutes de latitude LOC" - -msgid "Minutes Latitude" -msgstr "Minutes de latitude" - -msgid "LOC Seconds Latitude" -msgstr "Secondes de latitude LOC" - -msgid "Seconds Latitude" -msgstr "Secondes de latitude" - -msgid "LOC Direction Latitude" -msgstr "Direction de latitude LOC" - -msgid "Direction Latitude" -msgstr "Direction de latitude" - -msgid "LOC Degrees Longitude" -msgstr "Degrés de longitude LOC" - -msgid "Degrees Longitude" -msgstr "Degrés de longitude" - -msgid "LOC Minutes Longitude" -msgstr "Minutes de longitude LOC" - -msgid "Minutes Longitude" -msgstr "Minutes de longitude" - -msgid "LOC Seconds Longitude" -msgstr "Secondes de longitude LOC" - -msgid "Seconds Longitude" -msgstr "Secondes de longitude" - -msgid "LOC Direction Longitude" -msgstr "Direction de longitude LOC" - -msgid "Direction Longitude" -msgstr "Direction de longitude" - -msgid "LOC Altitude" -msgstr "Altitude LOC" - -msgid "Altitude" -msgstr "Altitude" - -msgid "LOC Size" -msgstr "Taille LOC" - -msgid "Size" -msgstr "Taille" - -msgid "LOC Horizontal Precision" -msgstr "Précision horizontale LOC" - -msgid "Horizontal Precision" -msgstr "Précision horizontale" - -msgid "LOC Vertical Precision" -msgstr "Précision verticale LOC" - -msgid "Vertical Precision" -msgstr "Précision verticale" - -msgid "MX record" -msgstr "Enregistrement MX" - -msgid "MX Preference" -msgstr "Préférence MX" - -msgid "MX Exchanger" -msgstr "Échangeur MX" - -msgid "A host willing to act as a mail exchanger" -msgstr "Un hôte pouvant agir comme changeur de messagerie" - -msgid "NAPTR record" -msgstr "Enregistrement NAPTR" - -msgid "NAPTR Order" -msgstr "Ordre NAPTR" - -msgid "Order" -msgstr "Ordre" - -msgid "NAPTR Preference" -msgstr "Préférence NAPTR" - -msgid "Preference" -msgstr "Préférence" - -msgid "NAPTR Flags" -msgstr "Drapeaux NAPTR" - -msgid "NAPTR Service" -msgstr "Service NAPTR" - -msgid "Service" -msgstr "Service" - -msgid "NAPTR Regular Expression" -msgstr "Expression rationnelle NAPTR" - -msgid "Regular Expression" -msgstr "Expression rationnelle" - -msgid "NAPTR Replacement" -msgstr "Remplacement NAPTR" - -msgid "Replacement" -msgstr "Remplacement" - -msgid "NS record" -msgstr "Enregistrement NS" - -msgid "NS Hostname" -msgstr "Nom d'hôte NS" - -msgid "NSEC record" -msgstr "Enregistrement NSEC" - -msgid "NSEC3 record" -msgstr "Enregistrement NSEC3" - -msgid "NSEC3PARAM record" -msgstr "Enregistrement NSEC3PARAM" - -msgid "PTR record" -msgstr "Enregistrement PTR" - -msgid "PTR Hostname" -msgstr "Nom d'hôte PTR" - -msgid "The hostname this reverse record points to" -msgstr "Le nom d'hôte vers lequel cet enregistrement inverse pointe" - -msgid "RRSIG record" -msgstr "Enregistrement RRSIG" - -msgid "RP record" -msgstr "Enregistrement RP" - -msgid "SIG record" -msgstr "Enregistrement SIG" - -msgid "SPF record" -msgstr "Enregistrement SPF" - -msgid "SRV record" -msgstr "Enregistrement SRV" - -msgid "SRV Priority" -msgstr "Priorité SRV" - -msgid "SRV Weight" -msgstr "Poids SRV" - -msgid "Weight" -msgstr "Poids" - -msgid "SRV Port" -msgstr "Port SRV" - -msgid "Port" -msgstr "Port" - -msgid "SRV Target" -msgstr "Cible SRV" - -msgid "" -"The domain name of the target host or '.' if the service is decidedly not " -"available at this domain" -msgstr "" -"Le nom de domaine de l'hôte cible ou '.' si le service n'est vraiment pas " -"disponible dans ce domaine" - -msgid "SSHFP record" -msgstr "Enregistrement SSHFP" - -msgid "SSHFP Algorithm" -msgstr "Algorithme SSHFP" - -msgid "SSHFP Fingerprint Type" -msgstr "Type d'empreinte SSHFP" - -msgid "Fingerprint Type" -msgstr "Type d'empreinte" - -msgid "SSHFP Fingerprint" -msgstr "Empreinte SSHFP" - -msgid "Fingerprint" -msgstr "Empreinte" - -msgid "TA record" -msgstr "Enregistrement TA" - -msgid "TKEY record" -msgstr "Enregistrement TKEY" - -msgid "TSIG record" -msgstr "Enregistrement TSIG" - -msgid "Text Data" -msgstr "Donnée texte" - -msgid "Zone name" -msgstr "Nom de zone" - -msgid "Zone name (FQDN)" -msgstr "Nom de zone (FQDN)" - -msgid "Reverse zone IP network" -msgstr "Réseau IP de zone inverse" - -msgid "IP network to create reverse zone name from" -msgstr "Réseau IP pour lequel créer un nom de zone inverse" - -msgid "Authoritative nameserver" -msgstr "Serveur de nom faisant autorité" - -msgid "Authoritative nameserver domain name" -msgstr "Nom de domaine du serveur de nom faisant autorité" - -msgid "Administrator e-mail address" -msgstr "Adresse courriel de l'administrateur" - -msgid "SOA serial" -msgstr "Numéro de série SOA" - -msgid "SOA record serial number" -msgstr "Numéro de série de l'enregistrement SOA" - -msgid "SOA refresh" -msgstr "Actualisation SOA" - -msgid "SOA record refresh time" -msgstr "Durée d'actualisation de l'enregistrement SOA" - -msgid "SOA retry" -msgstr "Nouvel essai SOA" - -msgid "SOA record retry time" -msgstr "Durée avant nouvel essai d'enregistrement SOA" - -msgid "SOA expire" -msgstr "Expiration SOA" - -msgid "SOA record expire time" -msgstr "Heure d'expiration de l'enregistrement SOA" - -msgid "SOA minimum" -msgstr "Minimum SOA" - -msgid "How long should negative responses be cached" -msgstr "Durée de maintien en cache des réponses négatives" - -msgid "SOA class" -msgstr "Classe SOA" - -msgid "SOA record class" -msgstr "Classe d'enregistrement SOA " - -msgid "BIND update policy" -msgstr "Politique de mise à jour de BIND" - -msgid "Active zone" -msgstr "Zone active" - -msgid "Is zone active?" -msgstr "La zone est-elle active ?" - -msgid "Dynamic update" -msgstr "Mise à jour dynamique" - -msgid "Allow dynamic updates." -msgstr "Autoriser les mises à jour dynamiques." - -msgid "Allow query" -msgstr "Autoriser requête" - -msgid "" -"Semicolon separated list of IP addresses or networks which are allowed to " -"issue queries" -msgstr "" -"Liste séparée par des points-virgules d'adresses IP ou de réseaux autorisés " -"à émettre des requêtes" - -msgid "Allow transfer" -msgstr "Autoriser le transfert" - -msgid "" -"Semicolon separated list of IP addresses or networks which are allowed to " -"transfer the zone" -msgstr "" -"Liste séparée par des points-virgules d'adresses IP ou de réseaux autorisés " -"à effectuer des transferts" - -msgid "Zone forwarders" -msgstr "Redirection de zone" - -msgid "" -"Per-zone conditional forwarding policy. Set to \"none\" to disable " -"forwarding to global forwarder for this zone. In that case, conditional zone " -"forwarders are disregarded." -msgstr "" -"Politique de redirection conditionnelle par zone. Mettre à « none » pour " -"désactiver la redirection vers un redireteur global pour cette zone. Dans ce " -"cas, les redirecteurs de zone conditionnels sont ignorés." - -msgid "" -"Allow synchronization of forward (A, AAAA) and reverse (PTR) records in the " -"zone" -msgstr "" -"Autoriser la synchronisation des enregistrements directs (A, AAAA) et " -"inverses (PTR) dans la zone" - -msgid "Resolve a host name in DNS." -msgstr "Résoudre un nom de système DNS." - -msgid "Modify global DNS configuration." -msgstr "Modifier la configuration DNS globale." - -msgid "Show the current global DNS configuration." -msgstr "Afficher la configuration DNS globale." - -msgid "Add new DNS resource record." -msgstr "Ajouter un nouvel enregistrement de ressources DNS." - -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" - -msgid "Structured" -msgstr "Structuré" - -msgid "Parse all raw DNS records and return them in a structured way" -msgstr "" -"Analyser tous les enregistrements DNS et les renvoyer sous forme structurée" - -msgid "Delete DNS resource record." -msgstr "Supprimer un enregistrement de ressources DNS." - -msgid "Delete all associated records" -msgstr "Supprimer les enregistrements associés" - -msgid "Search for DNS resources." -msgstr "Rechercher des enregistrements de ressources DNS." - -msgid "Modify a DNS resource record." -msgstr "Modifier un enregistrement de ressources DNS." - -msgid "Display DNS resource." -msgstr "Afficher un enregistrement de ressources DNS." - -msgid "Create new DNS zone (SOA record)." -msgstr "Créer une nouvelle zone DNS (enregistrement SOA)." - -msgid "Force DNS zone creation even if nameserver is not resolvable." -msgstr "" -"Forcer la création de la zone DNS même si le serveur de nom n'est pas " -"résoluble." - -msgid "Add forward record for nameserver located in the created zone" -msgstr "" -"Ajouter un enregistrement direct pour les serveurs de noms situés dans la " -"zone créée" - -msgid "Add a permission for per-zone access delegation." -msgstr "Ajouter une permission pour une délégation d'accès par zone." - -msgid "Delete DNS zone (SOA record)." -msgstr "Supprimer la zone DNS (enregistrement SOA)." - -msgid "Disable DNS Zone." -msgstr "Désactiver la zone DNS." - -msgid "Enable DNS Zone." -msgstr "Activer la zone DNS." - -msgid "Search for DNS zones (SOA records)." -msgstr "Rechercher des zones DNS (enregistrements SOA)." - -msgid "Forward zones only" -msgstr "Zones redirigées uniquement" - -msgid "Search for forward zones only" -msgstr "Rechercher des zones redirigées uniquement" - -msgid "Modify DNS zone (SOA record)." -msgstr "Modifier la zone DNS (enregistrement SOA)." - -msgid "Force nameserver change even if nameserver not in DNS" -msgstr "" -"Forcer un changement de serveur de nom même si le serveur de nom n'est pas " -"dans le DNS" - -msgid "Remove a permission for per-zone access delegation." -msgstr "Supprimer une permission pour une délégation d'accès par zone." - -msgid "Display information about a DNS zone (SOA record)." -msgstr "" -"Afficher les informations au sujet d'une zone DNS (enregistrement SOA)." - -msgid "Rule type" -msgstr "Type de règle" - -msgid "Rule type (allow)" -msgstr "Type de règle (allow)" - -msgid "Source host category" -msgstr "Catégorie d'hôtes sources" - -msgid "Source host category the rule applies to" -msgstr "Catégorie d'hôtes sources à laquelle la règle s'applique" - -msgid "Service category" -msgstr "Catégorie de service" - -msgid "Service category the rule applies to" -msgstr "Catégorie de services à laquelle la règle s'applique" - -msgid "Source Hosts" -msgstr "Hôtes sources" - -msgid "Source Host Groups" -msgstr "Groupes d'hôtes sources" - -msgid "Services" -msgstr "Services" - -msgid "Service Groups" -msgstr "Groupes de services" - -msgid "Create a new HBAC rule." -msgstr "Créer une nouvelle règle HBAC." - -msgid "Add target hosts and hostgroups to an HBAC rule." -msgstr "Ajouter des hôtes et des groupes d'hôtes cibles à une règle HBAC." - -msgid "Add services to an HBAC rule." -msgstr "Ajouter des services à une règle HBAC." - -msgid "member HBAC service group" -msgstr "Groupe de services HBAC membre" - -msgid "Add users and groups to an HBAC rule." -msgstr "Ajouter des utilisateurs et groupes à une règle HBAC." - -msgid "Delete an HBAC rule." -msgstr "Supprimer une règle HBAC." - -msgid "Disable an HBAC rule." -msgstr "Désactiver une règle HBAC." - -msgid "Enable an HBAC rule." -msgstr "Activer une règle HBAC." - -msgid "Search for HBAC rules." -msgstr "Rechercher des règles HBAC." - -msgid "Modify an HBAC rule." -msgstr "Modifier une règle HBAC." - -msgid "Remove target hosts and hostgroups from an HBAC rule." -msgstr "Retirer des hôtes et des groupes d'hôtes cibles d'une règle HBAC." - -msgid "Remove service and service groups from an HBAC rule." -msgstr "Ajouter des services et des groupes de services d'une règle HBAC." - -msgid "Remove users and groups from an HBAC rule." -msgstr "Retirer des utilisateurs et des groupes d'une règle HBAC." - -msgid "Display the properties of an HBAC rule." -msgstr "Afficher les propriétés d'une règle HBAC." - -msgid "Simulate use of Host-based access controls" -msgstr "Simulation de l'utilisation des contrôles d'accès basées sur les hôtes" - -msgid "Source host" -msgstr "Hôte source" - -msgid "Target host" -msgstr "Hôte cible" - -msgid "Rules to test. If not specified, --enabled is assumed" -msgstr "Règles à tester. Si non précisé, --enabled est implicite" - -msgid "Hide details which rules are matched, not matched, or invalid" -msgstr "Masquer les détails des règles satisfaites ou pas, ou invalides" - -msgid "Include all enabled IPA rules into test [default]" -msgstr "Inclure toutes les règles IPA actives dans le test [par défaut]" - -msgid "Include all disabled IPA rules into test" -msgstr "Inclure toutes les règles IPA inactives dans le test" - -msgid "Maximum number of rules to process when no --rules is specified" -msgstr "Nombre maximal de règles à traiter quand « --rules » n'est défini" - -msgid "Warning" -msgstr "Attention" - -msgid "Matched rules" -msgstr "Règles satisfaites" - -msgid "Not matched rules" -msgstr "Règles non satisfaites" - -msgid "Non-existent or invalid rules" -msgstr "Règles inexistantes ou invalides" - -msgid "Result of simulation" -msgstr "Résultat de la simulation" - -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" -"Privilèges\n" -"\n" -"Un privilège combine les permissions en tâches logiques. Une permission\n" -"fournit les droits de réaliser une tâche unique. Certaines opérations IPA\n" -"requièrent une combinaison de plusieurs permissions. Un privilège est la\n" -"combinaison de ces permissions pour réaliser une tâche.\n" -"\n" -"Par exemple, la création d'utilisateurs 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" -"\n" -"La combinaison de ces trois tâches de bas niveau en privilège nommé\n" -"« Add User » facilite la gestion des rôles.\n" -"\n" -"Un privilège ne peut contenir d'autres privilèges.\n" -"\n" -"Reportez-vous la gestion des rôles et des permissions pour plus " -"d'informations.\n" - -msgid "Privilege name" -msgstr "Nom du privilège" - -msgid "Privilege description" -msgstr "Description du privilège" - -msgid "Granting privilege to roles" -msgstr "Privilèges accordés aux rôles" - -msgid "Add a new privilege." -msgstr "Ajouter un nouveau privilège." - -msgid "Add members to a privilege." -msgstr "Ajouter des membres à un privilège." - -msgid "Add permissions to a privilege." -msgstr "Ajouter des permissions à un privilège." - -msgid "permission" -msgstr "permission" - -msgid "Number of permissions added" -msgstr "Nombre de permissions ajoutées" - -msgid "Delete a privilege." -msgstr "Supprimer un privilège" - -msgid "Search for privileges." -msgstr "Rechercher des privilèges." - -msgid "Modify a privilege." -msgstr "Modifier un privilège." - -msgid "Remove members from a privilege" -msgstr "Supprimer les membres d'un privilège" - -msgid "Remove permissions from a privilege." -msgstr "Supprimer des permissions d'un privilège." - -msgid "Number of permissions removed" -msgstr "Nombre de permissions supprimées" - -msgid "Display information about a privilege." -msgstr "Afficher les informations sur un privilège." - -msgid "Take a revoked certificate off hold." -msgstr "Ôter un certificat révoqué en attente." - -msgid "Serial number" -msgstr "Numéro de série" - -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)" - -msgid "Submit a certificate signing request." -msgstr "Soumettre une demande de signature de certificat." - -msgid "CSR" -msgstr "CSR" - -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)" - -msgid "automatically add the principal if it doesn't exist" -msgstr "ajoute automatiquement le principal s'il n'existe pas" - -msgid "Revoke a certificate." -msgstr "Révoquer un certificat." - -msgid "Reason" -msgstr "Raison" - -msgid "Reason for revoking the certificate (0-10)" -msgstr "Raison de révocation du certificat (0-10)" - -msgid "Retrieve an existing certificate." -msgstr "Récupérer un certificat existant." - -msgid "Output filename" -msgstr "Nom de fichier de sortie" - -msgid "File to store the certificate in." -msgstr "Fichier dans lequel stocker le certificat." - -msgid "Check the status of a certificate signing request." -msgstr "Vérifier l'état d'une demande de signature de certificat." - -msgid "Request id" -msgstr "Identifiant de la demande" +msgid "Display information about a vault container." +msgstr "Afficher les informations sur un conteneur de coffre-fort." msgid "" "\n" @@ -5246,9 +5925,6 @@ msgstr "Entrant dans liste noire de SID" msgid "SID blacklist outgoing" msgstr "Sortant de liste noire de SID" -msgid "Domain" -msgstr "Domaine" - msgid "Security Identifier" msgstr "Identifiant de sécurité" @@ -5261,6 +5937,29 @@ msgstr "GUID du domaine" msgid "Fallback primary group" msgstr "Groupe principal de repli" +msgid "Domain name" +msgstr "Nom de domaine" + +msgid "Trusted domain partner" +msgstr "Partenaire de domaine approuvé" + +msgid "Determine whether ipa-adtrust-install has been run on this system" +msgstr "" +"Déterminer si la commande « ipa-adtrust-install » a été exécutée sur ce " +"système" + +msgid "" +"Determine whether Schema Compatibility plugin is configured to serve trusted " +"domain users and groups" +msgstr "" +"Déterminer si le greffon de compatibilité de schéma est configuré pour " +"servir les utilisateurs et groupes du domaine" + +msgid "Determine whether ipa-adtrust-install has been run with sidgen task" +msgstr "" +"Déterminer si la commande « ipa-adtrust-install » a été exécutée avec la " +"tâche « sidgen »" + msgid "" "\n" "Add new trust to use.\n" @@ -5297,8 +5996,8 @@ msgstr "Type de confiance (par défaut, ad pour Active Directory)" msgid "Active Directory domain administrator" msgstr "Administrateur du domaine Active Directory" -msgid "Active directory domain administrator's password" -msgstr "Mot de passe de l'administrateur du domaine Active Directory" +msgid "Active Directory domain administrator's password" +msgstr "Mot de passe de l'administrateur de domaine Active Directory" msgid "Domain controller for the Active Directory domain (optional)" msgstr "Contrôleur de domaine pour le domaine Active Directory (optionnel)" @@ -5312,12 +6011,32 @@ msgstr "Premier ID POSIX de la plage réservée au domaine approuvé" msgid "Size of the ID range reserved for the trusted domain" msgstr "Taille de la plage d'ID réservée au domaine approuvé" +msgid "Two-way trust" +msgstr "Confiance réciproque" + +msgid "" +"Establish bi-directional trust. By default trust is inbound one-way only." +msgstr "" +"Établir une relation d'approbation bidirectionnelle. Par défaut, la relation " +"est unilatérale entrante uniquement." + msgid "Delete a trust." msgstr "Supprimer la confiance." +msgid "Refresh list of the domains associated with the trust" +msgstr "Rafraîchir la liste des domaines associés à la relation de confiance" + msgid "Search for trusts." msgstr "Rechercher des confiances." +msgid "Resolve security identifiers of users and groups in trusted domains" +msgstr "" +"Résoudre les identifiants de sécurité des groupes et utilisateurs dans des " +"domaines approuvés" + +msgid "Security Identifiers (SIDs)" +msgstr "Identifiants de sécurité (SID)" + msgid "Display information about a trust." msgstr "Afficher des informations sur une relation de confiance." @@ -5327,661 +6046,276 @@ msgstr "Modifier la configuration globale des relations d'approbation." msgid "Show global trust configuration." msgstr "Afficher la configuration globale des relations d'approbation." +msgid "Allow access from the trusted domain" +msgstr "Autoriser l'accès depuis le domaine approuvé" + +msgid "Disable use of IPA resources by the domain of the trust" +msgstr "Interdire l'utilisation de ressources IPA par le domaine approuvé" + +msgid "Allow use of IPA resources by the domain of the trust" +msgstr "Autoriser l'utilisation des ressources IPA par le domaine approuvé" + +msgid "Search domains of the trust" +msgstr "Recherches dans les domaines approuvés" + +msgid "Modify trustdomain of the trust" +msgstr "Modifier le domaine approuvé de la confiance" + msgid "" "\n" -"Server configuration\n" +"IPA certificate operations\n" "\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" +"Implements a set of commands for managing server SSL certificates.\n" "\n" -"NOTES:\n" +"Certificate requests exist in the form of a Certificate Signing Request " +"(CSR)\n" +"in PEM format.\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" +"The dogtag CA uses just the CN value of the CSR and forces the rest of the\n" +"subject to values configured in the server.\n" "\n" -"Some attributes are read-only, provided only for information purposes. " -"These\n" -"include:\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\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" +"In order to request a certificate:\n" "\n" -"When setting the order list for mapping SELinux users you may need to\n" -"quote the value so it isn't interpreted by the shell.\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add " +"it)\n" +"\n" +"SEARCHING:\n" +"\n" +"Certificates may be searched on by certificate subject, serial number,\n" +"revocation reason, validity dates and the issued date.\n" +"\n" +"When searching on dates the _from date does a >= search and the _to date\n" +"does a <= search. When combined these are done as an AND.\n" +"\n" +"Dates are treated as GMT to match the dates in the certificates.\n" +"\n" +"The date format is YYYY-mm-dd.\n" "\n" "EXAMPLES:\n" "\n" -" Show basic server configuration:\n" -" ipa config-show\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" "\n" -" Show all configuration options:\n" -" ipa config-show --all\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" "\n" -" Change maximum username length to 99 characters:\n" -" ipa config-mod --maxusername=99\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" "\n" -" Increase default time and size limits for maximum IPA server search:\n" -" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" "\n" -" Set default user e-mail domain:\n" -" ipa config-mod --emaildomain=example.com\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" "\n" -" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" -" ipa config-mod --enable-migration=TRUE\n" +" Search for certificates by hostname:\n" +" ipa cert-find --subject=ipaserver.example.com\n" "\n" -" Define SELinux user map order:\n" -" ipa config-mod --ipaselinuxusermaporder='guest_u:s0$xguest_u:s0$user_u:s0-" -"s0:c0.c1023$staff_u:s0-s0:c0.c1023$unconfined_u:s0-s0:c0.c1023'\n" +" Search for revoked certificates by reason:\n" +" ipa cert-find --revocation-reason=5\n" +"\n" +" Search for certificates based on issuance date\n" +" ipa cert-find --issuedon-from=2013-02-01 --issuedon-to=2013-02-07\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" msgstr "" "\n" -"Configuration du serveur\n" +"Gestion de certficats IPA\n" "\n" -"Gérer les valeurs par défaut utilisées par IPA ainsi que certains de ses\n" -"paramètres d'ajustement.\n" +"Implémente un jeu de commandes pour gérer les certificats SSL du serveur.\n" "\n" -"NOTES :\n" +"Les demandes de certificats existent sous la forme de\n" +"« Certificate Signing Request (CSR) » au format PEM.\n" "\n" -"La valeur de notification du mot de passe (--pwdexpnotify) est stockée ici\n" -"en vue de sa réplication. Elle n'est pas actuellement utilisée pour " -"notifier\n" -"par avance aux utilisateurs l'expiration de leur mot de passe.\n" +"La plaque d'identité CA n'utilise que la valeur CN du CSR et force le reste\n" +"du sujet aux valeurs configurées dans le serveur.\n" "\n" -"Certains attributs sont en lecture seule, fournis à titre d'information ;\n" -"ils comprennent :\n" +"Un certificat est enregistré avec un principal de service et un principal\n" +" de service a besoin d'un hôte.\n" "\n" -"* la base sujet de certificat : la base de sujet de certificat configuré,\n" -" ex. O=EXAMPLE.COM, configurable uniquement à l'installation.\n" -"* les fonctions du greffon mots de passe : définit les hachages " -"additionnels\n" -" qu'un mot de passe va générer (d'autres conditions peuvent s'appliquer).\n" +"Donc, pour demander un certificat :\n" "\n" -"En fixant la liste ordonnée pour le mappage des utilisateurs SELinux, vous\n" -"devez mettre entre guillemets les valeurs pour éviter leur interprétation.\n" +"* l'hôte doit exister\n" +"* le service doit exister (utiliser --add pour l'ajouter automatiquement)\n" "\n" -"EXEMPLES :\n" +"RECHERCHE :\n" "\n" -" Afficher la configuration de base du serveur :\n" -" ipa config-show\n" +"Les certificats peuvent être recherchés par sujet, numéro de série,\n" +"motif de révocation, dates de validité et date d'émission.\n" "\n" -" Afficher toutes les options de configuration :\n" -" ipa config-show --all\n" +"En recherchant par dates, _from effectue une recherche >= à la date et _to\n" +"une recherche <= à la date. Combinées, elles sont équivalentes à un AND.\n" "\n" -" Modifier la longueur maximale d'un nom d'utilisateur à 99 caractères :\n" -" ipa config-mod --maxusername=99\n" +"La date est traitée comme GMT pour correspondre aux dates de certificats.\n" "\n" -" Augmenter délais et limites de taille des recherches sur le serveur IPA :\n" -" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" +"La date est au format YYYY-mm-dd.\n" "\n" -" Définir le domaine pour les courriels de l'utilisateur par défaut :\n" -" ipa config-mod --emaildomain=example.com\n" +"EXEMPLES :\n" "\n" -" Activer le mode migration pour que « ipa migrate-ds » soit opérationelle :\n" -" ipa config-mod --enable-migration=TRUE\n" +" Demander un nouveau certificat et ajouter le principal :\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrouver un certificat existant :\n" +" ipa cert-show 1032\n" +"\n" +" Révoquer un certificat (voir RFC 5280 pour le détail des raisons) :\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Lever l'état de 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" +"\n" +" Rechercher des certificats par nom d'hôte :\n" +" ipa cert-find --subject=ipaserver.example.com\n" +"\n" +" Rechercher les certificats révoqués par motif :\n" +" ipa cert-find --revocation-reason=5\n" +"\n" +" Rechercher les certificats selon la date d'émission :\n" +" ipa cert-find --issuedon-from=2013-02-01 --issuedon-to=2013-02-07\n" +"\n" +"Actuellement IPA émet (ou refuse) aussitôt toute demande de certificat, " +"donc\n" +"l'état d'une requête ne sert normalement pas. C'est en vue d'une " +"utilisation\n" +"future ou au cas où un CA n'émettrait pas immédiatement un certificat.\n" +"\n" +"Les motifs de révocation suivants sont pris en charge :\n" +"\n" +" * 0 - « unspecified » (non précisé)\n" +" * 1 - « keyCompromise » (clé compromise)\n" +" * 2 - « cACompromise » (CA compromis)\n" +" * 3 - « affiliationChanged » (affiliation modifiée)\n" +" * 4 - « superseded » (remplacé)\n" +" * 5 - « cessationOfOperation » (arrêt d'opération)\n" +" * 6 - « certificateHold » (certificat retenu)\n" +" * 8 - « removeFromCRL » (sorti du CRL)\n" +" * 9 - « privilegeWithdrawn » (retrait de privilège)\n" +" * 10 - « aACompromise » (compromission)\n" +"\n" +"Notez que le motif code 7 ne sert pas. Voir RFC 5280 pour plus de détails :\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" "\n" -" Définir l'ordre de la mappe des utilisateurs SELinux :\n" -" ipa config-mod --ipaselinuxusermaporder='guest_u:s0$xguest_u:s0$user_u:s0-" -"s0:c0.c1023$staff_u:s0-s0:c0.c1023$unconfined_u:s0-s0:c0.c1023'\n" -msgid "Maximum username length" -msgstr "Longueur maximale du nom d'utilisateur" - -msgid "Home directory base" -msgstr "Base du répertoire utilisateur" - -msgid "Default location of home directories" -msgstr "Emplacement par défaut des répertoires utilisateur" - -msgid "Default shell" -msgstr "Interpréteur de commande par défaut" - -msgid "Default shell for new users" -msgstr "Interpréteur de commande par défaut pour les nouveaux utilisateurs" - -msgid "Default users group" -msgstr "Groupe utilisateur par défaut" - -msgid "Default group for new users" -msgstr "Groupe utilisateur par défaut pour les nouveaux utilisateurs" - -msgid "Default e-mail domain" -msgstr "Domaine par défaut pour les courriels" - -msgid "Search time limit" -msgstr "Limite de temps d'une recherche" - -msgid "" -"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ée)" - -msgid "Search size limit" -msgstr "Limite de taille d'une recherche" - -msgid "Maximum number of records to search (-1 is unlimited)" -msgstr "Nombre maximum d'entrées à rechercher (-1 pour illimité)" - -msgid "User search fields" -msgstr "Champs de recherche utilisateur" - -msgid "A comma-separated list of fields to search in when searching for users" +msgid "Checks if any of the servers has the CA service enabled." msgstr "" -"Une liste, séparée avec des virgules, des champs à explorer pour une " -"recherche d'utilisateurs" +"Vérifier si l'un des serveurs a activé le service autorité de certification." -msgid "Group search fields" -msgstr "Champs de recherche de groupe" +msgid "Search for existing certificates." +msgstr "Recherche de certificats existants." -msgid "A comma-separated list of fields to search in when searching for groups" -msgstr "" -"Une liste séparée par des virgules des champs à explorer pour une recherche " -"de groupes" +msgid "Subject" +msgstr "Sujet" -msgid "Enable migration mode" -msgstr "Activer le mode migration" +msgid "Reason" +msgstr "Raison" -msgid "Certificate Subject base" -msgstr "Base de sujet de certificat" +msgid "Reason for revoking the certificate (0-10)" +msgstr "Raison de révocation du certificat (0-10)" -msgid "Base for certificate subjects (OU=Test,O=Example)" -msgstr "Base pour les sujets de certificat (OU=Test,O=Example)" +msgid "minimum serial number" +msgstr "numéro de série plancher" -msgid "Default group objectclasses" -msgstr "Classes d'objets de groupe par défaut" +msgid "maximum serial number" +msgstr "numéro de série plafond" -msgid "Default group objectclasses (comma-separated list)" -msgstr "Classes d'objets de groupe par défaut (liste séparée par des virgules)" +msgid "match the common name exactly" +msgstr "correspond exactement au nom commun" -msgid "Default user objectclasses" -msgstr "Classes d'objets utilisateur par défaut" +msgid "Valid not after from this date (YYYY-mm-dd)" +msgstr "Valide à partir de cette date (AAAA-mm-jj)" -msgid "Default user objectclasses (comma-separated list)" -msgstr "" -"Classes d'objets utilisateurs par défaut (liste séparée par des virgules)" +msgid "Valid not after to this date (YYYY-mm-dd)" +msgstr "Valide jusqu'à cette date (AAAA-mm-jj)" -msgid "Password Expiration Notification (days)" -msgstr "Notification d'expiration de mot de passe (jours)" +msgid "Valid not before from this date (YYYY-mm-dd)" +msgstr "Valide à partir de cette date (AAAA-mm-jj), non valide avant" -msgid "Number of days's notice of impending password expiration" -msgstr "Nombre de jours de préavis d'expiration de mot de passe" +msgid "Valid not before to this date (YYYY-mm-dd)" +msgstr "Valide à cette date (AAAA-mm-jj), non valide avant" -msgid "Password plugin features" -msgstr "Fonctionnalités du greffon mots de passe" +msgid "Issued on from this date (YYYY-mm-dd)" +msgstr "Émis à partir de cette date (AAAA-mm-jj)" -msgid "Extra hashes to generate in password plug-in" -msgstr "Hachages additionnels à générer dans le greffon mots de passe" +msgid "Issued on to this date (YYYY-mm-dd)" +msgstr "Émis à cette date (AAAA-mm-jj)" -msgid "SELinux user map order" -msgstr "Ordre de la mappe des utilisateurs SELinux" +msgid "Revoked on from this date (YYYY-mm-dd)" +msgstr "Révoqué à partir de cette date (AAAA-mm-jj)" -msgid "Order in increasing priority of SELinux users, delimited by $" -msgstr "" -"Ordre des utilisateurs SELinux par priorité croissante, délimités par $" +msgid "Revoked on to this date (YYYY-mm-dd)" +msgstr "Révoqué à cette date (AAAA-mm-jj)" -msgid "Default SELinux user" -msgstr "Utilisateur SELinux par défaut" +msgid "Maximum number of certs returned" +msgstr "Nombre maximum de certificats renvoyés" -msgid "Default SELinux user when no match is found in SELinux map rule" -msgstr "" -"Utilisateur SELinux par défaut quand il n'y a aucune correspondance dans la " -"règle de mappe SELinux" +msgid "Take a revoked certificate off hold." +msgstr "Ôter un certificat révoqué en attente." -msgid "Default PAC types" -msgstr "Types de PAC par défaut" +msgid "Serial number" +msgstr "Numéro de série" -msgid "Default types of PAC supported for services" -msgstr "Types de PAC par défaut pris en charge pour des services" +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)" -msgid "Modify configuration options." -msgstr "Modifier les options de configuration." +msgid "Submit a certificate signing request." +msgstr "Soumettre une demande de signature de certificat." -msgid "Show the current configuration." -msgstr "Afficher la configuration actuelle." +msgid "CSR" +msgstr "CSR" -msgid "Name of the trusted domain" -msgstr "Nom du domaine approuvé" +msgid "Principal for this certificate (e.g. HTTP/test.example.com)" +msgstr "Principal de ce certificate (par exemple : HTTP/test.example.com)" -msgid "ID range type, one of ipa-ad-trust-posix, ipa-ad-trust, ipa-local" -msgstr "" -"Type de plage d'identifiants, doit être ipa-ad-trust-posix, ipa-ad-trust ou " -"ipa-local" +msgid "automatically add the principal if it doesn't exist" +msgstr "ajoute automatiquement le principal s'il n'existe pas" -msgid "Time limit of search in seconds (0 is unlimited)" -msgstr "Limite de la durée de la recherche en secondes (0 pour illimité)" +msgid "Certificate Profile to use" +msgstr "Profil de certificat à utiliser" -msgid "Maximum number of entries returned (0 is unlimited)" -msgstr "Nombre maximal d'entrées renvoyées (0 pour illimité)" +msgid "Revoke a certificate." +msgstr "Révoquer un certificat." -msgid "" -"Override default list of supported PAC types. Use 'NONE' to disable PAC " -"support for this service, e.g. this might be necessary for NFS services." -msgstr "" -"Surcharger la liste par défaut des types PAC pris en charge. Utiliser « NONE " -"» pour désactiver la prise en charge PAC pour ce service, ce qui peut être " -"nécessaire pour les services NFS par exemple." +msgid "Retrieve an existing certificate." +msgstr "Récupérer un certificat existant." -msgid "Requires pre-authentication" -msgstr "Nécessite une authentification préalable" +msgid "Output filename" +msgstr "Nom de fichier de sortie" -msgid "Pre-authentication is required for the service" -msgstr "Une authentification préalable est requise pour le service" +msgid "File to store the certificate in." +msgstr "Fichier dans lequel stocker le certificat." -msgid "Trusted for delegation" -msgstr "Approuvé pour délégation." +msgid "Check the status of a certificate signing request." +msgstr "Vérifier l'état d'une demande de signature de certificat." -msgid "Client credentials may be delegated to the service" -msgstr "" -"Les informations d'identification du client peuvent être déléguées au service" - -msgid "Users allowed to retrieve keytab" -msgstr "Utilisateurs autorisés à récupérer un tableau de clés" - -msgid "Groups allowed to retrieve keytab" -msgstr "Groupes autorisés à récupérer un tableau de clés" - -msgid "Hosts allowed to retrieve keytab" -msgstr "Hôtes autorisés à récupérer un tableau de clés" - -msgid "Host Groups allowed to retrieve keytab" -msgstr "Groupes d'hôtes autorisés à récupérer un tableau de clés" - -msgid "Users allowed to create keytab" -msgstr "Utilisateurs autorisés à créer un tableau de clés" - -msgid "Groups allowed to create keytab" -msgstr "Groupes autorisés à créer un tableau de clés" - -msgid "Hosts allowed to create keytab" -msgstr "Hôtes autorisés à créer un tableau de clés" - -msgid "Host Groups allowed to create keytab" -msgstr "Groupes d'hôtes autorisés à créer un tableau de clés" - -msgid "Suppress processing of membership attributes." -msgstr "Suppression du traitement des attributs d'adhésion." - -msgid "Add new certificates to a service" -msgstr "Ajouter un nouveau certificat à un service" - -msgid "hosts to add" -msgstr "hôtes à ajouter" - -msgid "" -"Allow users, groups, hosts or host groups to create a keytab of this service." -msgstr "" -"Autoriser utilisateurs, hôtes ou groupes d'hôtes à créer un tableau de clés " -"de ce service." - -msgid "groups to add" -msgstr "groupes à ajouter" - -msgid "host groups to add" -msgstr "groupes d'hôtes à ajouter" - -msgid "" -"Allow users, groups, hosts or host groups to retrieve a keytab of this " -"service." -msgstr "" -"Autoriser les utilisateurs, groupes, hôtes ou groupes d'hôtes à récupérer un " -"tableau de clés pour ce service." - -msgid "" -"Disallow users, groups, hosts or host groups to create a keytab of this " -"service." -msgstr "" -"Interdire aux utilisateurs, hôtes ou groupes d'hôtes de créer un tableau de " -"clés de ce service." - -msgid "users to remove" -msgstr "utilisateurs à supprimer" - -msgid "groups to remove" -msgstr "groupes à supprimer" - -msgid "hosts to remove" -msgstr "hôtes à supprimer" - -msgid "host groups to remove" -msgstr "groupes d'hôtes à supprimer" - -msgid "" -"Disallow users, groups, hosts or host groups to retrieve a keytab of this " -"service." -msgstr "" -"Interdire aux utilisateurs, hôtes ou groupes d'hôtes de récupérer un tableau " -"de clés de ce service." - -msgid "Remove certificates from a service" -msgstr "Supprimer les certificats d'un service" - -msgid "Host Masks" -msgstr "Masques d'hôtes" - -msgid "External Groups of RunAs Users" -msgstr "Groupes externes de « RunAs Users »" - -msgid "External Groups of users that the command can run as" -msgstr "" -"Groupes externes d'utilisateurs comme tel la commande peut être exécutée" - -msgid "sudo commands to add" -msgstr "commandes sudo à ajouter" - -msgid "host masks of allowed hosts" -msgstr "masques d'hôtes des hôtes autorisés" - -msgid "sudo commands to remove" -msgstr "commandes sudo à supprimer" - -msgid "" -"\n" -"Groups of Sudo Commands\n" -"\n" -"Manage groups of Sudo Commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo Command Group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo Command Group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo Command Group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less --sudocmds=/usr/bin/" -"vim admincmds\n" -"\n" -" Manage Sudo Command Group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo Command Group:\n" -" ipa group-show localadmins\n" -msgstr "" -"\n" -"Groupes de commandes sudo\n" -"\n" -"Administre les groupes de commandes sudo.\n" -"\n" -"EXEMPLES :\n" -"\n" -" Ajouter un nouveau groupe de commandes sudo :\n" -" ipa sudocmdgroup-add --desc='commandes administrateurs' admincmds\n" -"\n" -" Supprimer un groupe de commandes sudo :\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Gérer les commandes, l'appartenance d'un groupe de commandes sudo :\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less --sudocmds=/usr/bin/" -"vim admincmds\n" -"\n" -" Administrer les commandes, l'appartenance d'un groupe de commandes sudo :\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Afficher un groupe de commandes sudo :\n" -" ipa group-show localadmins\n" - -msgid "Anchor to override" -msgstr "Balise à surcharger" - -msgid "User ID Number" -msgstr "Numéro d'identifiant utilisateur" - -msgid "GECOS" -msgstr "GECOS" - -msgid "ID View Name" -msgstr "Nom de la vue d'identifiants" - -msgid "Add a new Group ID override." -msgstr "Ajouter une nouvelle surcharge d'identifiants de groupes." - -msgid "Fallback to AD DC LDAP" -msgstr "Repli sur l'annuaire LDAP du contrôleur de domaine AD" - -msgid "" -"Allow falling back to AD DC LDAP when resolving AD trusted objects. For two-" -"way trusts only." -msgstr "" -"Autorise l'utilisation en repli de l'annuaire LDAP du contrôleur de domaine " -"AD. Pour les relations d'approbation bidirectionnelles uniquement." - -msgid "Delete an Group ID override." -msgstr "Supprimer une surcharge d'identifiants de groupes." - -msgid "Search for an Group ID override." -msgstr "Rechercher une surcharge d'identifiants de groupes" - -msgid "Results should contain primary key attribute only (\"anchor\")" -msgstr "" -"Les résultats doivent uniquement contenir un attribut de clé principale " -"(« anchor »)" - -msgid "Modify an Group ID override." -msgstr "Modifier une surcharge d'identifiants de groupes." - -msgid "Rename the Group ID override object" -msgstr "Renommer l'objet surcharge d'identifiant de groupe" - -msgid "Display information about an Group ID override." -msgstr "Afficher les informations d'une surcharge d'identifiants de groupes." - -msgid "Add a new User ID override." -msgstr "Ajouter une nouvelle surcharge d'identifiants utilisateurs." - -msgid "Delete an User ID override." -msgstr "Supprimer une surcharge d'identifiants utilisateurs." - -msgid "Search for an User ID override." -msgstr "Rechercher une surcharge d'identifiants utilisateurs" - -msgid "Modify an User ID override." -msgstr "Modifier une surcharge d'identifiants utilisateurs." - -msgid "Rename the User ID override object" -msgstr "Renommer l'objet surcharge d'identifiant d'utilisateur" - -msgid "Display information about an User ID override." -msgstr "Afficher les informations d'une surcharge d'identifiants utilisateurs." - -msgid "Add a new ID View." -msgstr "Ajouter une nouvelle vue d'identifiants" - -msgid "" -"Applies ID View to specified hosts or current members of specified " -"hostgroups. If any other ID View is applied to the host, it is overridden." -msgstr "" -"Applique une vue d'identifiants aux hôtes ou aux membres des groupes d'hôtes " -"indiqués. Si une autre vue d'identifiants était appliquée à l'hôte, elle est " -"remplacée." - -msgid "hosts" -msgstr "hôtes" - -msgid "Hosts to apply the ID View to" -msgstr "Hôtes auxquels appliquer la vue" - -msgid "hostgroups" -msgstr "groupe d'hôtes" - -msgid "" -"Hostgroups to whose hosts apply the ID View to. Please note that view is not " -"applied automatically to any hosts added to the hostgroup after running the " -"idview-apply command." -msgstr "" -"Groupes d'hôtes auxquels s'applique la vue d'identifiants. Veuillez noter " -"que cette vue ne s'applique pas automatiquement aux hôtes ajoutés au groupe " -"après l'exécution de la commande idview-apply." - -msgid "Hosts that this ID View was applied to." -msgstr "Hôtes auxquels s'applique cette vue d'identifiants." - -msgid "Hosts or hostgroups that this ID View could not be applied to." -msgstr "" -"Hôtes ou groupes d'hôtes auxquels cette vue d'identifiants ne pourra pas " -"être appliquée." - -msgid "Number of hosts the ID View was applied to:" -msgstr "Nombre d'hôtes auxquels la vue d'identifiants a été appliquée :" - -msgid "Delete an ID View." -msgstr "Supprimer une vue d'identifiants." - -msgid "Search for an ID View." -msgstr "Rechercher une vue d'identifiants." - -msgid "Modify an ID View." -msgstr "Modifier une vue d'identifiants." - -msgid "Rename the ID View object" -msgstr "Renommer l'objet surcharge de vue d'identifiants" - -msgid "Display information about an ID View." -msgstr "Afficher les informations d'une vue d'identifiants." - -msgid "Enumerate all the hosts the view applies to." -msgstr "Énumérer tous les hôtes auxquels la vue s'applique." - -msgid "" -"Clears ID View from specified hosts or current members of specified " -"hostgroups." -msgstr "" -"Retire l'application de la vue d'identifiants des hôtes ou membres des " -"groupes d'hôtes indiqués." - -msgid "Hosts to clear (any) ID View from." -msgstr "Hôtes dont on va retirer toute vue d'identifiants." - -msgid "" -"Hostgroups whose hosts should have ID Views cleared. Note that view is not " -"cleared automatically from any host added to the hostgroup after running " -"idview-unapply command." -msgstr "" -"Groupes d'hôtes dont les hôtes doivent se voir la vue d'identifiants " -"retirée. Veuillez noter que la vue n'est pas automatiquement retirée de tout " -"hôte ajouté au groupe d'hôte après l'exécution de la commande idview-unapply." - -msgid "Hosts that ID View was cleared from." -msgstr "Hôtes dont la vue d'identifiants a été retirée." - -msgid "Hosts or hostgroups that ID View could not be cleared from." -msgstr "" -"Hôtes ou groupes d'hôtes dont la vue d'identifiants n'a pu être retirée." - -msgid "Number of hosts that had a ID View was unset:" -msgstr "Nombre d'hôtes dont une vue d'identifiants a été retirée :" - -msgid "" -"\n" -"Raise the IPA Domain Level.\n" -msgstr "" -"\n" -"Relever le niveau du domaine IPA.\n" - -msgid "Query current Domain Level." -msgstr "Interroger le niveau actuel du domaine." - -msgid "Current domain level:" -msgstr "Niveau actuel du domaine :" - -msgid "Change current Domain Level." -msgstr "Modifier le niveau actuel du domaine." - -msgid "Domain Level" -msgstr "Niveau du domaine" - -msgid "Granted rights" -msgstr "Droits accordés" - -msgid "Rights to grant (read, search, compare, write, add, delete, all)" -msgstr "Droits à accorder (read, search, compare, write, add, delete, all)" - -msgid "Effective attributes" -msgstr "Attributs impactés" - -msgid "All attributes to which the permission applies" -msgstr "Tous les attributs auxquels la permission s'applique" - -msgid "Included attributes" -msgstr "Attributs inclus" - -msgid "User-specified attributes to which the permission applies" -msgstr "Attributs propres à un utilisateur auxquels la permission s'applique" - -msgid "Excluded attributes" -msgstr "Attributs exclus" - -msgid "" -"User-specified attributes to which the permission explicitly does not apply" -msgstr "" -"Attributs propres à un utilisateur auxquels la permission ne s'applique " -"explicitement pas" - -msgid "Default attributes" -msgstr "Attributs par défaut" - -msgid "Attributes to which the permission applies by default" -msgstr "Attributs auxquels la permission s'applique par défaut" - -msgid "Bind rule type" -msgstr "Type de règle liée" - -msgid "Extra target filter" -msgstr "Filtre cible supplémentaire" - -msgid "Raw target filter" -msgstr "Filtre cible brut" - -msgid "All target filters, including those implied by type and memberof" -msgstr "" -"Tous les filtres cible, y compris ceux définis avec « type » et « memberof »" - -msgid "Target DN" -msgstr "DN cible" - -msgid "" -"Optional DN to apply the permission to (must be in the subtree, but may not " -"yet exist)" -msgstr "" -"DN optionnel auquel appliquer les permissions (doit être dans le sous-arbre, " -"mais peut ne pas encore exister)" - -msgid "Target DN subtree" -msgstr "Sous-arbre des DN cibles" - -msgid "" -"Optional DN subtree where an entry can be moved to (must be in the subtree, " -"but may not yet exist)" -msgstr "" -"Sous-arbre optionnel de DN dans lequel une entrée peut être déplacée (doit " -"être dans le sous-arbre, mais peut ne pas encore exister)" - -msgid "Origin DN subtree" -msgstr "Sous-arbre des DN origines" - -msgid "" -"Optional DN subtree from where an entry can be moved (must be in the " -"subtree, but may not yet exist)" -msgstr "" -"Sous-arbre optionnel de DN dans lequel une entrée peut être déplacée (doit " -"être dans le sous-arbre, mais peut ne pas encore exister)" - -msgid "Target members of a group (sets memberOf targetfilter)" -msgstr "Membres cibles d'un groupe (définit « memberof » du filtre cible)" - -msgid "User group to apply permissions to (sets target)" -msgstr "" -"Groupe d'utilisateurs auquel appliquer les permissions (définit « target »)" - -msgid "Type of IPA object (sets subtree and objectClass targetfilter)" -msgstr "" -"Type d'objets IPA (définit le sous-arbre et le filtre cible de la classe " -"d'objets)" - -msgid "Add a system permission without an ACI (internal command)" -msgstr "Ajout d'une permission système sans ACI (commande interne)" - -msgid "Permission flags" -msgstr "Marqueurs de permission" +msgid "Request id" +msgstr "Identifiant de la demande" msgid "" "\n" @@ -6041,746 +6375,8 @@ msgstr "" " IPA server version 2.1.9. API version 2.20\n" " -----------------------------------------------------\n" -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 (using Bash\n" -" brace expansion):\n" -" ipa selfservice-add --permissions=write --attrs={street,postalCode,l,c," -"st} \"Users manage their own address\"\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones.\n" -" Add telephoneNumber to the list (using Bash brace expansion):\n" -" ipa selfservice-mod --attrs={street,postalCode,l,c,st,telephoneNumber} " -"\"Users manage their own address\"\n" -"\n" -" Display our updated rule:\n" -" 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" -"Permissions de libre service\n" -"\n" -"Une permission permet d'affiner une délégation de permissions. Les règles " -"ou\n" -"instructions de contrôle d'accès (ACI) accordent la permission de donner " -"les\n" -"permissions d'effectuer des tâches données comme ajouter un utilisateur,\n" -"modifier un groupe, etc.\n" -"\n" -"Une permission de libre service définit ce qu'un objet peut modifier dans " -"sa\n" -"propre entrée.\n" -"\n" -"\n" -"EXEMPLES :\n" -"\n" -" Ajouter une règle de libre service permettant aux utilisateurs de gérer\n" -"leurs adresses (avec les extensions entre accolades de Bash) :\n" -" ipa selfservice-add --permissions=write --attrs={street,postalCode,l,c," -"st} \"Users manage their own address\"\n" -"\n" -" En gérant les listes d'attributs, vous devez incorporer tous les attributs\n" -"dans la liste, y compris les existants.\n" -" Ajouter « telephoneNumber » à la liste (avec extension entre accolades " -"Bash) :\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" - -msgid "Permissions to grant (read, write). Default is write." -msgstr "Permissions à accorder (« read », « write »). Par défaut : « write »." - -msgid "Attributes to which the permission applies." -msgstr "Attributs auxquels les permissions s'appliquent." - -msgid "" -"Host category (semantics placed on this attribute are for local " -"interpretation)" -msgstr "" -"Catégorie d'hôte (les sémantiques associées à cet attribut vous sont propres)" - -msgid "Assigned ID View" -msgstr "Vue d'identifiants attribuée" - -msgid "Add certificates to host entry" -msgstr "Ajouter les certificats à l'entrée de l'hôte" - -msgid "" -"Allow users, groups, hosts or host groups to create a keytab of this host." -msgstr "" -"Autoriser des utilisateurs, hôtes ou groupes d'hôtes à créer un tableau de " -"clés de cet hôte." - -msgid "" -"Allow users, groups, hosts or host groups to retrieve a keytab of this host." -msgstr "" -"Autoriser des utilisateurs, hôtes ou groupes d'hôtes à récupérer un tableau " -"de clés de cet hôte." - -msgid "" -"Disallow users, groups, hosts or host groups to create a keytab of this host." -msgstr "" -"Interdire aux utilisateurs, hôtes ou groupes d'hôtes de créer un tableau de " -"clés de cet hôte." - -msgid "" -"Disallow users, groups, hosts or host groups to retrieve a keytab of this " -"host." -msgstr "" -"Interdire aux utilisateurs, hôtes ou groupes d'hôtes à récupérer un tableau " -"de clés de cet hôte." - -msgid "Remove certificates from host entry" -msgstr "Supprimer les certificats de l'entrée de l'hôte" - -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 --hbacsvcs=login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Delete an HBAC service group:\n" -" ipa hbacsvcgroup-del login\n" -msgstr "" -"\n" -"Groupes de services HBAC\n" -"\n" -"Les groupes de services HBAC peuvent contenir n'importe quel nombre de\n" -"services « membres » individuels. Chaque groupe doit avoir une description.\n" -"\n" -"EXEMPLES:\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 --hbacsvcs=login login\n" -"\n" -" Afficher les informations d'un groupe nommé :\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Supprimer un groupe de services HBAC :\n" -" ipa hbacsvcgroup-del login\n" - -msgid "HBAC services to add" -msgstr "Services HBAC à ajouter" - -msgid "HBAC services to remove" -msgstr "Services HBAC à supprimer" - -msgid "Permissions to grant(read, write, add, delete, all)" -msgstr "" -"Permissions à accorder (« read », « write », « add », « delete », « all »)" - -msgid "Attributes to which the permission applies" -msgstr "Attributs auxquels les permissions s'appliquent" - -msgid "Location of the ACI" -msgstr "Emplacement de l'ACI" - -msgid "Objectclasses used to search for user entries in DS" -msgstr "" -"Classes d'objets à utiliser pour la recherche d'entrées utilisateurs dans DS" - -msgid "Objectclasses used to search for group entries in DS" -msgstr "Classes d'objets à utiliser pour la recherche d'entrées groupe dans DS" - -msgid "Objectclasses to be ignored for user entries in DS" -msgstr "Classes d'objets à ignorer pour des entrées utilisateur dans DS" - -msgid "Attributes to be ignored for user entries in DS" -msgstr "Attributs à ignorer dans des entrées utilisateur dans DS" - -msgid "Objectclasses to be ignored for group entries in DS" -msgstr "Classes d'objets à ignorer pour les entrées groupe dans DS" - -msgid "Attributes to be ignored for group entries in DS" -msgstr "Attributs à ignorer dans les entrées groupe dans DS" - -msgid "CA certificate" -msgstr "Certificat d'AC" - -msgid "Load CA certificate of LDAP server from FILE" -msgstr "Charger le certificat de l'AC du serveur LDAP depuis FILE" - -msgid "Add to default group" -msgstr "Ajouter au groupe par défaut" - -msgid "Add migrated users without a group to a default group (default: true)" -msgstr "" -"Ajouter les utilisateurs migrés n'ayant pas de groupe à un groupe par défaut " -"(par défaut : vrai)" - -msgid "Search scope" -msgstr "Étendue de la recherche" - -msgid "" -"LDAP search scope for users and groups: base, onelevel, or subtree. Defaults " -"to onelevel" -msgstr "" -"Portée de recherche LDAP pour les utilisateurs et les groupes : base, " -"onelevel, ou subtree. Valeur par défaut : onelevel" - -msgid "groups to exclude from migration" -msgstr "groupes à exclure de la migration" - -msgid "users to exclude from migration" -msgstr "utilisateurs à exclure de la migration" - -msgid "Vault name" -msgstr "Nom du coffre-fort" - -msgid "Vault description" -msgstr "Description du coffre-fort" - -msgid "Vault type" -msgstr "Type de coffre-fort" - -msgid "Salt" -msgstr "Sel" - -msgid "Vault salt" -msgstr "Sel du coffre-fort" - -msgid "Public key" -msgstr "Clé publique" - -msgid "Vault public key" -msgstr "Clé publique du coffre-fort" - -msgid "Owner users" -msgstr "Utilisateurs propriétaires" - -msgid "Owner groups" -msgstr "Groupes propriétaires" - -msgid "Owner services" -msgstr "Services propriétaires" - -msgid "Failed owners" -msgstr "Propriétaires en échec" - -msgid "Vault service" -msgstr "Service du coffre-fort" - -msgid "Shared vault" -msgstr "Coffre-fort partagé" - -msgid "Vault user" -msgstr "Utilisateur du coffre-fort" - -msgid "Member services" -msgstr "Services membres" - -msgid "Transport Certificate" -msgstr "Certificat de transport" - -msgid "Service name of the service vault" -msgstr "Nom de service du service coffre" - -msgid "Username of the user vault" -msgstr "Nom d'utilisateur du coffre-fort personnel" - -msgid "Add members to a vault." -msgstr "Ajouter des membres à un coffre-fort." - -msgid "Add owners to a vault." -msgstr "Ajouter des propriétaires à un coffre-fort." - -msgid "Owners that could not be added" -msgstr "Propriétaires n'ayant pu être ajoutés" - -msgid "Number of owners added" -msgstr "Nombre de propriétaires ajoutés" - -msgid "Session key wrapped with transport certificate" -msgstr "Clé de session emballée avec le certificat de transport" - -msgid "Vault data encrypted with session key" -msgstr "Les données du coffre-fort sont chiffrées avec la clé de session" - -msgid "Nonce" -msgstr "Usage unique" - -msgid "Delete a vault." -msgstr "Supprimer un coffre-fort." - -msgid "Search for vaults." -msgstr "Rechercher des coffres-forts" - -msgid "List all service vaults" -msgstr "Énumérer tous les coffres-forts de services" - -msgid "List all user vaults" -msgstr "Énumérer tous les coffres-forts d'utilisateurs" - -msgid "Remove members from a vault." -msgstr "Supprimer les membres d'un coffre-fort." - -msgid "Remove owners from a vault." -msgstr "Supprimer les propriétaires d'un coffre-fort." - -msgid "Owners that could not be removed" -msgstr "Propriétaires n'ayant pu être supprimés" - -msgid "Number of owners removed" -msgstr "Nombre de propriétaires supprimés" - -msgid "Display information about a vault." -msgstr "Afficher des informations sur un coffre-fort." - -msgid "Show vault configuration." -msgstr "Afficher la configuration du coffre-fort." - -msgid "Output file to store the transport certificate" -msgstr "Fichier où stocker le certificat de transport" - -msgid "Add owners to a vault container." -msgstr "Ajouter des propriétaires à un conteneur de coffre-fort." - -msgid "Delete a vault container." -msgstr "Supprimer un conteneur de coffre-fort." - -msgid "Remove owners from a vault container." -msgstr "Supprimer des propriétaires d'un conteneur de coffre-fort." - -msgid "Display information about a vault container." -msgstr "Afficher les informations sur un conteneur de coffre-fort." - -msgid "Rebuild auto membership." -msgstr "Reconstruire les appartenances automatiques." - -msgid "Rebuild membership for all members of a grouping" -msgstr "Reconstruire l'appartenance pour tous les membres d'un groupe" - -msgid "Rebuild membership for specified users" -msgstr "Reconstruire l'appartenance pour les utilisateurs indiqués " - -msgid "Rebuild membership for specified hosts" -msgstr "Reconstruire l'appartenance pour les hôtes indiqués" - -msgid "No wait" -msgstr "Pas d'attente" - -msgid "Don't wait for rebuilding membership" -msgstr "Ne pas attendre pour reconstruire l'appartenance" - -msgid "" -"\n" -"Topology\n" -"\n" -"Management of a replication topology.\n" -"\n" -"Requires minimum domain level 1.\n" -msgstr "" -"\n" -"Topologie\n" -"\n" -"Gestion de la topologie de réplication.\n" -"\n" -"Nécessite a minima le niveau 1 de domaine.\n" - -msgid "Segment name" -msgstr "Nom de segment" - -msgid "Arbitrary string identifying the segment" -msgstr "Chaîne arbitraire identifiant le segment" - -msgid "Left node" -msgstr "Nœud de gauche" - -msgid "Left replication node - an IPA server" -msgstr "Nœud de réplication à gauche - un serveur IPA" - -msgid "Right node" -msgstr "Nœud de droite" - -msgid "Right replication node - an IPA server" -msgstr "Nœud de réplication à droite - un serveur IPA" - -msgid "Connectivity" -msgstr "Connectivité" - -msgid "Direction of replication between left and right replication node" -msgstr "" -"Direction de la réplication entre les nœuds gauche et droit de réplication" - -msgid "Attributes to strip" -msgstr "Attributs à supprimer" - -msgid "" -"A space separated list of attributes which are removed from replication " -"updates." -msgstr "" -"Une liste séparée par des espaces d'attributs qui seront supprimés lors des " -"mises à jour de la réplication." - -msgid "" -"Attributes that are not replicated to a consumer server during a fractional " -"update. E.g., `(objectclass=*) $ EXCLUDE accountlockout memberof" -msgstr "" -"Attributs qui ne seront pas répliqués vers un serveur consommateur lors " -"d'une réplication partielle. Par exemple, `(objectclass=*) $ EXCLUDE " -"accountlockout memberof" - -msgid "Attributes for total update" -msgstr "Attributs pour une mise à jour complète" - -msgid "" -"Attributes that are not replicated to a consumer server during a total " -"update. E.g. (objectclass=*) $ EXCLUDE accountlockout" -msgstr "" -"Les attributs qui ne sont pas répliqués vers un serveur consommateur pendant " -"une mise à jour complète. Par exemple : (objectclass=*) $ EXCLUDE " -"accountlockout" - -msgid "Session timeout" -msgstr "Délai d'expiration de la session" - -msgid "" -"Number of seconds outbound LDAP operations waits for a response from the " -"remote replica before timing out and failing" -msgstr "" -"Durée en secondes à attendre le bon achèvement des requêtes LDAP sortantes " -"de la part d'un replica distant avant mise en échec" - -msgid "Replication agreement enabled" -msgstr "Agrément de réplication activé" - -msgid "" -"Whether a replication agreement is active, meaning whether replication is " -"occurring per that agreement" -msgstr "" -"Activation ou non d'un agrément de réplication, signifiant que la " -"réplication fonctionne par le biais de cet agrément" - -msgid "Suffix name" -msgstr "Nom du suffixe" - -msgid "LDAP suffix to be managed" -msgstr "Suffixe LDAP qui sera géré" - -msgid "Add a new segment." -msgstr "Ajouter un noveau segment." - -msgid "Delete a segment." -msgstr "Supprimer un segment." - -msgid "Search for topology segments." -msgstr "Rechercher des segments de topologie." - -msgid "Modify a segment." -msgstr "Modifier un segment." - -msgid "" -"Request a full re-initialization of the node retrieving data from the other " -"node." -msgstr "" -"Demander une réinitialisation complète du nœud en récupérant les données " -"d'un autre nœud." - -msgid "Initialize left node" -msgstr "Initialiser le nœud de gauche" - -msgid "Initialize right node" -msgstr "Initialiser le nœud de droite" - -msgid "Stop already started refresh of chosen node(s)" -msgstr "Arrêter un rafraichissement en cours du ou des nœuds choisis." - -msgid "Display a segment." -msgstr "Afficher un segment." - -msgid "Add a new topology suffix to be managed." -msgstr "Ajouter un nouveau suffixe de topologie à gérer." - -msgid "Delete a topology suffix." -msgstr "Supprimer un suffixe de topologie." - -msgid "Search for topology suffices." -msgstr "Rechercher des suffixes de topologie." - -msgid "Modify a topology suffix." -msgstr "Modifier un suffixe de topologie." - -msgid "Show managed suffix." -msgstr "Afficher le suffixe géré." - -msgid "" -"\n" -"Manage CA ACL rules.\n" -"\n" -"This plugin is used to define rules governing which principals are\n" -"permitted to have certificates issued using a given certificate\n" -"profile.\n" -"\n" -"PROFILE ID SYNTAX:\n" -"\n" -"A Profile ID is a string without spaces or punctuation starting with a " -"letter\n" -"and followed by a sequence of letters, digits or underscore (\"_\").\n" -"\n" -"EXAMPLES:\n" -"\n" -" Create a CA ACL \"test\" that grants all users access to the\n" -" \"UserCert\" profile:\n" -" ipa caacl-add test --usercat=all\n" -" ipa caacl-add-profile test --certprofiles UserCert\n" -"\n" -" Display the properties of a named CA ACL:\n" -" ipa caacl-show test\n" -"\n" -" Create a CA ACL to let user \"alice\" use the \"DNP3\" profile:\n" -" ipa caacl-add-profile alice_dnp3 --certprofiles DNP3\n" -" ipa caacl-add-user alice_dnp3 --user=alice\n" -"\n" -" Disable a CA ACL:\n" -" ipa caacl-disable test\n" -"\n" -" Remove a CA ACL:\n" -" ipa caacl-del test\n" -msgstr "" -"\n" -"Gestion des règles de LCA de l'AC.\n" -"\n" -"Ce grffon est utilisé pour définir les règles gouvernant quels principaux \n" -"sont autorisés à se voir attribuer des certificats à l'aide d'un profil\n" -"donné de certificat.\n" -"\n" -"SYNTAXE D'IDENTIFIANT DE PROFIL :\n" -"\n" -"Un identifiant de profil est une chaîne sans espace ni ponctuation débutant " -"par\n" -"une lettre et suivie d'une séquence de lettres, chiffres, ou caractère " -"souligné (\"_\").\n" -"\n" -"EXEMPLES :\n" -"\n" -" Créer une LCA d'AC « test » autorisant tous les utilisateurs à accéder \n" -" au profil « UserCert » :\n" -" ipa caacl-add test --usercat=all\n" -" ipa caacl-add-profile test --certprofiles UserCert\n" -"\n" -" Afficher les propriétés d'une LCA d'AC nommée :\n" -" ipa caacl-show test\n" -"\n" -" Créer une LCA d'AC autorisant l'utilisatrice « alice » à utiliser le " -"profile « DNP3 » :\n" -" ipa caacl-add-profile alice_dnp3 --certprofiles DNP3\n" -" ipa caacl-add-user alice_dnp3 --user=alice\n" -"\n" -" Désactiver une LCA d'AC :\n" -" ipa caacl-disable test\n" -"\n" -" Supprimer une LCA d'AC :\n" -" ipa caacl-del test\n" - -msgid "ACL name" -msgstr "Nom de la LCA" - -msgid "Profile category" -msgstr "Catégorie de profil" - -msgid "Profile category the ACL applies to" -msgstr "Catégorie de profil à laquelle la LCA s'applique" - -msgid "User category the ACL applies to" -msgstr "Catégorie d'utilisateur à laquelle la LCA s'applique" - -msgid "Host category the ACL applies to" -msgstr "Catégorie d'hôte à laquelle la LCA s'applique" - -msgid "Service category the ACL applies to" -msgstr "Catégorie de service à laquelle la LCA s'applique" - -msgid "Profiles" -msgstr "Profils" - -msgid "Create a new CA ACL." -msgstr "Créer une nouvelle LCA d'AC." - -msgid "Add target hosts and hostgroups to a CA ACL." -msgstr "Ajouter des hôtes cibles et groupes d'hôtes à une LCA d'AC." - -msgid "Add profiles to a CA ACL." -msgstr "Ajouter des profils à une LCA d'AC." - -msgid "Add services to a CA ACL." -msgstr "Ajouter des services à une LCA d'AC." - -msgid "Add users and groups to a CA ACL." -msgstr "Ajouter des utilisateurs et groupes à une LCA d'AC." - -msgid "Delete a CA ACL." -msgstr "Supprimer une LCA d'AC." - -msgid "Disable a CA ACL." -msgstr "Désactiver une LCA d'AC." - -msgid "Enable a CA ACL." -msgstr "Activer une LCA d'AC." - -msgid "Search for CA ACLs." -msgstr "Rechercher des LCA d'AC." - -msgid "Modify a CA ACL." -msgstr "Modifier une LCA d'AC." - -msgid "Remove target hosts and hostgroups from a CA ACL." -msgstr "Retirer des utilisateurs et groupes d'une LCA d'AC." - -msgid "Remove profiles from a CA ACL." -msgstr "Retirer des profils d'une LCA d'AC." - -msgid "Remove services from a CA ACL." -msgstr "Retirer des services d'une LCA d'AC." - -msgid "Remove users and groups from a CA ACL." -msgstr "Retirer des utilisateurs et groupes d'une LCA d'AC." - -msgid "Display the properties of a CA ACL." -msgstr "Afficher les propriétés d'une LCA d'AC." - -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 --group=managers --" -"membergroup=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 --attrs=postalCode --group=managers --" -"membergroup=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" -"Délégation de groupe à groupe\n" -"\n" -"Une permission permet une délégation fine des autorisations. Les règles de\n" -"contrôle d'accès, ou les instructions (ACI), accordent la possibilité aux\n" -"permissions de réaliser certaines tâches comme l'ajout d'utilisateur, la\n" -"modification d'un groupe, etc.\n" -"\n" -"La délégation de groupe à groupe permet aux membres d'un groupe de modifier\n" -"un jeu d'attributs de membres d'un autre groupe.\n" -"\n" -"EXEMPLES:\n" -"\n" -" Ajouter une règle de délégation permettant aux gestionnaires de modifier\n" -" les adresses des employés :\n" -" ipa delegation-add --attrs=street --group=managers --" -"membergroup=employees \"managers edit employees' street\"\n" -"\n" -" En gérant une liste d'attributs, vous devez inclure tous les attributs,\n" -" y compris les existants. Ajouter « postalCode » à la liste :\n" -" ipa delegation-mod --attrs=street --attrs=postalCode --group=managers --" -"membergroup=employees \"managers edit employees' street\"\n" -"\n" -" Afficher la règle modifiée :\n" -" ipa delegation-show \"managers edit employees' street\"\n" -"\n" -" Supprimer une règle :\n" -" ipa delegation-del \"managers edit employees' street\"\n" - -msgid "Attributes to which the delegation applies" -msgstr "Attributs auxquels la délégation s'applique" - -msgid "Kerberos principal expiration" -msgstr "Expiration du principal Kerberos" - -msgid "User authentication types" -msgstr "Types d'authentification utilisateur" - -msgid "Types of supported user authentication" -msgstr "Types d'authentification utilisateur pris en charge" - -msgid "" -"User category (semantics placed on this attribute are for local " -"interpretation)" -msgstr "" -"Catégorie d'utilisateurs (la sémantique associée à cet attribut est " -"interprétée localement)" - -msgid "RADIUS proxy configuration" -msgstr "Configuration du serveur mandataire RADIUS" - -msgid "RADIUS proxy username" -msgstr "Nom d'utilisateur sur serveur mandataire RADIUS" - -msgid "Department Number" -msgstr "Numéro du service" - -msgid "Employee Number" -msgstr "Matricule" - -msgid "Employee Type" -msgstr "Type d'employé" - -msgid "Preferred Language" -msgstr "Langue préférée" - -msgid "Preserved user" -msgstr "Utilisateurs préservés" - -msgid "Add one or more certificates to the user entry" -msgstr "Ajouter un ou plusieurs certificats à l'entrée utilisateur" - -msgid "Remove one or more certificates to the user entry" -msgstr "Supprimer les certificats de l'entrée de l'utilisateur" - -msgid "Move deleted user into staged area" -msgstr "Déplacer l'utilisateur supprimé dans l'espace en attente" - -msgid "Undelete a delete user account." -msgstr "Restaurer un compte utilisateur supprimé." +msgid "Ping a remote server." +msgstr "« Ping » sur un serveur distant." msgid "" "\n" @@ -6964,9 +6560,46 @@ msgstr "" "\n" " ipa group-show ad_admins_external\n" +msgid "GID (use this option to set it manually)" +msgstr "GID (utiliser cette option pour le définir manuellement)" + +msgid "Indirect Member users" +msgstr "Utilisateurs membres indirects" + +msgid "Indirect Member groups" +msgstr "Groupes membres indirects" + +msgid "Create a new group." +msgstr "Créer un nouveau groupe." + +msgid "Create as a non-POSIX group" +msgstr "Créer en tant que groupe non-POSIX" + +msgid "Allow adding external non-IPA members from trusted domains" +msgstr "" +"Autoriser l'ajout de membres externes non-IPA depuis des domaines approuvés" + +msgid "Add members to a group." +msgstr "Ajouter des membres à un groupe." + +msgid "External member" +msgstr "Membre externe" + msgid "Members of a trusted domain in DOM\\name or name@domain form" msgstr "Membres d'un domaine approuvé sous la forme DOM\\nom ou nom@domaine" +msgid "Delete group." +msgstr "Supprimer un groupe." + +msgid "Detach a managed group from a user." +msgstr "Détacher un groupe administré d'un utilisateur." + +msgid "Search for groups." +msgstr "Rechercher des groupes." + +msgid "search for private groups" +msgstr "rechercher des groupes privés" + msgid "search for POSIX groups" msgstr "rechercher des groupes POSIX" @@ -6980,604 +6613,86 @@ msgstr "" msgid "search for non-POSIX groups" msgstr "rechercher des groupes non-POSIX" -msgid "" -"\n" -"Realm domains\n" -"\n" -"Manage the list of domains associated with IPA realm.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Display the current list of realm domains:\n" -" ipa realmdomains-show\n" -"\n" -" Replace the list of realm domains:\n" -" ipa realmdomains-mod --domain=example.com\n" -" ipa realmdomains-mod --domain={example1.com,example2.com,example3.com}\n" -"\n" -" Add a domain to the list of realm domains:\n" -" ipa realmdomains-mod --add-domain=newdomain.com\n" -"\n" -" Delete a domain from the list of realm domains:\n" -" ipa realmdomains-mod --del-domain=olddomain.com\n" -msgstr "" -"\n" -"Domaines du royaume\n" -"\n" -"Gérer la liste des domaines associés au royaume IPA.\n" -"\n" -"EXEMPLES:\n" -"\n" -" Afficher la liste actuelle des domaines du royaume :\n" -" ipa realmdomains-show\n" -"\n" -" Remplacer la liste des domaines du royaume :\n" -" ipa realmdomains-mod --domain=example.com\n" -" ipa realmdomains-mod --domain={example1.com,example2.com,example3.com}\n" -"\n" -" Ajouter un domaine à la liste des domaines du royaume :\n" -" ipa realmdomains-mod --add-domain=newdomain.com\n" -"\n" -" Supprimer un domaine de la liste des domaines du royaume :\n" -" ipa realmdomains-mod --del-domain=olddomain.com\n" - -msgid "Add domain" -msgstr "Ajouter un domaine" - -msgid "Delete domain" -msgstr "Supprimer un domaine" - -msgid "Modify realm domains." -msgstr "Modifier les domaines du royaume." - -msgid "Force adding domain even if not in DNS" -msgstr "Forcer l'ajout d'un domaine même si absent des DNS" - -msgid "Display the list of realm domains." -msgstr "Afficher la liste des domaines du royaume." - -msgid "OTP" -msgstr "OTP" - -msgid "One Time Password" -msgstr "Mots de passe à usage unique" - -msgid "Server name" -msgstr "Nom du serveur" - -msgid "IPA server hostname" -msgstr "Nom d'hôte du serveur IPA" - -msgid "Managed suffix" -msgstr "Suffixe administré" - -msgid "Min domain level" -msgstr "Niveau de domaine mini" - -msgid "Minimum domain level" -msgstr "Niveau de domaine minimal" - -msgid "Max domain level" -msgstr "Niveau de domaine maxi" - -msgid "Maximum domain level" -msgstr "Niveau de domaine maximal" - -msgid "Delete IPA server." -msgstr "Supprimer un serveur IPA." - -msgid "Search for IPA servers." -msgstr "Rechercher des serveurs IPA." - -msgid "Show IPA server." -msgstr "Afficher les informations sur le serveur IPA." - -msgid "" -"\n" -"RADIUS Proxy Servers\n" -"\n" -"Manage RADIUS Proxy Servers.\n" -"\n" -"IPA supports the use of an external RADIUS proxy server for krb5 OTP\n" -"authentications. This permits a great deal of flexibility when\n" -"integrating with third-party authentication services.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new server:\n" -" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" -"\n" -" Find all servers whose entries include the string \"example.com\":\n" -" ipa radiusproxy-find example.com\n" -"\n" -" Examine the configuration:\n" -" ipa radiusproxy-show MyRADIUS\n" -"\n" -" Change the secret:\n" -" ipa radiusproxy-mod MyRADIUS --secret\n" -"\n" -" Delete a configuration:\n" -" ipa radiusproxy-del MyRADIUS\n" -msgstr "" -"\n" -"RADIUS Proxy Servers\n" -"\n" -"Gestion des serveurs mandataires RADIUS.\n" -"\n" -"IPA prend en charge l'utilisation d'un serveur mandataire externe RADIUS\n" -"pour des authentifications OTP « krb5 ». Cela procure une grande souplesse\n" -"pour l'intégration des services d'authentification tierce partie.\n" -"\n" -"\n" -"EXEMPLES:\n" -"\n" -" Ajouter un nouveau serveur :\n" -" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" -"\n" -" Rechercher tous les serveurs dont les entrées incluent la chaîne « example." -"com » :\n" -" ipa radiusproxy-find example.com\n" -"\n" -" Afficher la configuration:\n" -" ipa radiusproxy-show MyRADIUS\n" -"\n" -" Modifier le secret:\n" -" ipa radiusproxy-mod MyRADIUS --secret\n" -"\n" -" Supprimer la configuration:\n" -" ipa radiusproxy-del MyRADIUS\n" - -msgid "RADIUS proxy server name" -msgstr "Nom du serveur mandataire RADIUS" - -msgid "A description of this RADIUS proxy server" -msgstr "Description de ce serveur mandataire RADIUS" - -msgid "Server" -msgstr "Serveur" - -msgid "The hostname or IP (with or without port)" -msgstr "Nom d'hôte ou adresse IP (avec ou sans port)" - -msgid "Secret" -msgstr "Secret" - -msgid "The secret used to encrypt data" -msgstr "Secret utilisé pour chiffrer les données" - -msgid "Timeout" -msgstr "Délai d'expiration" - -msgid "The total timeout across all retries (in seconds)" -msgstr "Délai d'expiration total pour toutes les tentatives (en secondes)" - -msgid "Retries" -msgstr "Tentatives" - -msgid "The number of times to retry authentication" -msgstr "Le nombre de fois autorisées pour tenter une authentification" - -msgid "User attribute" -msgstr "Attribut utilisateur" - -msgid "The username attribute on the user object" -msgstr "L'attribut de nom d'utilisateur de l'objet utilisateur" - -msgid "Add a new RADIUS proxy server." -msgstr "Ajouter un nouveau serveur mandataire RADIUS." - -msgid "Delete a RADIUS proxy server." -msgstr "Supprimer un serveur mandataire RADIUS." - -msgid "Search for RADIUS proxy servers." -msgstr "Rechercher des serveurs mandataires RADIUS." - -msgid "Modify a RADIUS proxy server." -msgstr "Modifier un serveur mandataire RADIUS" - -msgid "Display information about a RADIUS proxy server." -msgstr "Afficher les informations sur un serveur mandataire RADIUS." - -msgid "Profile ID" -msgstr "ID de profil" - -msgid "Profile ID for referring to this profile" -msgstr "Identifiant de profil" - -msgid "Profile description" -msgstr "Description de profil" - -msgid "Brief description of this profile" -msgstr "Brève description de ce profil" - -msgid "Store issued certificates" -msgstr "Stocker les certificats émis" - -msgid "Whether to store certs issued using this profile" -msgstr "Stocker ou non les certificats émis à partir de ce profil" - -msgid "Delete a Certificate Profile." -msgstr "Supprimer un profil de certificat." - -msgid "Search for Certificate Profiles." -msgstr "Rechercher des profils de certificats." - -msgid "Results should contain primary key attribute only (\"id\")" +msgid "Results should contain primary key attribute only (\"group-name\")" msgstr "" "Les résultats doivent uniquement contenir un attribut de clé principale " -"(« id »)" +"(« group-name »)" -msgid "Import a Certificate Profile." -msgstr "Importer un profil de certificat." +msgid "Modify a group." +msgstr "Modifier un groupe." -msgid "Filename of a raw profile. The XML format is not supported." -msgstr "Nom de fichier du profil brut. Le format XML n'est pas pris en charge." +msgid "change to a POSIX group" +msgstr "Transformer en groupe POSIX" -msgid "Modify Certificate Profile configuration." -msgstr "Modifier la configuration d'un profil de certificat." +msgid "change to support external non-IPA members from trusted domains" +msgstr "" +"modifier afin de permettre une prise en charge des membres externes non-IPA " +"depuis des domaines approuvés" -msgid "File containing profile configuration" -msgstr "Fichier contenant la configuration du profil" +msgid "Rename the group object" +msgstr "Renommer l'objet groupe" -msgid "Display the properties of a Certificate Profile." -msgstr "Afficher les propriétés d'un profil de certificat." +msgid "Remove members from a group." +msgstr "Supprimer des membres d'un groupe." -msgid "Write profile configuration to file" -msgstr "Écrire le profil de configuration dans un fichier" - -msgid "privileges" -msgstr "privilèges" +msgid "Display information about a named group." +msgstr "Afficher les informations d'un groupe nommé." msgid "" "\n" -"OTP configuration\n" +"Sudo Commands\n" "\n" -"Manage the default values that IPA uses for OTP tokens.\n" +"Commands used as building blocks for sudo\n" "\n" "EXAMPLES:\n" "\n" -" Show basic OTP configuration:\n" -" ipa otpconfig-show\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" "\n" -" Show all OTP configuration options:\n" -" ipa otpconfig-show --all\n" -"\n" -" Change maximum TOTP authentication window to 10 minutes:\n" -" ipa otpconfig-mod --totp-auth-window=600\n" -"\n" -" Change maximum TOTP synchronization window to 12 hours:\n" -" ipa otpconfig-mod --totp-sync-window=43200\n" -"\n" -" Change maximum HOTP authentication window to 5:\n" -" ipa hotpconfig-mod --hotp-auth-window=5\n" -"\n" -" Change maximum HOTP synchronization window to 50:\n" -" ipa hotpconfig-mod --hotp-sync-window=50\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" msgstr "" "\n" -"Configuration OTP\n" +"Commandes sudo\n" "\n" -"Gestion des valeurs par défaut utilisées par IPA pour les jetons OTP.\n" -"\n" -"EXEMPLES :\n" -"\n" -" Afficher la configuration de base OTP :\n" -" ipa otpconfig-show\n" -"\n" -" Afficher toutes les options de configuration OTP :\n" -" ipa otpconfig-show --all\n" -"\n" -" Modifier la fenêtre maximale d'authentification TOTP à 10 minutes :\n" -" ipa otpconfig-mod --totp-auth-window=600\n" -"\n" -" Modifier la fenêtre maximale d'authentification TOTP à 12 heures :\n" -" ipa otpconfig-mod --totp-sync-window=43200\n" -"\n" -" Modifier la fenêtre maximale d'authentification HOTP à 5 :\n" -" ipa hotpconfig-mod --hotp-auth-window=5\n" -"\n" -" Modifier la fenêtre maximale d'authentification HOTP à 50 :\n" -" ipa hotpconfig-mod --hotp-sync-window=50\n" - -msgid "TOTP authentication Window" -msgstr "Fenêtre d'authentification TOTP" - -msgid "TOTP authentication time variance (seconds)" -msgstr "Durée de la fenêtre d'authentification TOTP (secondes)" - -msgid "TOTP Synchronization Window" -msgstr "Fenêtre de synchronisation TOTP" - -msgid "TOTP synchronization time variance (seconds)" -msgstr "Variance temporelle de synchronisation TOTP (secondes)" - -msgid "HOTP Authentication Window" -msgstr "Fenêtre d'authentification HOTP" - -msgid "HOTP authentication skip-ahead" -msgstr "passage d'occurrence d'authentification HOTP" - -msgid "HOTP Synchronization Window" -msgstr "Fenêtre de synchronisation HOTP" - -msgid "HOTP synchronization skip-ahead" -msgstr "passage d'occurrence de synchronisation HOTP" - -msgid "Modify OTP configuration options." -msgstr "Modifier les options de configuration OTP." - -msgid "Show the current OTP configuration." -msgstr "Afficher la configuration OTP actuelle." - -msgid "" -"\n" -"OTP Tokens\n" -"\n" -"Manage OTP tokens.\n" -"\n" -"IPA supports the use of OTP tokens for multi-factor authentication. This\n" -"code enables the management of OTP tokens.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new token:\n" -" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" -"\n" -" Examine the token:\n" -" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" -"\n" -" Change the vendor:\n" -" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" -"\"\n" -"\n" -" Delete a token:\n" -" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" -msgstr "" -"\n" -"Jetons OTP\n" -"\n" -"Configuration des jetons OTP.\n" -"\n" -"IPA prend en charge l'utilisation de jetons OTP pour une authentification\n" -"à facteurs multiples. Ce code active la gestion des jetons OTP.\n" +"Commandes utilisées en tant que briques de base pour sudo\n" "\n" "EXEMPLES :\n" "\n" -" Ajouter un nouveau jeton :\n" -" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" +" Ajouter une nouvelle commande\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" "\n" -" Examiner un jeton :\n" -" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" -"\n" -" Modifier le fournisseur :\n" -" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" -"\"\n" -"\n" -" Supprimer un jeton :\n" -" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" +" Supprimer une commande\n" +" ipa sudocmd-del /usr/bin/less\n" -msgid "Unique ID" -msgstr "ID unique" +msgid "Sudo Command" +msgstr "Commande sudo" -msgid "Type of the token" -msgstr "Type du jeton" +msgid "A description of this command" +msgstr "Description de la commande" -msgid "Token description (informational only)" -msgstr "Description du jeton (à titre d'information)" +msgid "Create new Sudo Command." +msgstr "Créer une nouvelle commande sudo." -msgid "Owner" -msgstr "Propriétaire" +msgid "Delete Sudo Command." +msgstr "Supprimer une commande sudo." -msgid "Assigned user of the token (default: self)" -msgstr "Utilisateur assigné au jeton (par défaut : soi-même)" +msgid "Search for Sudo Commands." +msgstr "Rechercher des commandes sudo." -msgid "Assigned manager of the token (default: self)" -msgstr "Administrateur assigné au jeton (par défaut : soi-même)" - -msgid "Disabled" -msgstr "Désactivé" - -msgid "Mark the token as disabled (default: false)" -msgstr "Marquer le jeton comme désactivé (par défaut : faux, false)" - -msgid "Validity start" -msgstr "Départ de validation" - -msgid "First date/time the token can be used" -msgstr "Date et heure à partir desquels le jeton peut être utilisé" - -msgid "Validity end" -msgstr "Fin de validation" - -msgid "Last date/time the token can be used" -msgstr "Date et heure au delà desquels le jeton ne peut plus être utilisé" - -msgid "Vendor" -msgstr "Fournisseur" - -msgid "Token vendor name (informational only)" -msgstr "Nom du fabricant du jeton (à titre d'information)" - -msgid "Model" -msgstr "Modèle" - -msgid "Token model (informational only)" -msgstr "Modèle du jeton (à titre d'information)" - -msgid "Serial" -msgstr "Numéro de série" - -msgid "Token serial (informational only)" -msgstr "Numéro de série du jeton (à titre d'information)" - -msgid "Token secret (Base32; default: random)" -msgstr "Secret du jeton (Base32 ; par défaut : aléatoire)" - -msgid "Token hash algorithm" -msgstr "Algorithme de hachage du jeton" - -msgid "Digits" -msgstr "Chiffres" - -msgid "Number of digits each token code will have" -msgstr "Nombre de chiffres des codes du jeton" - -msgid "Clock offset" -msgstr "Décalage d'horloge" - -msgid "TOTP token / FreeIPA server time difference" -msgstr "Différence entre le jeton TOTP et le serveur FreeIPA" - -msgid "Clock interval" -msgstr "Intervalle d'horloge" - -msgid "Length of TOTP token code validity" -msgstr "Durée de validité du code du jeton TOTP" - -msgid "Counter" -msgstr "Compteur" - -msgid "Add a new OTP token." -msgstr "Ajouter un nouveau jeton OTP" - -msgid "(deprecated)" -msgstr "(obsolète)" - -msgid "Do not display QR code" -msgstr "Ne pas afficher le code QR" - -msgid "Add users that can manage this token." -msgstr "Ajouter des utilisateurs pouvant gérer ce jeton." - -msgid "Delete an OTP token." -msgstr "Supprimer un jeton OTP" - -msgid "Search for OTP token." -msgstr "Rechercher un jeton OTP" - -msgid "Modify a OTP token." -msgstr "Modifier un jeton OTP" - -msgid "Rename the OTP token object" -msgstr "Renommer l'objet jeton OTP" - -msgid "Remove users that can manage this token." -msgstr "Supprimer des utilisateurs pouvant gérer ce jeton." - -msgid "Display information about an OTP token." -msgstr "Afficher des informations au sujet du jeton OTP" - -msgid "" -"\n" -"Groups of hosts.\n" -"\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" -"\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" -"\n" -" Add members to the hostgroup (using Bash brace expansion):\n" -" ipa hostgroup-add-member --hosts={box1,box2,box3} baltimore\n" -"\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" -"\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" -"\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" -"\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" +msgid "Results should contain primary key attribute only (\"command\")" msgstr "" -"\n" -"Groupes d'hôtes.\n" -"\n" -"Gestion des groupes d'hôtes. Permet d'appliquer des contrôles d'accès\n" -"à plusieurs hôtes en utilisant HBAC (Host-based Access Control).\n" -"\n" -"EXEMPLES :\n" -"\n" -" Ajouter un nouveau groupe d'hôtes :\n" -" ipa hostgroup-add --desc=\"Systèmes de Baltimore\" baltimore\n" -"\n" -" Ajouter un nouveau groupe d'hôtes :\n" -" ipa hostgroup-add --desc=\"Systèmes du Maryland\" maryland\n" -"\n" -" Ajouter des membres à un groupe d'hôtes :\n" -" ipa hostgroup-add-member --hosts={box1,box2,box3} baltimore\n" -"\n" -" Ajouter un groupe d'hôtes en tant que membre d'un autre groupe d'hôtes :\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" -"\n" -" Supprimer un hôte d'un groupe :\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" -"\n" -" Afficher un groupe d'hôtes :\n" -" ipa hostgroup-show baltimore\n" -"\n" -" Supprimer un groupe d'hôtes :\n" -" ipa hostgroup-del baltimore\n" +"Les résultats doivent uniquement contenir un attribut de clé principale " +"(« command »)" -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 --users=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" -"Groupes réseau\n" -"\n" -"Un groupe réseau est un groupe utilisé pour la vérification des droits.\n" -"Il peut contenir à la fois des valeurs utilisateur et hôte.\n" -"\n" -"EXEMPLES :\n" -"\n" -" Ajouter un nouveau groupe réseau :\n" -" ipa netgroup-add --desc=\"NFS admins\" admins\n" -"\n" -" Ajouter des membres au groupe réseau :\n" -" ipa netgroup-add-member --users=tuser1 --users=tuser2 admins\n" -"\n" -" Retirer un membre du groupe réseau :\n" -" ipa netgroup-remove-member --users=tuser2 admins\n" -"\n" -" Afficher les informations sur un groupe réseau :\n" -" ipa netgroup-show admins\n" -"\n" -" Supprimer un groupe réseau :\n" -" ipa netgroup-del admins\n" +msgid "Modify Sudo Command." +msgstr "Modifier une commande sudo." -msgid "netgroups to add" -msgstr "Groupes réseau à ajouter" +msgid "Display Sudo Command." +msgstr "Afficher une commande sudo." -msgid "netgroups to remove" -msgstr "Groupes réseau à supprimer" +msgid "Global forwarders" +msgstr "Redirecteurs globaux" msgid "" "Global forwarders. A custom port can be specified for each forwarder using a " @@ -7586,6 +6701,48 @@ msgstr "" "Redirecteurs globaux. Un port personnalisé peut être indiqué pour chaque " "redirecteur en utilisant le format standard « adresse_IP port PORT »" +msgid "Forward policy" +msgstr "Politique de redirection" + +msgid "" +"Global forwarding policy. Set to \"none\" to disable any configured global " +"forwarders." +msgstr "" +"Politique globale de redirection. Mettre à « none » pour désactiver tout " +"redirecteur global configuré." + +msgid "Allow PTR sync" +msgstr "Autoriser la synchronisation PTR" + +msgid "Allow synchronization of forward (A, AAAA) and reverse (PTR) records" +msgstr "" +"Autoriser la synchronisation des enregistrements directs (A, AAAA) et " +"inverses (PTR)" + +msgid "Zone refresh interval" +msgstr "Intervalle de rafraîchissement de zone" + +msgid "Zone name" +msgstr "Nom de zone" + +msgid "Zone name (FQDN)" +msgstr "Nom de zone (FQDN)" + +msgid "Reverse zone IP network" +msgstr "Réseau IP de zone inverse" + +msgid "IP network to create reverse zone name from" +msgstr "Réseau IP pour lequel créer un nom de zone inverse" + +msgid "Active zone" +msgstr "Zone active" + +msgid "Is zone active?" +msgstr "La zone est-elle active ?" + +msgid "Zone forwarders" +msgstr "Redirection de zone" + msgid "" "Per-zone forwarders. A custom port can be specified for each forwarder using " "a standard format \"IP_ADDRESS port PORT\"" @@ -7593,30 +6750,138 @@ msgstr "" "Redirecteurs par zone. Un port personnalisé peut être indiqué pour chaque " "redirecteur avec le format standard « adresse_IP port PORT »" +msgid "" +"Per-zone conditional forwarding policy. Set to \"none\" to disable " +"forwarding to global forwarder for this zone. In that case, conditional zone " +"forwarders are disregarded." +msgstr "" +"Politique de redirection conditionnelle par zone. Mettre à « none » pour " +"désactiver la redirection vers un redireteur global pour cette zone. Dans ce " +"cas, les redirecteurs de zone conditionnels sont ignorés." + +msgid "Record name" +msgstr "Nom d'enregistrement" + +msgid "Time to live" +msgstr "Durée de vie" + +msgid "Records" +msgstr "Enregistrements" + +msgid "Record type" +msgstr "Type d'enregistrement" + +msgid "Record data" +msgstr "Données d'enregistrement" + +msgid "A record" +msgstr "Enregistrement A" + msgid "Raw A records" msgstr "Enregistrements A bruts" +msgid "A IP Address" +msgstr "A Adresse IP" + +msgid "A Create reverse" +msgstr "A Créer un enregistrement inverse" + +msgid "Create reverse record for this IP Address" +msgstr "Créer l'enregistrement inverse pour cette adresse IP" + +msgid "AAAA record" +msgstr "Enregistrement AAAA" + msgid "Raw AAAA records" msgstr "Enregistrements AAAA bruts" +msgid "AAAA IP Address" +msgstr "AAAA Adresse IP" + +msgid "AAAA Create reverse" +msgstr "AAAA Créer un enregistrement inverse" + +msgid "A6 record" +msgstr "Enregistrement A6" + msgid "Raw A6 records" msgstr "Enregistrements A6 bruts" +msgid "A6 Record data" +msgstr "Données d'enregistrement A6" + +msgid "AFSDB record" +msgstr "Enregistrement AFSDB" + msgid "Raw AFSDB records" msgstr "Enregistrements AFSDB bruts" +msgid "AFSDB Subtype" +msgstr "Sous-type AFSDB" + +msgid "Subtype" +msgstr "Sous-type" + +msgid "AFSDB Hostname" +msgstr "Nom d'hôte AFSDB" + +msgid "Hostname" +msgstr "Nom d'hôte" + +msgid "APL record" +msgstr "Enregistrement APL" + msgid "Raw APL records" msgstr "Enregistrements APL bruts" +msgid "CERT record" +msgstr "Enregistrement CERT" + msgid "Raw CERT records" msgstr "Enregistrements CERT bruts" +msgid "CERT Certificate Type" +msgstr "Type de certificat CERT" + +msgid "Certificate Type" +msgstr "Type de certificat" + +msgid "CERT Key Tag" +msgstr "Étiquette de clé CERT" + +msgid "Key Tag" +msgstr "Étiquette de clé" + +msgid "CERT Algorithm" +msgstr "Algorithme CERT" + +msgid "CERT Certificate/CRL" +msgstr "Certificat/CRL CERT" + +msgid "Certificate/CRL" +msgstr "Certificat/CRL" + +msgid "CNAME record" +msgstr "Enregistrement CNAME" + msgid "Raw CNAME records" msgstr "Enregistrements CNAME bruts" +msgid "CNAME Hostname" +msgstr "Nom d'hôte CNAME" + +msgid "A hostname which this alias hostname points to" +msgstr "Un nom d'hôte vers lequel cet alias pointe" + +msgid "DHCID record" +msgstr "Enregistrement DHCID" + msgid "Raw DHCID records" msgstr "Enregistrements DHCID bruts" +msgid "DLV record" +msgstr "Enregistrement DLV" + msgid "Raw DLV records" msgstr "Enregistrements DLV bruts" @@ -7629,63 +6894,318 @@ msgstr "Algorithme DLV" msgid "DLV Digest Type" msgstr "Type de condensé DLV" +msgid "Digest Type" +msgstr "Type de condensé" + msgid "DLV Digest" msgstr "Condensé DLV" +msgid "Digest" +msgstr "Condensé" + +msgid "DNAME record" +msgstr "Enregistrement DNAME" + msgid "Raw DNAME records" msgstr "Enregistrements DNAME bruts" +msgid "DNAME Target" +msgstr "Cible DNAME" + +msgid "Target" +msgstr "Cible" + +msgid "DS record" +msgstr "Enregistrement DS" + msgid "Raw DS records" msgstr "Enregistrements DS bruts" +msgid "DS Key Tag" +msgstr "Étiquette de clé DS" + +msgid "DS Algorithm" +msgstr "Algorithme DS" + +msgid "DS Digest Type" +msgstr "Type de condensé DS" + +msgid "DS Digest" +msgstr "Condensé DS" + +msgid "HIP record" +msgstr "Enregistrement HIP" + msgid "Raw HIP records" msgstr "Enregistrements HIP bruts" +msgid "IPSECKEY record" +msgstr "Enregistrement IPSECKEY" + msgid "Raw IPSECKEY records" msgstr "Enregistrements IPSECKEY bruts" +msgid "KEY record" +msgstr "Enregistrement KEY" + msgid "Raw KEY records" msgstr "Enregistrements KEY bruts" +msgid "KX record" +msgstr "Enregistrement KX" + msgid "Raw KX records" msgstr "Enregistrements KX bruts" +msgid "KX Preference" +msgstr "Préférence KX" + +msgid "Preference given to this exchanger. Lower values are more preferred" +msgstr "" +"Préférence donnée à cet échangeur. Les plus petites valeurs sont les " +"premières choisies" + +msgid "KX Exchanger" +msgstr "Échangeur KX" + +msgid "A host willing to act as a key exchanger" +msgstr "Un hôte prêt à jouer le rôle de changeur de clé" + +msgid "LOC record" +msgstr "Enregistrement LOC" + msgid "Raw LOC records" msgstr "Enregistrements LOC bruts" +msgid "LOC Degrees Latitude" +msgstr "Degrés de latitude LOC" + +msgid "Degrees Latitude" +msgstr "Degrés de latitude" + +msgid "LOC Minutes Latitude" +msgstr "Minutes de latitude LOC" + +msgid "Minutes Latitude" +msgstr "Minutes de latitude" + +msgid "LOC Seconds Latitude" +msgstr "Secondes de latitude LOC" + +msgid "Seconds Latitude" +msgstr "Secondes de latitude" + +msgid "LOC Direction Latitude" +msgstr "Direction de latitude LOC" + +msgid "Direction Latitude" +msgstr "Direction de latitude" + +msgid "LOC Degrees Longitude" +msgstr "Degrés de longitude LOC" + +msgid "Degrees Longitude" +msgstr "Degrés de longitude" + +msgid "LOC Minutes Longitude" +msgstr "Minutes de longitude LOC" + +msgid "Minutes Longitude" +msgstr "Minutes de longitude" + +msgid "LOC Seconds Longitude" +msgstr "Secondes de longitude LOC" + +msgid "Seconds Longitude" +msgstr "Secondes de longitude" + +msgid "LOC Direction Longitude" +msgstr "Direction de longitude LOC" + +msgid "Direction Longitude" +msgstr "Direction de longitude" + +msgid "LOC Altitude" +msgstr "Altitude LOC" + +msgid "Altitude" +msgstr "Altitude" + +msgid "LOC Size" +msgstr "Taille LOC" + +msgid "Size" +msgstr "Taille" + +msgid "LOC Horizontal Precision" +msgstr "Précision horizontale LOC" + +msgid "Horizontal Precision" +msgstr "Précision horizontale" + +msgid "LOC Vertical Precision" +msgstr "Précision verticale LOC" + +msgid "Vertical Precision" +msgstr "Précision verticale" + +msgid "MX record" +msgstr "Enregistrement MX" + msgid "Raw MX records" msgstr "Enregistrements MX bruts" +msgid "MX Preference" +msgstr "Préférence MX" + +msgid "MX Exchanger" +msgstr "Échangeur MX" + +msgid "A host willing to act as a mail exchanger" +msgstr "Un hôte pouvant agir comme changeur de messagerie" + +msgid "NAPTR record" +msgstr "Enregistrement NAPTR" + msgid "Raw NAPTR records" msgstr "Enregistrements NAPTR bruts" +msgid "NAPTR Order" +msgstr "Ordre NAPTR" + +msgid "Order" +msgstr "Ordre" + +msgid "NAPTR Preference" +msgstr "Préférence NAPTR" + +msgid "Preference" +msgstr "Préférence" + +msgid "NAPTR Flags" +msgstr "Drapeaux NAPTR" + +msgid "Flags" +msgstr "Marqueurs" + +msgid "NAPTR Service" +msgstr "Service NAPTR" + +msgid "NAPTR Regular Expression" +msgstr "Expression rationnelle NAPTR" + +msgid "Regular Expression" +msgstr "Expression rationnelle" + +msgid "NAPTR Replacement" +msgstr "Remplacement NAPTR" + +msgid "Replacement" +msgstr "Remplacement" + +msgid "NS record" +msgstr "Enregistrement NS" + msgid "Raw NS records" msgstr "Enregistrements NS bruts" +msgid "NS Hostname" +msgstr "Nom d'hôte NS" + +msgid "NSEC record" +msgstr "Enregistrement NSEC" + msgid "Raw NSEC records" msgstr "Enregistrements NSEC bruts" +msgid "PTR record" +msgstr "Enregistrement PTR" + msgid "Raw PTR records" msgstr "Enregistrements PTR bruts" +msgid "PTR Hostname" +msgstr "Nom d'hôte PTR" + +msgid "The hostname this reverse record points to" +msgstr "Le nom d'hôte vers lequel cet enregistrement inverse pointe" + +msgid "RRSIG record" +msgstr "Enregistrement RRSIG" + msgid "Raw RRSIG records" msgstr "Enregistrements RRSIG bruts" +msgid "RP record" +msgstr "Enregistrement RP" + msgid "Raw RP records" msgstr "Enregistrements RP bruts" +msgid "SIG record" +msgstr "Enregistrement SIG" + msgid "Raw SIG records" msgstr "Enregistrements SIG bruts" +msgid "SPF record" +msgstr "Enregistrement SPF" + msgid "Raw SPF records" msgstr "Enregistrements SPF bruts" +msgid "SRV record" +msgstr "Enregistrement SRV" + msgid "Raw SRV records" msgstr "Enregistrements SRV bruts" +msgid "SRV Priority" +msgstr "Priorité SRV" + +msgid "SRV Weight" +msgstr "Poids SRV" + +msgid "Weight" +msgstr "Poids" + +msgid "SRV Port" +msgstr "Port SRV" + +msgid "Port" +msgstr "Port" + +msgid "SRV Target" +msgstr "Cible SRV" + +msgid "" +"The domain name of the target host or '.' if the service is decidedly not " +"available at this domain" +msgstr "" +"Le nom de domaine de l'hôte cible ou '.' si le service n'est vraiment pas " +"disponible dans ce domaine" + +msgid "SSHFP record" +msgstr "Enregistrement SSHFP" + msgid "Raw SSHFP records" msgstr "Enregistrements SSHFP bruts" +msgid "SSHFP Algorithm" +msgstr "Algorithme SSHFP" + +msgid "SSHFP Fingerprint Type" +msgstr "Type d'empreinte SSHFP" + +msgid "Fingerprint Type" +msgstr "Type d'empreinte" + +msgid "SSHFP Fingerprint" +msgstr "Empreinte SSHFP" + +msgid "Fingerprint" +msgstr "Empreinte" + msgid "TLSA record" msgstr "Enregistrement TLSA" @@ -7716,9 +7236,87 @@ msgstr "Donnée d'association du certificat TLSA" msgid "Certificate Association Data" msgstr "Donnée associée au certificat" +msgid "Text Data" +msgstr "Donnée texte" + +msgid "Authoritative nameserver" +msgstr "Serveur de nom faisant autorité" + +msgid "Authoritative nameserver domain name" +msgstr "Nom de domaine du serveur de nom faisant autorité" + +msgid "Administrator e-mail address" +msgstr "Adresse courriel de l'administrateur" + +msgid "SOA serial" +msgstr "Numéro de série SOA" + +msgid "SOA record serial number" +msgstr "Numéro de série de l'enregistrement SOA" + +msgid "SOA refresh" +msgstr "Actualisation SOA" + +msgid "SOA record refresh time" +msgstr "Durée d'actualisation de l'enregistrement SOA" + +msgid "SOA retry" +msgstr "Nouvel essai SOA" + +msgid "SOA record retry time" +msgstr "Durée avant nouvel essai d'enregistrement SOA" + +msgid "SOA expire" +msgstr "Expiration SOA" + +msgid "SOA record expire time" +msgstr "Heure d'expiration de l'enregistrement SOA" + +msgid "SOA minimum" +msgstr "Minimum SOA" + +msgid "How long should negative responses be cached" +msgstr "Durée de maintien en cache des réponses négatives" + msgid "Time to live for records at zone apex" msgstr "Durée de vie des enregistrements en sommet de zone" +msgid "BIND update policy" +msgstr "Politique de mise à jour de BIND" + +msgid "Dynamic update" +msgstr "Mise à jour dynamique" + +msgid "Allow dynamic updates." +msgstr "Autoriser les mises à jour dynamiques." + +msgid "Allow query" +msgstr "Autoriser requête" + +msgid "" +"Semicolon separated list of IP addresses or networks which are allowed to " +"issue queries" +msgstr "" +"Liste séparée par des points-virgules d'adresses IP ou de réseaux autorisés " +"à émettre des requêtes" + +msgid "Allow transfer" +msgstr "Autoriser le transfert" + +msgid "" +"Semicolon separated list of IP addresses or networks which are allowed to " +"transfer the zone" +msgstr "" +"Liste séparée par des points-virgules d'adresses IP ou de réseaux autorisés " +"à effectuer des transferts" + +msgid "" +"Allow synchronization of forward (A, AAAA) and reverse (PTR) records in the " +"zone" +msgstr "" +"Autoriser la synchronisation des enregistrements directs (A, AAAA) et " +"inverses (PTR) dans la zone" + msgid "Allow in-line DNSSEC signing" msgstr "Autoriser la signature DNSSEC en ligne" @@ -7726,15 +7324,34 @@ msgid "Allow inline DNSSEC signing of records in the zone" msgstr "" "Autoriser la signature DNSSEC en ligne des enregistrements dans la zone" +msgid "NSEC3PARAM record" +msgstr "Enregistrement NSEC3PARAM" + msgid "" "NSEC3PARAM record for zone in format: hash_algorithm flags iterations salt" msgstr "" "Enregistrement NSEC3PARAM pour une zone au format : algorithme_hachage " "marqueurs itérations salt." +msgid "Resolve a host name in DNS. (Deprecated)" +msgstr "Résoudre un nom de système DNS. (Obsolète)" + +msgid "Hostname (FQDN)" +msgstr "Nom d'hôte (FQDN)" + +msgid "Modify global DNS configuration." +msgstr "Modifier la configuration DNS globale." + +msgid "Show the current global DNS configuration." +msgstr "Afficher la configuration DNS globale." + msgid "Create new DNS forward zone." msgstr "Créer une nouvelle zone de redirection DNS" +msgid "Force DNS zone creation even if it will overlap with an existing zone." +msgstr "" +"Forcer la création de la zone DNS même si elle recouvre une zone existante." + msgid "Add a permission for per-forward zone access delegation." msgstr "" "Ajouter une permission pour une délégation d'accès de zone de redirection." @@ -7764,628 +7381,38 @@ msgstr "" msgid "Display information about a DNS forward zone." msgstr "Afficher des informations à propos des zones de redirection DNS." -msgid "" -"\n" -"Host-based access control\n" -"\n" -"Control who can access what services on what hosts. You\n" -"can use HBAC to control which users or groups can\n" -"access a service, or group of services, on a target host.\n" -"\n" -"You can also specify a category of users and target hosts.\n" -"This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" -"\n" -"Target hosts in HBAC rules must be hosts managed by IPA.\n" -"\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" -"\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 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 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 --hbacsvcs=sftp ftpers\n" -" ipa hbacrule-add --hostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" -"\n" -" Disable a named HBAC rule:\n" -" ipa hbacrule-disable test1\n" -"\n" -" Remove a named HBAC rule:\n" -" ipa hbacrule-del allow_server\n" +msgid "Add new DNS resource record." +msgstr "Ajouter un nouvel enregistrement de ressources DNS." + +msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -"\n" -"Contrôle d'accès des systèmes (HBAC)\n" -"\n" -"HBAC (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\n" -"d'utiliser le système HBAC afin de contrôler quels utilisateurs ou quels\n" -"groupes d'un système source peuvent accéder à quels services, ou groupes\n" -"de services, sur un hôte cible.\n" -"\n" -"Vous pouvez aussi indiquer une catégorie d'utilisateur, d'hôtes cibles.\n" -"La seule catégorie existante pour le moment est \"all\", mais elles\n" -"pourront être étendues dans le futur.\n" -"\n" -"Les hôtes cible des règles HBAC doivent être des hôtes administrés par IPA.\n" -"\n" -"Les services et groupes de services disponibles sont gérés respectivement\n" -"par les greffons « hbacsvc » et « hbacsvcgroup ».\n" -"\n" -"EXEMPLES:\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 --usercat=all test1\n" -" ipa hbacrule-add-host --hosts=server.example.com test1\n" -"\n" -" Afficher les propriétés d'une règle HBAC nommée :\n" -" ipa hbacrule-show test1\n" -"\n" -" Créer une règle pour un service donné. Elle permet d'avoir accés au\n" -" service sshd sur toute machine depuis n'importe quelle autre machine :\n" -" ipa hbacrule-add --hostcat=all john_sshd\n" -" ipa hbacrule-add-user --users=john john_sshd\n" -" ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" -"\n" -" Créer une règle pour un nouveau groupe de services. Elle permet d'avoir\n" -" accès au service FTP de toute machine depuis n'importe quelle machine.\n" -" ipa hbacsvcgroup-add ftpers\n" -" ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp --hbacsvcs=sftp ftpers\n" -" ipa hbacrule-add --hostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" -"\n" -" 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" -"\n" +"forcer la création d'un enregistrement NS même si le nom du système n'est " +"pas dans le DNS" -msgid "HBAC service groups to add" -msgstr "Groupes de services HBAC à ajouter" +msgid "Structured" +msgstr "Structuré" -msgid "HBAC service groups to remove" -msgstr "Groupes de services HBAC à supprimer" - -msgid "" -"\n" -"Service Constrained Delegation\n" -"\n" -"Manage rules to allow constrained delegation of credentials so\n" -"that a service can impersonate a user when communicating with another\n" -"service without requiring the user to actually forward their TGT.\n" -"This makes for a much better method of delegating credentials as it\n" -"prevents exposure of the short term secret of the user.\n" -"\n" -"The naming convention is to append the word \"target\" or \"targets\" to\n" -"a matching rule name. This is not mandatory but helps conceptually\n" -"to associate rules and targets.\n" -"\n" -"A rule consists of two things:\n" -" - A list of targets the rule applies to\n" -" - A list of memberPrincipals that are allowed to delegate for\n" -" those targets\n" -"\n" -"A target consists of a list of principals that can be delegated.\n" -"\n" -"In English, a rule says that this principal can delegate as this\n" -"list of principals, as defined by these targets.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new constrained delegation rule:\n" -" ipa servicedelegationrule-add ftp-delegation\n" -"\n" -" Add a new constrained delegation target:\n" -" ipa servicedelegationtarget-add ftp-delegation-target\n" -"\n" -" Add a principal to the rule:\n" -" ipa servicedelegationrule-add-member --principals=ftp/ipa.example." -"com ftp-delegation\n" -"\n" -" Add our target to the rule:\n" -" ipa servicedelegationrule-add-target --servicedelegationtargets=ftp-" -"delegation-target ftp-delegation\n" -"\n" -" Add a principal to the target:\n" -" ipa servicedelegationtarget-add-member --principals=ldap/ipa.example." -"com ftp-delegation-target\n" -"\n" -" Display information about a named delegation rule and target:\n" -" ipa servicedelegationrule_show ftp-delegation\n" -" ipa servicedelegationtarget_show ftp-delegation-target\n" -"\n" -" Remove a constrained delegation:\n" -" ipa servicedelegationrule-del ftp-delegation-target\n" -" ipa servicedelegationtarget-del ftp-delegation\n" -"\n" -"In this example the ftp service can get a TGT for the ldap service on\n" -"the bound user's behalf.\n" -"\n" -"It is strongly discouraged to modify the delegations that ship with\n" -"IPA, ipa-http-delegation and its targets ipa-cifs-delegation-targets and\n" -"ipa-ldap-delegation-targets. Incorrect changes can remove the ability\n" -"to delegate, causing the framework to stop functioning.\n" +msgid "Parse all raw DNS records and return them in a structured way" msgstr "" -"\n" -"Délégation contrainte de services\n" -"\n" -"Gérez les règles permettant la délégation contrainte d'informations\n" -"d'authentification de façon à ce qu'un service puisse se faire passer\n" -"pour un utilisateur lors de la communication avec un service sans\n" -"que cela ne nécessite de la part de l'utilisateur de transmettre son TGT.\n" -"Cela constitue une méthode bien meilleure de délégation d'identification\n" -"car elle évite l'exposition du secret court terme de l'utilisateur.\n" -"\n" -"La convention de nommage est d'ajouter le mot « target » ou « targets »\n" -"au nom de la règle de correspondance. Ce poitn n'est pas obligatoire mais\n" -"aide à visualiser l'association entre règles et cibles.\n" -"\n" -"Une règle est constituée de deux choses :\n" -" - une liste de cibles auxquelles la règle s'applique,\n" -" - une liste de memberPrincipals qui sont autorisés à leur déléguer\n" -" leurs droits.\n" -"\n" -"Une cible consiste en une liste de principaux qui peuvent être délégués.\n" -"\n" -"En anglais, une règle que ce principal peut déléguer comme cette liste\n" -"de principaux, tels que définis par ces cibles.\n" -"\n" -"EXEMPLES :\n" -"\n" -" Ajouter une nouvelle règle de délégation contrainte :\n" -" ipa servicedelegationrule-add ftp-delegation\n" -"\n" -" Ajouter une nouvelle cible de délégation contrainte :\n" -" ipa servicedelegationtarget-add ftp-delegation-target\n" -"\n" -" Ajouter un principal à la règle :\n" -" ipa servicedelegationrule-add-member --principals=ftp/ipa.example." -"com ftp-delegation\n" -"\n" -" Ajouter notre cible à la règle :\n" -" ipa servicedelegationrule-add-target --servicedelegationtargets=ftp-" -"delegation-target ftp-delegation\n" -"\n" -" Add un principal à la cible :\n" -" ipa servicedelegationtarget-add-member --principals=ldap/ipa.example." -"com ftp-delegation-target\n" -"\n" -" Afficher les informations au sujet d'une règle de délégation et sa cible :\n" -" ipa servicedelegationrule_show ftp-delegation\n" -" ipa servicedelegationtarget_show ftp-delegation-target\n" -"\n" -" Supprimer une délégation contrainte :\n" -" ipa servicedelegationrule-del ftp-delegation-target\n" -" ipa servicedelegationtarget-del ftp-delegation\n" -"\n" -"Dans cet exemple, le service ftp peut obtenir un TGT pour le service ldap\n" -"au nom de l'utilisateur associé.\n" -"\n" -"Il est fortement découragé de modifier les délégations livrées avec IPA,\n" -"ipa-http-delegation et ses cibles ipa-cifs-delegation-targets et\n" -"ipa-ldap-delegation-targets. Des modifications erronées peuvent obérer\n" -"la capacité de délégation, en provoquant l'arrêt de fonctionnement du\n" -"moteur.\n" +"Analyser tous les enregistrements DNS et les renvoyer sous forme structurée" -msgid "Allowed Target" -msgstr "Cibles autorisées" +msgid "Delete DNS resource record." +msgstr "Supprimer un enregistrement de ressources DNS." -msgid "Create a new service delegation rule." -msgstr "Créer une nouvelle règle de délégation de service" +msgid "Delete all associated records" +msgstr "Supprimer les enregistrements associés" -msgid "Add member to a named service delegation rule." -msgstr "Ajouter un membre à une règle nommée de délégation de service." +msgid "Search for DNS resources." +msgstr "Rechercher des enregistrements de ressources DNS." -msgid "Add target to a named service delegation rule." -msgstr "Ajouter une cible à une règle nommée de délégation de service." +msgid "Modify a DNS resource record." +msgstr "Modifier un enregistrement de ressources DNS." -msgid "Delete service delegation." -msgstr "Supprimer une règle de délégation de service." +msgid "Display DNS resource." +msgstr "Afficher un enregistrement de ressources DNS." -msgid "Search for service delegations rule." -msgstr "Rechercher des règle de délégation de service." - -msgid "Remove member from a named service delegation rule." -msgstr "Supprimer un membre d'une règle nommée de délégation de service." - -msgid "Remove target from a named service delegation rule." -msgstr "Supprimer une cible d'une règle nommée de délégation de service." - -msgid "Display information about a named service delegation rule." -msgstr "" -"Afficher les informations au sujet d'une règle de délégation de service." - -msgid "Create a new service delegation target." -msgstr "Créer une nouvelle cible de délégation de service" - -msgid "Add member to a named service delegation target." -msgstr "Ajouter un membre à une cible de délégation de service." - -msgid "Delete service delegation target." -msgstr "Supprimer une cible de délégation de service." - -msgid "Search for service delegation target." -msgstr "Rechercher des cibles de délégation de service" - -msgid "Remove member from a named service delegation target." -msgstr "Supprimer un membre d'une cible de délégation de service." - -msgid "Display information about a named service delegation target." -msgstr "Afficher les informations sur une cible de délégation de service." - -msgid "permissions" -msgstr "permissions" - -msgid "roles to remove" -msgstr "rôles à supprimer" - -msgid "" -"\n" -"IPA certificate operations\n" -"\n" -"Implements a set of commands for managing server SSL certificates.\n" -"\n" -"Certificate requests exist in the form of a Certificate Signing Request " -"(CSR)\n" -"in PEM format.\n" -"\n" -"The dogtag CA uses just the CN value of the CSR and forces the rest of the\n" -"subject to values configured in the server.\n" -"\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" -"\n" -"In order to request a certificate:\n" -"\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add " -"it)\n" -"\n" -"SEARCHING:\n" -"\n" -"Certificates may be searched on by certificate subject, serial number,\n" -"revocation reason, validity dates and the issued date.\n" -"\n" -"When searching on dates the _from date does a >= search and the _to date\n" -"does a <= search. When combined these are done as an AND.\n" -"\n" -"Dates are treated as GMT to match the dates in the certificates.\n" -"\n" -"The date format is YYYY-mm-dd.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" -"\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" -"\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" -"\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" -"\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" -"\n" -" Search for certificates by hostname:\n" -" ipa cert-find --subject=ipaserver.example.com\n" -"\n" -" Search for revoked certificates by reason:\n" -" ipa cert-find --revocation-reason=5\n" -"\n" -" Search for certificates based on issuance date\n" -" ipa cert-find --issuedon-from=2013-02-01 --issuedon-to=2013-02-07\n" -"\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" -"\n" -"The following revocation reasons are supported:\n" -"\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" -"\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" -"\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" -msgstr "" -"\n" -"Gestion de certficats IPA\n" -"\n" -"Implémente un jeu de commandes pour gérer les certificats SSL du serveur.\n" -"\n" -"Les demandes de certificats existent sous la forme de\n" -"« Certificate Signing Request (CSR) » au format PEM.\n" -"\n" -"La plaque d'identité CA n'utilise que la valeur CN du CSR et force le reste\n" -"du sujet aux valeurs configurées dans le serveur.\n" -"\n" -"Un certificat est enregistré avec un principal de service et un principal\n" -" de service a besoin d'un hôte.\n" -"\n" -"Donc, pour demander un certificat :\n" -"\n" -"* l'hôte doit exister\n" -"* le service doit exister (utiliser --add pour l'ajouter automatiquement)\n" -"\n" -"RECHERCHE :\n" -"\n" -"Les certificats peuvent être recherchés par sujet, numéro de série,\n" -"motif de révocation, dates de validité et date d'émission.\n" -"\n" -"En recherchant par dates, _from effectue une recherche >= à la date et _to\n" -"une recherche <= à la date. Combinées, elles sont équivalentes à un AND.\n" -"\n" -"La date est traitée comme GMT pour correspondre aux dates de certificats.\n" -"\n" -"La date est au format YYYY-mm-dd.\n" -"\n" -"EXEMPLES :\n" -"\n" -" Demander un nouveau certificat et ajouter le principal :\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" -"\n" -" Retrouver un certificat existant :\n" -" ipa cert-show 1032\n" -"\n" -" Révoquer un certificat (voir RFC 5280 pour le détail des raisons) :\n" -" ipa cert-revoke --revocation-reason=6 1032\n" -"\n" -" Lever l'état de 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" -"\n" -" Rechercher des certificats par nom d'hôte :\n" -" ipa cert-find --subject=ipaserver.example.com\n" -"\n" -" Rechercher les certificats révoqués par motif :\n" -" ipa cert-find --revocation-reason=5\n" -"\n" -" Rechercher les certificats selon la date d'émission :\n" -" ipa cert-find --issuedon-from=2013-02-01 --issuedon-to=2013-02-07\n" -"\n" -"Actuellement IPA émet (ou refuse) aussitôt toute demande de certificat, " -"donc\n" -"l'état d'une requête ne sert normalement pas. C'est en vue d'une " -"utilisation\n" -"future ou au cas où un CA n'émettrait pas immédiatement un certificat.\n" -"\n" -"Les motifs de révocation suivants sont pris en charge :\n" -"\n" -" * 0 - « unspecified » (non précisé)\n" -" * 1 - « keyCompromise » (clé compromise)\n" -" * 2 - « cACompromise » (CA compromis)\n" -" * 3 - « affiliationChanged » (affiliation modifiée)\n" -" * 4 - « superseded » (remplacé)\n" -" * 5 - « cessationOfOperation » (arrêt d'opération)\n" -" * 6 - « certificateHold » (certificat retenu)\n" -" * 8 - « removeFromCRL » (sorti du CRL)\n" -" * 9 - « privilegeWithdrawn » (retrait de privilège)\n" -" * 10 - « aACompromise » (compromission)\n" -"\n" -"Notez que le motif code 7 ne sert pas. Voir RFC 5280 pour plus de détails :\n" -"\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" -"\n" - -msgid "Checks if any of the servers has the CA service enabled." -msgstr "" -"Vérifier si l'un des serveurs a activé le service autorité de certification." - -msgid "Search for existing certificates." -msgstr "Recherche de certificats existants." - -msgid "Subject" -msgstr "Sujet" - -msgid "minimum serial number" -msgstr "numéro de série plancher" - -msgid "maximum serial number" -msgstr "numéro de série plafond" - -msgid "match the common name exactly" -msgstr "correspond exactement au nom commun" - -msgid "Valid not after from this date (YYYY-mm-dd)" -msgstr "Valide à partir de cette date (AAAA-mm-jj)" - -msgid "Valid not after to this date (YYYY-mm-dd)" -msgstr "Valide jusqu'à cette date (AAAA-mm-jj)" - -msgid "Valid not before from this date (YYYY-mm-dd)" -msgstr "Valide à partir de cette date (AAAA-mm-jj), non valide avant" - -msgid "Valid not before to this date (YYYY-mm-dd)" -msgstr "Valide à cette date (AAAA-mm-jj), non valide avant" - -msgid "Issued on from this date (YYYY-mm-dd)" -msgstr "Émis à partir de cette date (AAAA-mm-jj)" - -msgid "Issued on to this date (YYYY-mm-dd)" -msgstr "Émis à cette date (AAAA-mm-jj)" - -msgid "Revoked on from this date (YYYY-mm-dd)" -msgstr "Révoqué à partir de cette date (AAAA-mm-jj)" - -msgid "Revoked on to this date (YYYY-mm-dd)" -msgstr "Révoqué à cette date (AAAA-mm-jj)" - -msgid "Maximum number of certs returned" -msgstr "Nombre maximum de certificats renvoyés" - -msgid "Principal for this certificate (e.g. HTTP/test.example.com)" -msgstr "Principal de ce certificate (par exemple : HTTP/test.example.com)" - -msgid "Certificate Profile to use" -msgstr "Profil de certificat à utiliser" - -msgid "Domain name" -msgstr "Nom de domaine" - -msgid "Trusted domain partner" -msgstr "Partenaire de domaine approuvé" - -msgid "Determine whether ipa-adtrust-install has been run on this system" -msgstr "" -"Déterminer si la commande « ipa-adtrust-install » a été exécutée sur ce " -"système" - -msgid "" -"Determine whether Schema Compatibility plugin is configured to serve trusted " -"domain users and groups" -msgstr "" -"Déterminer si le greffon de compatibilité de schéma est configuré pour " -"servir les utilisateurs et groupes du domaine" - -msgid "Determine whether ipa-adtrust-install has been run with sidgen task" -msgstr "" -"Déterminer si la commande « ipa-adtrust-install » a été exécutée avec la " -"tâche « sidgen »" - -msgid "Active Directory domain administrator's password" -msgstr "Mot de passe de l'administrateur de domaine Active Directory" - -msgid "Two-way trust" -msgstr "Confiance réciproque" - -msgid "" -"Establish bi-directional trust. By default trust is inbound one-way only." -msgstr "" -"Établir une relation d'approbation bidirectionnelle. Par défaut, la relation " -"est unilatérale entrante uniquement." - -msgid "Refresh list of the domains associated with the trust" -msgstr "Rafraîchir la liste des domaines associés à la relation de confiance" - -msgid "Resolve security identifiers of users and groups in trusted domains" -msgstr "" -"Résoudre les identifiants de sécurité des groupes et utilisateurs dans des " -"domaines approuvés" - -msgid "Security Identifiers (SIDs)" -msgstr "Identifiants de sécurité (SID)" - -msgid "Allow access from the trusted domain" -msgstr "Autoriser l'accès depuis le domaine approuvé" - -msgid "Disable use of IPA resources by the domain of the trust" -msgstr "Interdire l'utilisation de ressources IPA par le domaine approuvé" - -msgid "Allow use of IPA resources by the domain of the trust" -msgstr "Autoriser l'utilisation des ressources IPA par le domaine approuvé" - -msgid "Search domains of the trust" -msgstr "Recherches dans les domaines approuvés" - -msgid "Modify trustdomain of the trust" -msgstr "Modifier le domaine approuvé de la confiance" - -msgid "Maximum amount of time (seconds) for a search (-1 or 0 is unlimited)" -msgstr "Durée maximale (secondes) pour une recherche (0 ou -1 pour illimitée)" - -msgid "Maximum number of records to search (-1 or 0 is unlimited)" -msgstr "Nombre maximum d'entrées à rechercher (-1 ou 0 pour illimité)" - -msgid "Default user authentication types" -msgstr "Types d'authentification utilisateur par défaut" - -msgid "Default types of supported user authentication" -msgstr "Types d'authentification utilisateur pris en charge par défaut" - -msgid "Activate a stage user." -msgstr "Activer un utilisateur en attente." - -msgid "Add a new stage user." -msgstr "Ajouter un nouvel utilisateur en attente." - -msgid "Create Stage user in from a delete user" -msgstr "Créer un utilisateur en attente depuis un utilisateur supprimé" - -msgid "Delete a stage user." -msgstr "Supprimer un utilisateur en attente." - -msgid "Search for stage users." -msgstr "Rechercher des utilisateurs en attente." - -msgid "Modify a stage user." -msgstr "Modifier un utilisateur en attente." - -msgid "Display information about a stage user." -msgstr "Afficher les informations sur un utilisateur en attente." - -msgid "Managed LDAP suffix DN" -msgstr "DN du suffixe LDAP administré" - -msgid "Search for topology suffixes." -msgstr "Rechercher des suffixes de topologie." - -msgid "Add a manager to the user entry" -msgstr "Ajouter un responsable à l'entrée de l'utilisateur" - -msgid "Remove a manager to the user entry" -msgstr "Supprimer un responsable de l'entrée de l'utilisateur" - -msgid "Managed suffixes" -msgstr "Suffixes administrés" - -msgid "Check connection to remote IPA server." -msgstr "Vérifier la connexion au serveur IPA distant." - -msgid "Remote server name" -msgstr "Nom du serveur distant" - -msgid "Remote IPA server hostname" -msgstr "Nom d'hôte du serveur IPA distant" - -msgid "suffix" -msgstr "suffixe" - -msgid "Resolve a host name in DNS. (Deprecated)" -msgstr "Résoudre un nom de système DNS. (Obsolète)" - -msgid "Hostname (FQDN)" -msgstr "Nom d'hôte (FQDN)" - -msgid "Force DNS zone creation even if it will overlap with an existing zone." -msgstr "" -"Forcer la création de la zone DNS même si elle recouvre une zone existante." +msgid "Create new DNS zone (SOA record)." +msgstr "Créer une nouvelle zone DNS (enregistrement SOA)." msgid "" "Force DNS zone creation even if nameserver is not resolvable. (Deprecated)" @@ -8393,11 +7420,142 @@ msgstr "" "Forcer la création de la zone DNS même si le serveur de nom n'est pas " "résoluble. (Obsolète)" -msgid "Add a manager to the stage user entry" -msgstr "Ajouter un responsable à l'entrée d'utilisateur en attente" +msgid "Force DNS zone creation even if nameserver is not resolvable." +msgstr "" +"Forcer la création de la zone DNS même si le serveur de nom n'est pas " +"résoluble." -msgid "Remove a manager to the stage user entry" -msgstr "Supprimer un responsable de l'entrée de l'utilisateur en attente." +msgid "Add a permission for per-zone access delegation." +msgstr "Ajouter une permission pour une délégation d'accès par zone." + +msgid "Delete DNS zone (SOA record)." +msgstr "Supprimer la zone DNS (enregistrement SOA)." + +msgid "Disable DNS Zone." +msgstr "Désactiver la zone DNS." + +msgid "Enable DNS Zone." +msgstr "Activer la zone DNS." + +msgid "Search for DNS zones (SOA records)." +msgstr "Rechercher des zones DNS (enregistrements SOA)." + +msgid "Forward zones only" +msgstr "Zones redirigées uniquement" + +msgid "Search for forward zones only" +msgstr "Rechercher des zones redirigées uniquement" + +msgid "Modify DNS zone (SOA record)." +msgstr "Modifier la zone DNS (enregistrement SOA)." + +msgid "Force nameserver change even if nameserver not in DNS" +msgstr "" +"Forcer un changement de serveur de nom même si le serveur de nom n'est pas " +"dans le DNS" + +msgid "Remove a permission for per-zone access delegation." +msgstr "Supprimer une permission pour une délégation d'accès par zone." + +msgid "Display information about a DNS zone (SOA record)." +msgstr "" +"Afficher les informations au sujet d'une zone DNS (enregistrement SOA)." + +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" +"Définir le mot de passe d'un utilisateur\n" +"\n" +"Si une personne autre que l'utilisateur change le mot de passe de cet\n" +"utilisateur (par exemple en cas de réinitialisation par les services\n" +"d'assistance technique), le mot de passe devra être modifié la première\n" +"fois qu'il sera utilisé, afin que l'utilisateur soit le seul à connaître\n" +"son mot de passe.\n" +"\n" +"La politique de mot de passe de IPA contrôle la fréquence de changement\n" +"des mots de passe, les prérequis de leur résistance, et la taille\n" +"de l'historique des mots de passe.\n" +"\n" +"EXEMPLES :\n" +"\n" +" Réinitialiser son propre mot de passe :\n" +" ipa passwd\n" +"\n" +" Modifier le mot de passe d'un utilisateur :\n" +" ipa passwd tuser1\n" + +msgid "Set a user's password." +msgstr "Définir le mot de passe d'un utilisateur." + +msgid "New Password" +msgstr "Nouveau mot de passe" + +msgid "Current Password" +msgstr "Mot de passe actuel" + +msgid "OTP" +msgstr "OTP" + +msgid "One Time Password" +msgstr "Mots de passe à usage unique" + +msgid "Managed suffix" +msgstr "Suffixe administré" + +msgid "" +"\n" +"Topology\n" +"\n" +"Management of a replication topology.\n" +"\n" +"Requires minimum domain level 1.\n" +msgstr "" +"\n" +"Topologie\n" +"\n" +"Gestion de la topologie de réplication.\n" +"\n" +"Nécessite a minima le niveau 1 de domaine.\n" + +msgid "LDAP suffix to be managed" +msgstr "Suffixe LDAP qui sera géré" + +msgid "Search for topology suffices." +msgstr "Rechercher des suffixes de topologie." + +msgid "Resolve a host name in DNS." +msgstr "Résoudre un nom de système DNS." + +msgid "Time limit of search in seconds" +msgstr "Limite de la durée de la recherche en secondes" + +msgid "Maximum number of entries returned" +msgstr "Nombre maximal d'entrées renvoyées" + +msgid "" +"Applies ID View to specified hosts or current members of specified " +"hostgroups. If any other ID View is applied to the host, it is overriden." +msgstr "" +"Applique une vue d'identifiants aux hôtes ou aux membres des groupes d'hôtes " +"indiqués. Si une autre vue d'identifiants était appliquée à l'hôte, elle est " +"remplacée." msgid "" "\n" @@ -8476,32 +7634,92 @@ msgstr "" " doivent être modifiés pour correspondre à cette nouvelle plage.\n" " " +msgid "Modify ID range." +msgstr "Modifier une plage." + msgid "" -"Applies ID View to specified hosts or current members of specified " -"hostgroups. If any other ID View is applied to the host, it is overriden." +"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ée)" + +msgid "Maximum number of records to search (-1 is unlimited)" +msgstr "Nombre maximum d'entrées à rechercher (-1 pour illimité)" + +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -"Applique une vue d'identifiants aux hôtes ou aux membres des groupes d'hôtes " -"indiqués. Si une autre vue d'identifiants était appliquée à l'hôte, elle est " -"remplacée." +"Principal de service pour ce certificat (par ex.: HTTP/test.example.com)" + +msgid "DNSKEY record" +msgstr "Enregistrement DNSKEY" msgid "Raw DNSKEY records" msgstr "Enregistrements DNSKEY bruts" +msgid "NSEC3 record" +msgstr "Enregistrement NSEC3" + msgid "Raw NSEC3 records" msgstr "Enregistrements NSEC3 bruts" +msgid "TA record" +msgstr "Enregistrement TA" + msgid "Raw TA records" msgstr "Enregistrements TA bruts" +msgid "TKEY record" +msgstr "Enregistrement TKEY" + msgid "Raw TKEY records" msgstr "Enregistrements TKEY bruts" +msgid "TSIG record" +msgstr "Enregistrement TSIG" + msgid "Raw TSIG records" msgstr "Enregistrements TSIG bruts" -#, python-format -msgid "Certificate(s) stored in file '%(file)s'" -msgstr "Certificat(s) enregistré(s) dans le fichier '%(file)s'" +msgid "Username" +msgstr "Nom d'utilisateur" + +msgid "Source host category" +msgstr "Catégorie d'hôtes sources" + +msgid "Source host category the rule applies to" +msgstr "Catégorie d'hôtes sources à laquelle la règle s'applique" + +msgid "Source Hosts" +msgstr "Hôtes sources" + +msgid "Source Host Groups" +msgstr "Groupes d'hôtes sources" + +msgid "Source host" +msgstr "Hôte source" + +msgid "Active directory domain administrator's password" +msgstr "Mot de passe de l'administrateur du domaine Active Directory" + +msgid "An interval between regular polls of the name server for new DNS zones" +msgstr "" +"Délai entre deux interrogations du serveur de noms pour la recherche de " +"nouvelles zones" + +msgid "DNS class" +msgstr "Classe de DNS" + +msgid "SOA class" +msgstr "Classe SOA" + +msgid "SOA record class" +msgstr "Classe d'enregistrement SOA " + +msgid "Add forward record for nameserver located in the created zone" +msgstr "" +"Ajouter un enregistrement direct pour les serveurs de noms situés dans la " +"zone créée" + +msgid "The principal for this request doesn't exist." +msgstr "Le principal pour cette demande n'existe pas." #, python-format msgid "Enabled Sudo Rule \"%s\"" @@ -8519,9 +7737,58 @@ msgstr "Option « %(option)s » ajoutée à la règle sudo « %(rule)s »" msgid "Removed option \"%(option)s\" from Sudo Rule \"%(rule)s\"" msgstr "Option « %(option)s » supprimée de la règle sudo « %(rule)s »" +#, python-format +msgid "Certificate(s) stored in file '%(file)s'" +msgstr "Certificat(s) enregistré(s) dans le fichier '%(file)s'" + msgid "cannot specify both raw certificate and file" msgstr "impossible d'indiquer à la fois certificat brut et un nom de fichier" +#, python-format +msgid "Profile configuration stored in file '%(file)s'" +msgstr "Profil de configuration enregistré dans le fichier « %(file)s »" + +msgid "" +"Unable to display QR code using the configured output encoding. Please use " +"the token URI to configure your OTP device" +msgstr "" +"Impossible d'afficher le code QR avec l'encodage configuré sur la sortie. " +"Merci d'utiliser l'URI du jeton pour configurer votre jeton OTP" + +msgid "" +"QR code width is greater than that of the output tty. Please resize your " +"terminal." +msgstr "" +"La largeur du code QR est supérieure à celle du terminal. Merci d'agrandir " +"votre fenêtre de terminal." + +msgid "Synchronize an OTP token." +msgstr "Synchroniser un jeton OTP." + +msgid "User ID" +msgstr "Identifiant utilisateur" + +msgid "First Code" +msgstr "Premier code" + +msgid "Second Code" +msgstr "Second code" + +msgid "Token ID" +msgstr "ID du jeton" + +msgid "Failed to add" +msgstr "Échec lors de l'ajout" + +msgid "Servers details:" +msgstr "Informations sur les serveurs :" + +#, python-format +msgid "Removing %(servers)s from replication topology, please wait..." +msgstr "" +"Suppression de %(servers)s de la topologie de réplication, merci de " +"patienter..." + msgid "" "Migration mode is disabled.\n" "Use 'ipa config-mod --enable-migration=TRUE' to enable it." @@ -8543,6 +7810,107 @@ msgstr "" "migrés devront se connecter à https://your.domain/ipa/migration/\n" "avant de pouvoir utiliser leur compte Kerberos." +msgid "Delete a user, keeping the entry available for future use" +msgstr "" +"Supprimer un utilisateur en préservant l'entrée correspondantes pour un " +"usage futur" + +msgid "Delete a user" +msgstr "Supprimer un utilisateur" + +msgid "preserve and no-preserve cannot be both set" +msgstr "preserve et no-preserve ne peuvent être indiqués simultanément" + +#, python-format +msgid "Replication topology of suffix \"%(suffix)s\" is in order." +msgstr "La topologie de réplication du suffixe « %(suffix)s » est en ordre." + +#, python-format +msgid "Replication topology of suffix \"%(suffix)s\" contains errors." +msgstr "" +"La topologie de réplication du suffixe « %(suffix)s » contient des erreurs." + +msgid "Topology is disconnected" +msgstr "La topologie est déconnectée" + +#, python-format +msgid "Server %(srv)s can't contact servers: %(replicas)s" +msgstr "Le serveur %(srv)s ne peut contacter les serveurs : %(replicas)s" + +msgid "Recommended maximum number of agreements per replica exceeded" +msgstr "Le nombre maximal d'agréments de réplication est dépassé" + +msgid "Maximum number of agreements per replica" +msgstr "Le nombre maximal d'agréments par réplique" + +#, python-format +msgid "Server \"%(srv)s\" has %(n)d agreements with servers:" +msgstr "Le serveur « %(srv)s » possède %(n)d agréments avec les serveurs :" + +msgid "maps not connected to /etc/auto.master:" +msgstr "cartes non connectées à « /etc/auto.master » :" + +msgid "Import automount files for a specific location." +msgstr "Importer des fichiers « automount » pour un emplacement donné." + +msgid "Master file" +msgstr "Fichier maître" + +msgid "Automount master file." +msgstr "Fichier maître « automount »" + +msgid "" +"Continuous operation mode. Errors are reported but the process continues." +msgstr "" +"Mode opératoire continu. Les erreurs sont notées, mais le processus continue." + +#, python-format +msgid "File %(file)s not found" +msgstr "Fichier %(file)s introuvable" + +#, python-format +msgid "key %(key)s already exists" +msgstr "La clé %(key)s existe déjà" + +#, python-format +msgid "map %(map)s already exists" +msgstr "La carte %(map)s existe déjà" + +msgid "Imported maps:" +msgstr "Cartes importées :" + +#, python-format +msgid "Added %(map)s" +msgstr " %(map)s ajoutée" + +msgid "Imported keys:" +msgstr "Clés importées :" + +#, python-format +msgid "Added %(src)s to %(dst)s" +msgstr "Ajout de %(src)s à %(dst)s" + +msgid "Ignored keys:" +msgstr "Clés ignorées :" + +#, python-format +msgid "Ignored %(src)s to %(dst)s" +msgstr "%(src)s ignoré pour %(dst)s" + +msgid "Duplicate maps skipped:" +msgstr "Cartes dupliquées ignorées :" + +#, python-format +msgid "Skipped %(map)s" +msgstr "%(map)s ignoré" + +msgid "Duplicate keys skipped:" +msgstr "Clés dupliquées ignorées :" + +#, python-format +msgid "Skipped %(key)s" +msgstr "%(key)s ignoré" + #, python-format msgid "Cannot read file '%(filename)s': %(exc)s" msgstr "Impossible de lire le fichier « %(filename)s » : %(exc)s" @@ -8665,202 +8033,17 @@ msgstr "Clé privée indiquée plusieurs fois" msgid "Missing vault private key" msgstr "Clé privée du coffre-fort manquante" -msgid "Failed to add" -msgstr "Échec lors de l'ajout" +msgid "Unrevoked" +msgstr "Réintégré" -#, python-format -msgid "Replication topology of suffix \"%(suffix)s\" is in order." -msgstr "La topologie de réplication du suffixe « %(suffix)s » est en ordre." +msgid "Error" +msgstr "Erreur" -#, python-format -msgid "Replication topology of suffix \"%(suffix)s\" contains errors." -msgstr "" -"La topologie de réplication du suffixe « %(suffix)s » contient des erreurs." +msgid "Input filename" +msgstr "Nom du fichier en entrée" -msgid "Topology is disconnected" -msgstr "La topologie est déconnectée" - -#, python-format -msgid "Server %(srv)s can't contact servers: %(replicas)s" -msgstr "Le serveur %(srv)s ne peut contacter les serveurs : %(replicas)s" - -msgid "Recommended maximum number of agreements per replica exceeded" -msgstr "Le nombre maximal d'agréments de réplication est dépassé" - -msgid "Maximum number of agreements per replica" -msgstr "Le nombre maximal d'agréments par réplique" - -#, python-format -msgid "Server \"%(srv)s\" has %(n)d agreements with servers:" -msgstr "Le serveur « %(srv)s » possède %(n)d agréments avec les serveurs :" - -msgid "maps not connected to /etc/auto.master:" -msgstr "cartes non connectées à « /etc/auto.master » :" - -msgid "Import automount files for a specific location." -msgstr "Importer des fichiers « automount » pour un emplacement donné." - -msgid "Master file" -msgstr "Fichier maître" - -msgid "Automount master file." -msgstr "Fichier maître « automount »" - -msgid "" -"Continuous operation mode. Errors are reported but the process continues." -msgstr "" -"Mode opératoire continu. Les erreurs sont notées, mais le processus continue." - -#, python-format -msgid "File %(file)s not found" -msgstr "Fichier %(file)s introuvable" - -#, python-format -msgid "key %(key)s already exists" -msgstr "La clé %(key)s existe déjà" - -#, python-format -msgid "map %(map)s already exists" -msgstr "La carte %(map)s existe déjà" - -msgid "Imported maps:" -msgstr "Cartes importées :" - -#, python-format -msgid "Added %(map)s" -msgstr " %(map)s ajoutée" - -msgid "Imported keys:" -msgstr "Clés importées :" - -#, python-format -msgid "Added %(src)s to %(dst)s" -msgstr "Ajout de %(src)s à %(dst)s" - -msgid "Ignored keys:" -msgstr "Clés ignorées :" - -#, python-format -msgid "Ignored %(src)s to %(dst)s" -msgstr "%(src)s ignoré pour %(dst)s" - -msgid "Duplicate maps skipped:" -msgstr "Cartes dupliquées ignorées :" - -#, python-format -msgid "Skipped %(map)s" -msgstr "%(map)s ignoré" - -msgid "Duplicate keys skipped:" -msgstr "Clés dupliquées ignorées :" - -#, python-format -msgid "Skipped %(key)s" -msgstr "%(key)s ignoré" - -msgid "" -"\n" -"YubiKey Tokens\n" -msgstr "" -"\n" -"Jetons YubiKey\n" - -msgid "" -"\n" -"Manage YubiKey tokens.\n" -msgstr "" -"\n" -"Gestion de jetons YubiKey.\n" - -msgid "" -"\n" -"This code is an extension to the otptoken plugin and provides support for\n" -"reading/writing YubiKey tokens directly.\n" -msgstr "" -"\n" -"Ce code est une extension du greffon « otptoken » ; il fournit la prise en\n" -"charge pour lire/écrire des jetons YubiKey directement.\n" - -msgid "" -"\n" -"EXAMPLES:\n" -msgstr "" -"\n" -"EXEMPLES :\n" - -msgid "" -"\n" -" Add a new token:\n" -" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" -msgstr "" -"\n" -" Ajouter un nouveau jeton :\n" -" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" - -msgid "Add a new YubiKey OTP token." -msgstr "Ajouter un nouveau jeton OTP YubiKey." - -msgid "YubiKey slot" -msgstr "Connecteur YubiKey" - -msgid "No free YubiKey slot!" -msgstr "Aucun connecteur YubiKey libre !" - -msgid "The principal for this request doesn't exist." -msgstr "Le principal pour cette demande n'existe pas." - -msgid "Delete a user, keeping the entry available for future use" -msgstr "" -"Supprimer un utilisateur en préservant l'entrée correspondantes pour un " -"usage futur" - -msgid "Delete a user" -msgstr "Supprimer un utilisateur" - -msgid "preserve and no-preserve cannot be both set" -msgstr "preserve et no-preserve ne peuvent être indiqués simultanément" - -#, python-format -msgid "Removing %(servers)s from replication topology, please wait..." -msgstr "" -"Suppression de %(servers)s de la topologie de réplication, merci de " -"patienter..." - -msgid "Servers details:" -msgstr "Informations sur les serveurs :" - -#, python-format -msgid "Profile configuration stored in file '%(file)s'" -msgstr "Profil de configuration enregistré dans le fichier « %(file)s »" - -msgid "" -"Unable to display QR code using the configured output encoding. Please use " -"the token URI to configure your OTP device" -msgstr "" -"Impossible d'afficher le code QR avec l'encodage configuré sur la sortie. " -"Merci d'utiliser l'URI du jeton pour configurer votre jeton OTP" - -msgid "" -"QR code width is greater than that of the output tty. Please resize your " -"terminal." -msgstr "" -"La largeur du code QR est supérieure à celle du terminal. Merci d'agrandir " -"votre fenêtre de terminal." - -msgid "Synchronize an OTP token." -msgstr "Synchroniser un jeton OTP." - -msgid "User ID" -msgstr "Identifiant utilisateur" - -msgid "First Code" -msgstr "Premier code" - -msgid "Second Code" -msgstr "Second code" - -msgid "Token ID" -msgstr "ID du jeton" +msgid "File to load the certificate from." +msgstr "Fichier depuis lequel charger le certificat." msgid "Please choose a type of DNS resource record to be added" msgstr "Veuillez choisir un type d'enregistrement de ressource DNS à ajouter" @@ -8928,91 +8111,87 @@ msgstr "Cela peut prendre un peu de temps, veuillez patienter..." msgid "DNS forwarder" msgstr "Transmetteur DNS" -msgid "Unrevoked" -msgstr "Réintégré" +msgid "" +"\n" +"YubiKey Tokens\n" +msgstr "" +"\n" +"Jetons YubiKey\n" -msgid "Error" -msgstr "Erreur" +msgid "" +"\n" +"Manage YubiKey tokens.\n" +msgstr "" +"\n" +"Gestion de jetons YubiKey.\n" -msgid "Input filename" -msgstr "Nom du fichier en entrée" +msgid "" +"\n" +"This code is an extension to the otptoken plugin and provides support for\n" +"reading/writing YubiKey tokens directly.\n" +msgstr "" +"\n" +"Ce code est une extension du greffon « otptoken » ; il fournit la prise en\n" +"charge pour lire/écrire des jetons YubiKey directement.\n" -msgid "File to load the certificate from." -msgstr "Fichier depuis lequel charger le certificat." +msgid "" +"\n" +"EXAMPLES:\n" +msgstr "" +"\n" +"EXEMPLES :\n" -msgid "Failed members" -msgstr "Membres en échec" +msgid "" +"\n" +" Add a new token:\n" +" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" +msgstr "" +"\n" +" Ajouter un nouveau jeton :\n" +" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" -msgid "Failed source hosts/hostgroups" -msgstr "Hôtes/groupes d'hôtes source en échec" +msgid "Add a new YubiKey OTP token." +msgstr "Ajouter un nouveau jeton OTP YubiKey." -msgid "Failed hosts/hostgroups" -msgstr "Hôtes/groupes d'hôtes en échec" +msgid "YubiKey slot" +msgstr "Connecteur YubiKey" -msgid "Failed users/groups" -msgstr "Utilisateurs/groupes en échec" - -msgid "Failed service/service groups" -msgstr "Services/groupes de service en échec" - -msgid "Failed to remove" -msgstr "Échec à la suppression" - -msgid "Failed RunAs" -msgstr "Échec de « RunAs »" - -msgid "Failed RunAsGroup" -msgstr "Échec de « RunAsGroup »" - -msgid "Failed profiles" -msgstr "Profils en échec" - -msgid "Failed CAs" -msgstr "AC en échec" - -msgid "Failed managedby" -msgstr "Échec de « managedby »" - -msgid "Failed allowed to retrieve keytab" -msgstr "Échec de l'autorisation de récupération des tableaux de clés" - -msgid "Failed allowed to create keytab" -msgstr "Échec de l'autorisation de création de tableaux de clés" - -msgid "Failed targets" -msgstr "Échec de la cible" - -msgid "Out of memory\n" -msgstr "Mémoire saturée\n" - -msgid "Warning unrecognized encryption type.\n" -msgstr "Avertissement, type de chiffrement inconnu.\n" - -msgid "Warning unrecognized salt type.\n" -msgstr "Avertissement, type « salt » inconnu.\n" - -msgid "Out of memory!?\n" -msgstr "Mémoire saturée !?\n" - -msgid "Enctype comparison failed!\n" -msgstr "Échec de comparaison du « enctype » !\n" - -msgid "Failed to create random key!\n" -msgstr "Échec de création d'une clé aléatoire !\n" - -msgid "Failed to create key!\n" -msgstr "Échec de création de la clé !\n" - -msgid "Bad or unsupported salt type.\n" -msgstr "Type « salt » non-conforme ou non pris en compte.\n" +msgid "No free YubiKey slot!" +msgstr "Aucun connecteur YubiKey libre !" #, python-format -msgid "all masters must have %(role)s role enabled" -msgstr "tous les maîtres doivent avoir le rôle %(role)s activé" +msgid "Unknown option: %(option)s" +msgstr "Option inconnue : %(option)s" -#, python-format -msgid "must have %(role)s role enabled" -msgstr "doit avoir le rôle %(role)s activé" +msgid "Trusting forest" +msgstr "Forêt en cours de mise en confiance" + +msgid "Trusted forest" +msgstr "Forêt de confiance" + +msgid "Established and verified" +msgstr "Établie et vérifiée" + +msgid "Waiting for confirmation by remote side" +msgstr "En attente de confirmation par la partie distante" + +msgid "Unknown" +msgstr "Inconnu" + +msgid "Non-Active Directory domain" +msgstr "Domaine autre que Active Directory" + +msgid "Active Directory domain" +msgstr "Domaine Active Directory" + +msgid "RFC4120-compliant Kerberos realm" +msgstr "Domaine Kerberos conforme à la RFC4120" + +msgid "" +"Non-transitive external trust to a domain in another Active Directory forest" +msgstr "" +"Relation d'approbation externe non transitive vers un domaine dans une autre " +"forêt Active Directory" msgid "" "\n" @@ -9148,6 +8327,39 @@ msgstr "" "vérifiez que le DNS AD est capable de résoudre les enregistrements SRV " "%(records)s vers le serveur IPA adéquat." +#, python-format +msgid "Unable to communicate with CMS (status %d)" +msgstr "Impossible de communiquer avec le CMS (état %d)" + +#, python-format +msgid "all masters must have %(role)s role enabled" +msgstr "tous les maîtres doivent avoir le rôle %(role)s activé" + +#, python-format +msgid "must have %(role)s role enabled" +msgstr "doit avoir le rôle %(role)s activé" + +msgid "Request must be a dict" +msgstr "La requête doit être un dictionnaire" + +msgid "Request is missing \"method\"" +msgstr "Il manque le paramètre « method » à la requête" + +msgid "Request is missing \"params\"" +msgstr "Il manque le paramètre « params » à la requête" + +msgid "params must be a list" +msgstr "« params » doit être une liste" + +msgid "params must contain [args, options]" +msgstr "« params » doit contenir [args, options]" + +msgid "params[0] (aka args) must be a list" +msgstr "« params[0] » (alias « args ») doit être une liste" + +msgid "params[1] (aka options) must be a dict" +msgstr "« params[1] » (alias « options ») doit être un dictionnaire " + #, python-format msgid "" "\n" @@ -9177,6 +8389,2119 @@ msgstr "" "La topologie ne permet pas au serveur %(server)s de se répliquer avec les " "serveurs :" +msgid "Allowed to Impersonate" +msgstr "Autorisé à prendre l'identité" + +msgid "Member principals" +msgstr "Principaux membres de" + +msgid "Add target to a named service delegation." +msgstr "Ajouter des cibles à une délégation de service nommé" + +#, python-format +msgid "member %s" +msgstr "%s membre" + +msgid "Remove member from a named service delegation." +msgstr "Retirer des membres d'une délégation de service nommé" + +msgid "service delegation rule" +msgstr "règle de délégation de service" + +msgid "service delegation rules" +msgstr "règles de délégation de service" + +msgid "Service delegation rules" +msgstr "Règles de délégation de service" + +msgid "Service delegation rule" +msgstr "Règle de délégation de service" + +#, python-format +msgid "Added service delegation rule \"%(value)s\"" +msgstr "Règle de délégation de service « %(value)s » ajoutée" + +#, python-format +msgid "Deleted service delegation \"%(value)s\"" +msgstr "Règle de délégation de service « %(value)s » supprimée" + +msgid "privileged service delegation rule" +msgstr "règle de délégation de service privilégié" + +#, python-format +msgid "%(count)d service delegation rule matched" +msgid_plural "%(count)d service delegation rules matched" +msgstr[0] "%(count)d règle de délégation de service correspondante" +msgstr[1] "%(count)d règles de délégation de service correspondantes" + +msgid "service delegation target" +msgstr "cible de délégation de service" + +msgid "service delegation targets" +msgstr "cibles de délégation de service" + +msgid "Service delegation targets" +msgstr "Cibles de délégation de service" + +msgid "Service delegation target" +msgstr "Cible de délégation de service" + +#, python-format +msgid "Added service delegation target \"%(value)s\"" +msgstr "Cible de délégation de service « %(value)s » ajoutée" + +#, python-format +msgid "Deleted service delegation target \"%(value)s\"" +msgstr "Cible de délégation de service « %(value)s » supprimée" + +msgid "privileged service delegation target" +msgstr "cible de délégation de service privilégiée" + +#, python-format +msgid "%(count)d service delegation target matched" +msgid_plural "%(count)d service delegation targets matched" +msgstr[0] "%(count)d cible de délégation de service correspondante" +msgstr[1] "%(count)d cibles de délégation de service correspondantes" + +msgid "" +"\n" +"IPA server roles\n" +msgstr "" +"\n" +"Rôles serveurs IPA\n" + +msgid "" +"\n" +"Get status of roles (DNS server, CA, etc.) provided by IPA masters.\n" +msgstr "" +"\n" +"Obtenir l'état des rôles (serveur DNS, AC, etc. )fournis par les maîtres " +"IPA.\n" + +msgid "" +"\n" +" Show status of 'DNS server' role on a server:\n" +" ipa server-role-show ipa.example.com \"DNS server\"\n" +msgstr "" +"\n" +" Afficher l'état du rôle « Serveur DNS » d'un serveur :\n" +" ipa server-role-show ipa.example.com \"DNS server\"\n" + +msgid "" +"\n" +" Show status of all roles containing 'AD' on a server:\n" +" ipa server-role-find --server ipa.example.com --role='AD'\n" +msgstr "" +"\n" +" Afficher l'état de tous les rôles contenant « AD » sur un serveur :\n" +" ipa server-role-find --server ipa.example.com --role='AD'\n" + +msgid "" +"\n" +" Show status of all configured roles on a server:\n" +" ipa server-role-find ipa.example.com\n" +msgstr "" +"\n" +" Afficher l'état de tous les rôles configurés sur un serveur :\n" +" ipa server-role-find ipa.example.com\n" + +msgid "server role" +msgstr "rôle serveur" + +msgid "server roles" +msgstr "rôles serveur" + +msgid "IPA Server Roles" +msgstr "Rôles serveur IPA" + +msgid "IPA Server Role" +msgstr "Rôle serveur IPA" + +msgid "IPA server role name" +msgstr "Nom du rôle serveur IPA" + +msgid "Role status" +msgstr "État du rôle" + +msgid "Status of the role" +msgstr "État du rôle" + +msgid "Show role status on a server" +msgstr "Afficher l'état du rôle sur un serveur" + +msgid "Find a server role on a server(s)" +msgstr "Trouver les rôles serveur de serveurs" + +#, python-format +msgid "%(count)s server role matched" +msgid_plural "%(count)s server roles matched" +msgstr[0] "%(count)s rôle serveur correspondant" +msgstr[1] "%(count)s rôles serveur correspondants" + +msgid "roles" +msgstr "rôles" + +msgid "IPA role name" +msgstr "Nom du rôle IPA" + +msgid "kerberos ticket policy settings" +msgstr "réglages de la politique de tickets Kerberos" + +msgid "Kerberos Ticket Policy" +msgstr "Politique de tickets Kerberos" + +#, python-format +msgid "Ticket policy for %s could not be read" +msgstr "La politique de ticket pour %s ne peut pas être lue" + +msgid "Default ticket policy could not be read" +msgstr "La politique de ticket par défaut ne peut pas être lue" + +msgid "ID View" +msgstr "Vue d'identifiants" + +msgid "system ID View" +msgstr "Vue d'identifiants du système" + +msgid "ID Views" +msgstr "Vues d'identifiants" + +msgid "User object overrides" +msgstr "Surcharges des objets utilisateurs" + +msgid "Group object overrides" +msgstr "Surcharges des objets groupes" + +msgid "Hosts the view applies to" +msgstr "Hôtes auxquels la vue s'applique" + +#, python-format +msgid "Added ID View \"%(value)s\"" +msgstr "Vue d'identifiants « %(value)s » ajoutée" + +#, python-format +msgid "Deleted ID View \"%(value)s\"" +msgstr "Vue d'identifiants « %(value)s » supprimée" + +#, python-format +msgid "Modified an ID View \"%(value)s\"" +msgstr "Vue d'identifiant « %(value)s » modifiée" + +#, python-format +msgid "%(count)d ID View matched" +msgid_plural "%(count)d ID Views matched" +msgstr[0] "%(count)d vue d'identifiants correspondante" +msgstr[1] "%(count)d vues d'identifiants correspondantes" + +msgid "Default Trust View cannot be applied on hosts" +msgstr "" +"La vue de la relation d'approbation par défaut ne peut être appliquée sur un " +"hôte" + +msgid "not found" +msgstr "introuvable" + +msgid "ID View already applied" +msgstr "Vue d'identifiants déjà appliquée" + +msgid "value" +msgstr "valeur" + +#, python-format +msgid "ID View applied to %i host." +msgstr "Vue d'identifiants appliquée à %i hôte." + +#, python-format +msgid "ID View applied to %i hosts." +msgstr "Vue d'identifiants appliquée à %i hôtes." + +#, python-format +msgid "ID View cleared from %i host." +msgstr "Vue d'identifiants retirée de %i hôte." + +#, python-format +msgid "ID View cleared from %i hosts." +msgstr "Vue d'identifiants retirée de %i hôtes." + +msgid "" +"You are trying to reference a magic private group which is not allowed to be " +"overridden. Try overriding the GID attribute of the corresponding user " +"instead." +msgstr "" +"Vous essayez de référencer un groupe privé magique qui ne peut être " +"surchargé. Essayez plutôt de surcharger l'attribut GID de l'utilisateur." + +msgid "IPA object" +msgstr "objet IPA" + +#, python-format +msgid "Anchor '%(anchor)s' could not be resolved." +msgstr "La balise « %(anchor)s » ne peut être résolue." + +msgid "Default Trust View cannot contain IPA users" +msgstr "" +"La vue de la relation d'approbation par défaut ne peut contenir des " +"utilisateurs IPA" + +msgid "Add a new ID override." +msgstr "Ajouter une nouvelle surcharge d'identifiant." + +#, python-format +msgid "Added ID override \"%(value)s\"" +msgstr "Surcharge d'identifiants « %(value)s » ajoutée" + +msgid "Delete an ID override." +msgstr "Supprimer une surcharge d'identifiants." + +#, python-format +msgid "Deleted ID override \"%(value)s\"" +msgstr "Surcharge d'identifiants « %(value)s » supprimée" + +msgid "Modify an ID override." +msgstr "Modifier une surcharge d'identifiants." + +#, python-format +msgid "Modified an ID override \"%(value)s\"" +msgstr "Surcharge d'identifiants « %(value)s » modifiée" + +msgid "ID override" +msgstr "Surcharge d'identifiants" + +msgid "ID overrides cannot be renamed" +msgstr "Les surchages d'identifiants ne peuvent être renommées" + +msgid "Search for an ID override." +msgstr "Rechercher une surcharge d'identifiants." + +#, python-format +msgid "%(count)d ID override matched" +msgid_plural "%(count)d ID overrides matched" +msgstr[0] "%(count)d surcharge d'identifiants correspondante" +msgstr[1] "%(count)d surcharges d'identifiants correspondantes" + +msgid "Display information about an ID override." +msgstr "Afficher les informations d'une surcharge d'identifiants." + +msgid "User ID override" +msgstr "Surcharge d'identifiant utilisateur" + +msgid "User ID overrides" +msgstr "Surcharges d'identifiants utilisateurs" + +msgid "Base-64 encoded user certificate" +msgstr "Certificat de l'utilisateur encodé en Base-64" + +msgid "Group ID override" +msgstr "Surcharge d'identifiant de groupe" + +msgid "Group ID overrides" +msgstr "Surcharges d'identifiants de groupes" + +msgid "Add one or more certificates to the idoverrideuser entry" +msgstr "" +"Ajouter un ou plusieurs certificats à l'entrée de l'utilisateur surchargé " +"(idoverrideuser)" + +#, python-format +msgid "Added certificates to idoverrideuser \"%(value)s\"" +msgstr "Certificats ajoutés à l'utilisateur surchargé « %(value)s »" + +msgid "Remove one or more certificates to the idoverrideuser entry" +msgstr "Supprimer les certificats de l'entrée de l'utilisateur surchargé" + +#, python-format +msgid "Removed certificates from idoverrideuser \"%(value)s\"" +msgstr "Certificats supprimés de l'utilisateur surchargé « %(value)s »" + +#, python-format +msgid "Added User ID override \"%(value)s\"" +msgstr "Surcharge d'identifiants utilisateurs « %(value)s » ajoutée" + +#, python-format +msgid "Deleted User ID override \"%(value)s\"" +msgstr "Surcharge d'identifiants utilisateurs « %(value)s » supprimée" + +#, python-format +msgid "Modified an User ID override \"%(value)s\"" +msgstr "Surcharge d'identifiants utilisateurs « %(value)s » modifiée" + +#, python-format +msgid "%(count)d User ID override matched" +msgid_plural "%(count)d User ID overrides matched" +msgstr[0] "%(count)d surcharge d'identifiants utilisateurs correspondante" +msgstr[1] "%(count)d surcharges d'identifiants utilisateurs correspondantes" + +#, python-format +msgid "Added Group ID override \"%(value)s\"" +msgstr "Surcharge d'identifiants de groupes « %(value)s » ajoutée" + +#, python-format +msgid "Deleted Group ID override \"%(value)s\"" +msgstr "Surcharge d'identifiants de groupes « %(value)s » supprimée" + +#, python-format +msgid "Modified an Group ID override \"%(value)s\"" +msgstr "Surcharge d'identifiants de groupes « %(value)s » modifiée" + +#, python-format +msgid "%(count)d Group ID override matched" +msgid_plural "%(count)d Group ID overrides matched" +msgstr[0] "%(count)d surcharge d'identifiants de groupes correspondante" +msgstr[1] "%(count)d surcharges d'identifiants de groupes correspondantes" + +msgid "OTP configuration options" +msgstr "Options de configuration pour les mots de passe à usage unique" + +msgid "OTP Configuration" +msgstr "Configuration pour les mots de passe à usage unique" + +#, python-format +msgid "" +"Insufficient 'write' privilege to the 'krbLastPwdChange' attribute of entry " +"'%s'." +msgstr "" +"Privilège « write » insuffisant pour l'attribut « krbLastPwdChange » de " +"l'entrée « %s »." + +msgid "pkinit" +msgstr "« pkinit »" + +msgid "PKINIT" +msgstr "PKINIT" + +msgid "operation not defined" +msgstr "opération non définie" + +#, python-format +msgid "not allowed to perform operation: %s" +msgstr "non autorisé à effectuer l'opération : %s" + +msgid "No such virtual command" +msgstr "Commande virtuelle inconnue" + +#, 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 est déjà utilisé par " +"%(gname)s)" + +msgid "password policy" +msgstr "politique de mots de passe" + +msgid "password policies" +msgstr "politiques de mot de passe" + +msgid "Password Policies" +msgstr "Politiques de mot de passe" + +msgid "Password Policy" +msgstr "Politique de gestion des mots de passe" + +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." + +msgid "cannot delete global password policy" +msgstr "impossible de supprimer une politique de mot de passe globale" + +msgid "priority cannot be set on global policy" +msgstr "la priorité ne peut être définie sur la politique globale" + +msgid "" +"\n" +"Sudo Rules\n" +msgstr "" +"\n" +"Règles sudo\n" + +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" +msgstr "" +"\n" +"Sudo (su « do ») autorise un administrateur système à déléguer la " +"possibilité\n" +" à certains utilisateurs (ou groupes d'utilisateurs) d'exécuter certaines\n" +" (ou toutes) commandes en tant qu'administrateur ou autre utilisateur, tout\n" +" en donnant des moyens de contrôle des commandes et de leurs arguments.\n" + +msgid "" +"\n" +"FreeIPA provides a means to configure the various aspects of Sudo:\n" +" Users: The user(s)/group(s) allowed to invoke Sudo.\n" +" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke " +"Sudo.\n" +" Allow Command: The specific command(s) permitted to be run via Sudo.\n" +" Deny Command: The specific command(s) prohibited to be run via Sudo.\n" +" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be " +"invoked with.\n" +" 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" +msgstr "" +"\n" +"FreeIPA offre les moyens de configurer les divers aspects de sudo :\n" +" Users : utilisateur/groupe autorisés à invoquer sudo.\n" +" Hosts : hôte/groupe d'hôte dont l'utilisateur peut invoquer sudo.\n" +" Allow Command : commande donnée pouvant être exécutée via sudo.\n" +" Deny Command : commande donnée interdite d'exécution avec sudo.\n" +" RunAsUser : utilisateur ou groupe dont les droits sudo pourront être " +"invoqués.\n" +" RunAsGroup : groupe dont les droits sudo associés au GID pourront être " +"invoqués.\n" +" Options : les diverses options de sudoers pouvant modifier le " +"comportement de sudo.\n" + +msgid "" +"\n" +"An order can be added to a sudorule to control the order in which they\n" +"are evaluated (if the client supports it). This order is an integer and\n" +"must be unique.\n" +msgstr "" +"\n" +"Il est possible d'ajouter aux règles sudo l'indication de l'ordre dans\n" +"lequel elles doivent être examinées (si le client le prend en charge).\n" +"Cet ordre est défini par un entier, qui doit être unique.\n" + +msgid "" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +msgstr "" +"\n" +"FreeIPA permet la désignation d'un « binddn » à utiliser avec sudo situé " +"à :\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" + +msgid "" +"\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" +msgstr "" +"\n" +"Pour activer « binddn », exécuter la commande pour fixer le mot de passe :\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" + +msgid "" +"\n" +" Create a new rule:\n" +" ipa sudorule-add readfiles\n" +msgstr "" +"\n" +" Création d'une nouvelle règle :\n" +" ipa sudorule-add readfiles\n" + +msgid "" +"\n" +" Add sudo command object and add it as allowed command in the rule:\n" +" ipa sudocmd-add /usr/bin/less\n" +" ipa sudorule-add-allow-command readfiles --sudocmds /usr/bin/less\n" +msgstr "" +"\n" +" Ajout d'un objet de commande sudo et ajout en tant que commande autorisée " +"dans la règle :\n" +" ipa sudocmd-add /usr/bin/less\n" +" ipa sudorule-add-allow-command readfiles --sudocmds /usr/bin/less\n" + +msgid "" +"\n" +" Add a host to the rule:\n" +" ipa sudorule-add-host readfiles --hosts server.example.com\n" +msgstr "" +"\n" +" Ajout d'un hôte à la règle :\n" +" ipa sudorule-add-host readfiles --hosts server.example.com\n" + +msgid "" +"\n" +" Add a user to the rule:\n" +" ipa sudorule-add-user readfiles --users jsmith\n" +msgstr "" +"\n" +" Ajout d'un utilisateur à la règle :\n" +" ipa sudorule-add-user readfiles --users jsmith\n" + +msgid "" +"\n" +" Add a special Sudo rule for default Sudo server configuration:\n" +" ipa sudorule-add defaults\n" +msgstr "" +"\n" +" Ajout d'une règle sudo spéciale pour la configuration du serveur sudo par " +"défaut :\n" +" ipa sudorule-add defaults\n" + +msgid "" +"\n" +" Set a default Sudo option:\n" +" ipa sudorule-add-option defaults --sudooption '!authenticate'\n" +msgstr "" +"\n" +" Définition d'une option par défaut pour sudo :\n" +" ipa sudorule-add-option defaults --sudooption '!authenticate'\n" + +msgid "this option has been deprecated." +msgstr "cette option a été abandonnée." + +msgid "sudo rules" +msgstr "règles sudo" + +msgid "Sudo Rules" +msgstr "Règles sudo" + +msgid "Sudo Rule" +msgstr "Règle sudo" + +#, python-format +msgid "order must be a unique value (%(order)d already used by %(rule)s)" +msgstr "" +"le rang doit être une valeur unique (%(order)d déjà utilisée par %(rule)s)" + +#, python-format +msgid "Added Sudo Rule \"%(value)s\"" +msgstr "Règle sudo « %(value)s » ajoutée" + +#, python-format +msgid "Deleted Sudo Rule \"%(value)s\"" +msgstr "Règle sudo « %(value)s » supprimée" + +#, python-format +msgid "Modified Sudo Rule \"%(value)s\"" +msgstr "Règle sudo « %(value)s » modifiée" + +#, python-format +msgid "" +"%(type)s category cannot be set to 'all' while there are allowed %(objects)s" +msgstr "" +"la catégorie %(type)s ne peut pas être définie à « all » tant que sont " +"alloués %(objects)s" + +msgid "users" +msgstr "utilisateurs" + +msgid "command" +msgstr "commande" + +msgid "commands" +msgstr "commandes" + +msgid "runAs user" +msgstr "utilisateur runAs" + +msgid "runAs users" +msgstr "utilisateurs runAs" + +msgid "group runAs" +msgstr "groupe runAs" + +msgid "runAs groups" +msgstr "groupes runAs" + +#, python-format +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "%(count)d règle sudo correspondant" +msgstr[1] "%(count)d règles sudo correspondant" + +msgid "commands cannot be added when command category='all'" +msgstr "" +"des commandes ne peuvent pas être ajoutées quand la catégorie de commande " +"est « all »" + +msgid "users cannot be added when user category='all'" +msgstr "" +"des utilisateurs ne peuvent pas être ajoutés quand la catégorie de " +"l'utilisateur est « all »" + +msgid "hosts cannot be added when host category='all'" +msgstr "" +"des hôtes ne peuvent pas être ajoutés quand la catégorie de l'hôte est " +"« all »" + +msgid "users cannot be added when runAs user or runAs group category='all'" +msgstr "" +"des utilisateurs ne peuvent pas être ajoutés quand la catégorie « RunAs " +"User » ou « RunAs Group » est « all »" + +#, python-format +msgid "RunAsUser does not accept '%(name)s' as a user name" +msgstr "« RunAsUser » n'accepte pas « %(name)s » comme nom d'utilisateur" + +#, python-format +msgid "RunAsUser does not accept '%(name)s' as a group name" +msgstr "« RunAsUser » n'accepte pas « %(name)s » comme nom de groupe" + +#, python-format +msgid "RunAsGroup does not accept '%(name)s' as a group name" +msgstr "« RunAsGroup » n'accepte pas « %(name)s » comme nom de groupe" + +msgid "Role" +msgstr "Rôle" + +#, python-format +msgid "Added role \"%(value)s\"" +msgstr "Rôle « %(value)s » ajouté" + +#, python-format +msgid "Deleted role \"%(value)s\"" +msgstr "Rôle « %(value)s » supprimé" + +#, python-format +msgid "Modified role \"%(value)s\"" +msgstr "Rôle « %(value)s » modifié" + +#, 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 correspondant" + +msgid "Certificate Authority" +msgstr "Autorité de certification" + +msgid "Certificate Authorities" +msgstr "Autorités de certification" + +msgid "Name" +msgstr "Nom" + +msgid "Name for referencing the CA" +msgstr "Nom de référencement de l'AC" + +msgid "Description of the purpose of the CA" +msgstr "Description de l'objet de l'AC" + +msgid "Authority ID" +msgstr "ID de l'autorité" + +msgid "Dogtag Authority ID" +msgstr "ID de l'autorité Dogtag" + +msgid "Subject DN" +msgstr "DN de l'objet" + +msgid "Subject Distinguished Name" +msgstr "Nom distinctif de l'objet" + +msgid "Issuer DN" +msgstr "DN de l'émetteur" + +msgid "Issuer Distinguished Name" +msgstr "Nom distinctif de l'émetteur" + +msgid "Search for CAs." +msgstr "Rechercher des AC." + +#, python-format +msgid "%(count)d CA matched" +msgid_plural "%(count)d CAs matched" +msgstr[0] "%(count)d AC correspondante" +msgstr[1] "%(count)d AC correspondantes" + +msgid "Display the properties of a CA." +msgstr "Afficher les propriétés d'une AC." + +msgid "Create a CA." +msgstr "Créer une AC." + +#, python-format +msgid "Created CA \"%(value)s\"" +msgstr "AC « %(value)s » créée" + +#, python-format +msgid "Insufficient 'add' privilege for entry '%s'." +msgstr "Privilège « add » insuffisant pour l'entrée « %s »." + +msgid "Delete a CA." +msgstr "Supprimer une AC." + +#, python-format +msgid "Deleted CA \"%(value)s\"" +msgstr "AC « %(value)s » supprimée" + +msgid "CA" +msgstr "AC" + +msgid "IPA CA cannot be deleted" +msgstr "L'AC de IPA ne peut être supprimée" + +msgid "Modify CA configuration." +msgstr "Modifier la configuration de l'AC" + +#, python-format +msgid "Modified CA \"%(value)s\"" +msgstr "AC « %(value)s » modifiée" + +msgid "netgroups" +msgstr "groupes réseau" + +msgid "Netgroups" +msgstr "Groupes réseau" + +msgid "Netgroup" +msgstr "Groupe réseau" + +#, python-format +msgid "Added netgroup \"%(value)s\"" +msgstr "Groupe réseau « %(value)s » ajouté" + +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" +msgstr "" +"Un groupe d'hôtes nommé « %s » existe déjà. Les groupes d'hôtes et les " +"groupes réseau partagent le même espace de nommage" + +#, python-format +msgid "Deleted netgroup \"%(value)s\"" +msgstr "Groupe réseau « %(value)s » supprimé" + +#, python-format +msgid "Modified netgroup \"%(value)s\"" +msgstr "Groupe réseau « %(value)s » supprimé" + +msgid "user category cannot be set to 'all' while there are allowed users" +msgstr "" +"une catégorie d'utilisateurs ne peut pas être définie à « all » tant qu'il " +"reste des utilisateurs autorisés" + +msgid "host category cannot be set to 'all' while there are allowed hosts" +msgstr "" +"une catégorie d'hôtes ne peut pas être définie à « all » tant qu'il reste " +"des hôtes autorisés" + +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" +msgstr[0] "%(count)d groupe réseau correspondant" +msgstr[1] "%(count)d groupes réseau correspondant" + +msgid "delegation" +msgstr "délégation" + +msgid "delegations" +msgstr "délégations" + +msgid "Delegations" +msgstr "Délégations" + +msgid "Delegation" +msgstr "Délégation" + +msgid "ACI" +msgstr "ACI" + +#, python-format +msgid "Added delegation \"%(value)s\"" +msgstr "Délégation « %(value)s » ajoutée" + +#, python-format +msgid "Deleted delegation \"%(value)s\"" +msgstr "Délégation « %(value)s » supprimée" + +#, python-format +msgid "Modified delegation \"%(value)s\"" +msgstr "Délégation « %(value)s » modifiée" + +#, 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" + +msgid "ID Ranges" +msgstr "Plages d'ID" + +msgid "ID Range" +msgstr "Plage d'ID" + +msgid "local domain range" +msgstr "Plage pour domaine local" + +msgid "Active Directory domain range" +msgstr "Plage pour les domaines Active Directory" + +msgid "Active Directory trust range with POSIX attributes" +msgstr "" +"Plage pour les relations d'approbation Active Directory avec attributs POSIX" + +#, python-brace-format +msgid "ID range type, one of {vals}" +msgstr "Type de plage d'ID, une valeur parmi {vals}" + +msgid "" +"range modification leaving objects with ID out of the defined range is not " +"allowed" +msgstr "" +"une modification de plage laissant des objets avec un ID en dehors de la " +"plage définie n'est pas autorisée" + +msgid "" +"Cannot perform SID validation without Samba 4 support installed. Make sure " +"you have installed server-trust-ad sub-package of IPA on the server" +msgstr "" +"Impossible de réaliser la validation du SID sans installer la prise en " +"charge de Samba 4. Assurez-vous d'avoir installé le sous-paquet d'IPA " +"« server-trust-ad » sur le serveur" + +msgid "" +"Cross-realm trusts are not configured. Make sure you have run ipa-adtrust-" +"install on the IPA server first" +msgstr "" +"Les confiances croisées entre domaines n'ont pas été configurées. Assurez-" +"vous d'avoir préalablement exécuté « ipa-adtrust-install » sur le serveur" + +msgid "SID is not recognized as a valid SID for a trusted domain" +msgstr "" +"Le SID n'est pas reconnu en tant que SID valide pour un domaine approuvé" + +#, python-brace-format +msgid "" +"\n" +" Add new ID range.\n" +"\n" +" To add a new ID range you always have to specify\n" +"\n" +" --base-id\n" +" --range-size\n" +"\n" +" Additionally\n" +"\n" +" --rid-base\n" +" --secondary-rid-base\n" +"\n" +" may be given for a new ID range for the local domain while\n" +"\n" +" --rid-base\n" +" --dom-sid\n" +"\n" +" must be given to add a new range for a trusted AD domain.\n" +"\n" +"{0}\n" +msgstr "" +"\n" +"Ajouter une nouvelle plage d''identifiants.\n" +"\n" +"Pour ajouter une nouvelle plage d''identifiants vous devez toujours " +"préciser\n" +"\n" +"--base-id\n" +"--range-size\n" +"\n" +"En outre,\n" +"\n" +"--rid-base\n" +"--secondary-rid-base\n" +"\n" +"seront indiqués pour une nouvelle plage d''identifiants dans le domaine " +"local alors que\n" +"\n" +"--rid-base\n" +"--dom-sid\n" +"\n" +"doivent l''être pour ajouter une nouvelle plage pour un domaine AD de " +"confiance.\n" +"\n" +"{0}\n" + +#, python-format +msgid "Added ID range \"%(value)s\"" +msgstr "Plage d'ID « %(value)s » ajoutée" + +msgid "Options dom-sid and dom-name cannot be used together" +msgstr "" +"Les options dom-sid et dom-name ne peuvent pas être utilisées simultanément" + +msgid "" +"SID for the specified trusted domain name could not be found. Please specify " +"the SID directly using dom-sid option." +msgstr "" +"Impossible de trouver le SID du domaine approuvé désigné. Veuillez indiquer " +"directement le SID avec l'option « dom-sid »." + +msgid "Options dom-sid/dom-name and rid-base must be used together" +msgstr "" +"Les options « dom-sid/dom-name » et « rid-base » doivent être utilisées " +"simultanément" + +msgid "" +"Option rid-base must not be used when IPA range type is ipa-ad-trust-posix" +msgstr "" +"L'option rid-base ne doit pas être utilisée lorsque le type de plage IPA est " +"ipa-ad-trust-posix" + +msgid "" +"IPA Range type must be one of ipa-ad-trust or ipa-ad-trust-posix when SID of " +"the trusted domain is specified" +msgstr "" +"Le type de plage IPA doit être « ipa-ad-trust » ou « ipa-ad-trust-posix » " +"lorsque le SID du domaine approuvé est indiqué." + +msgid "Options dom-sid/dom-name and secondary-rid-base cannot be used together" +msgstr "" +"Les options « dom-sid/dom-name » et « secondary-rid-base » ne peuvent pas " +"être utilisées simultanément" + +msgid "" +"IPA Range type must not be one of ipa-ad-trust or ipa-ad-trust-posix when " +"SID of the trusted domain is not specified." +msgstr "" +"Le type de plage IPA ne doit être ni « ipa-ad-trust », ni « ipa-ad-trust-" +"posix » lorsque le SID du domaine approuvé n'est pas indiqué." + +msgid "Options secondary-rid-base and rid-base must be used together" +msgstr "" +"Les options « secondary-rid-base » et « rid-base » doivent être utilisées " +"simultanément" + +msgid "Primary RID range and secondary RID range cannot overlap" +msgstr "Les plages de RID principales et secondaires ne peuvent se recouvrir" + +msgid "" +"You must specify both rid-base and secondary-rid-base options, because ipa-" +"adtrust-install has already been run." +msgstr "" +"Vous devez préciser les deux options « rid-base » et « secondary-rid-base », " +"car « ipa-adtrust-install » a déjà été exécuté." + +#, python-format +msgid "Deleted ID range \"%(value)s\"" +msgstr "Plage d'ID « %(value)s » supprimée" + +#, python-format +msgid "%(count)d range matched" +msgid_plural "%(count)d ranges matched" +msgstr[0] "%(count)d plage correspondant" +msgstr[1] "%(count)d plages correspondant" + +#, python-brace-format +msgid "" +"Modify ID range.\n" +"\n" +"{0}\n" +msgstr "" +"Modifier une plage d''identifiants.\n" +"\n" +"{0}\n" + +#, python-format +msgid "Modified ID range \"%(value)s\"" +msgstr "Plage d'ID « %(value)s » modifiée" + +msgid "" +"This command can not be used to change ID allocation for local IPA domain. " +"Run `ipa help idrange` for more information" +msgstr "" +"Cette commande ne peut être utilisée que pour modifier l'allocation d'ID " +"pour le domaine local. Utilisez « ipa help idrange » pour plus " +"d'informations." + +msgid "Options dom-sid and secondary-rid-base cannot be used together" +msgstr "" +"Les options « dom-sid » et « secondary-rid-base » ne peuvent pas être " +"utilisées simultanément" + +msgid "Options dom-sid and rid-base must be used together" +msgstr "" +"Les options « dom-sid » et « rid-base » doivent être utilisées simultanément" + +msgid "" +"\n" +"Services\n" +"\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" +"\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" +"\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" +"\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" +"\n" +" Override a default list of supported PAC types for the service:\n" +" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n" +"\n" +" A typical use case where overriding the PAC type is needed is NFS.\n" +" Currently the related code in the Linux kernel can only handle Kerberos\n" +" tickets up to a maximal size. Since the PAC data can become quite large " +"it\n" +" is recommended to set --pac-type=NONE for NFS services.\n" +"\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" +"\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" +"\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" +"\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +msgstr "" +"\n" +"Services\n" +"\n" +"Un service IPA représente un service qui s'exécute sur un hôte. " +"L'enregistrement du\n" +"service IPA peut contenir un principal Kerberos, un certificat SSL ou les " +"deux.\n" +"\n" +"Un service IPA peut être directement géré à partir d'une machine, pour\n" +"autant que des permissions adéquates aient été données à la machine. Ceci\n" +"est vrai même pour les machines autres que celle à laquelle le service est\n" +"associé. Par exemple, demander un certificat SSL en utilisant les\n" +"justificatifs d'identité du principal du service de l'hôte. Pour gérer un\n" +"service en utilisant les références de l'hôte, vous devrez exécuter\n" +"« kinit » en tant qu'hôte :\n" +"\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"\n" +"Ajouter un service IPA permet au service associé de demander un certificat\n" +"SSL ou un tableau de clés, mais cela est réalisé dans une étape distincte ;\n" +"cela n'est pas le résultat de l'ajout du service.\n" +"\n" +"Seule la composante publique du certificat est stockée dans un\n" +"enregistrement de service ; la clé privée n'y est pas enregistrée.\n" +"\n" +"EXEMPLES :\n" +"\n" +" Ajouter un nouveau service IPA :\n" +" ipa service-add HTTP/web.example.com\n" +"\n" +" Autoriser un hôte à gérer un certificat de 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" +" Écraser la liste par défaut des types PAC pris en charge pour le service :\n" +" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n" +"\n" +" NFS est un cas classique où la surcharge du type PAC est nécessaire.\n" +" Actuellement, le code relatif à cette fonction dans le noyau Linux ne " +"gère\n" +" les tickets Kerberos que jusqu'à une taille maximale donnée. Comme les\n" +" données PAC peuvent devenir bien plus grandes, il est recommandé de " +"fixer\n" +" « --pac-type=NONE » pour les services NFS.\n" +"\n" +" Supprimer un service IPA :\n" +" ipa service-del HTTP/web.example.com\n" +"\n" +" Trouver tous les services IPA associés à un hôte :\n" +" ipa service-find web.example.com\n" +"\n" +" Trouver tous les service HTTP :\n" +" ipa service-find HTTP\n" +"\n" +" Désactiver la clé Kerberos et le certificat SSL d'un service :\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Demander un certificat pour un service IPA :\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" + +msgid "" +"\n" +" Allow user to create a keytab:\n" +" ipa service-allow-create-keytab HTTP/web.example.com --users=tuser1\n" +msgstr "" +"\n" +" Autoriser un utilisateur à créer un tableau de clé :\n" +" ipa service-allow-create-keytab HTTP/web.example.com --users=tuser1\n" + +msgid "" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/" +"httpd.keytab\n" +"\n" +msgstr "" +"\n" +" Générer et récupérer un tableau de clés d'un service IPA :\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/" +"httpd.keytab\n" +"\n" + +msgid "Malformed principal" +msgstr "Principal malformé" + +msgid "This principal is required by the IPA master" +msgstr "Ce principal est nécessaire au serveur IPA" + +msgid "service" +msgstr "service" + +msgid "services" +msgstr "services" + +msgid "Service principal alias" +msgstr "Alias de principal de service" + +msgid "Base-64 encoded service certificate" +msgstr "Certificat du service encodé en Base-64" + +msgid "Serial Number" +msgstr "Numéro de série" + +msgid "Serial Number (hex)" +msgstr "Numéro de série (hex)" + +msgid "Issuer" +msgstr "Émetteur" + +msgid "Not Before" +msgstr "Pas avant" + +msgid "Not After" +msgstr "Pas après" + +msgid "Fingerprint (SHA1)" +msgstr "Empreinte (SHA1)" + +msgid "Revocation reason" +msgstr "Raison de la révocation" + +msgid "Authentication Indicators" +msgstr "Indicateurs d'authentification" + +msgid "" +"Defines a whitelist for Authentication Indicators. Use 'otp' to allow OTP-" +"based 2FA authentications. Use 'radius' to allow RADIUS-based 2FA " +"authentications. Other values may be used for custom configurations." +msgstr "" +"Définit une liste blanche d'indicateurs d'authentification. Utiliser « otp » " +"pour autoriser les authentifications à double facteur basé sur les mots de " +"passe à usage unique. Utiliser « radius » pour autoriser l'authentification " +"à double facteur utilisant RADIUS. D'autres valeurs peuvent être utilisées " +"pour des configurations personnalisées." + +msgid "NONE value cannot be combined with other PAC types" +msgstr "La valeur NONE ne peut être combinée avec d'autres types de PAC" + +msgid "Add a new IPA service." +msgstr "Ajouter un nouveau service IPA." + +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "Service « %(value)s » ajouté" + +#, python-format +msgid "The host '%s' does not exist to add a service to." +msgstr "L'hôte « %s » auquel ajouter un service n'existe pas." + +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "Service « %(value)s » supprimé" + +#, python-format +msgid "Modified service \"%(value)s\"" +msgstr "Service « %(value)s » modifié" + +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "%(count)d service correspondant" +msgstr[1] "%(count)d services correspondant" + +#, python-format +msgid "Disabled service \"%(value)s\"" +msgstr "Service « %(value)s » désactivé" + +#, python-format +msgid "Added certificates to service principal \"%(value)s\"" +msgstr "Certificats ajoutés au principal de service « %(value)s »" + +#, python-format +msgid "Removed certificates from service principal \"%(value)s\"" +msgstr "Supprimer les certificats du principal de service « %(value)s »" + +msgid "Add new principal alias to a service" +msgstr "Ajouter un nouvel alias de principal à un service" + +#, python-format +msgid "Added new aliases to the service principal \"%(value)s\"" +msgstr "Alias ajoutés au principal de service « %(value)s »" + +msgid "Remove principal alias from a service" +msgstr "Supprimer un alias de principal d'un service" + +#, python-format +msgid "Removed aliases to the service principal \"%(value)s\"" +msgstr "Alias supprimés du principal de service « %(value)s »" + +msgid "Domain Level cannot be lowered." +msgstr "Le niveau du domaine ne peut être redescendu." + +#, python-brace-format +msgid "Domain Level cannot be raised to {0}, server {1} does not support it." +msgstr "" +"Le niveau actuel du domaine ne peut être relevé à {0}, le serveur {1} ne le " +"prend pas en charge." + +msgid "" +"\n" +"DNS server configuration\n" +msgstr "" +"\n" +"Configuration du serveur DNS\n" + +msgid "" +"\n" +"Manipulate DNS server configuration\n" +msgstr "" +"\n" +"Manipulation de la configuration du serveur DNS\n" + +msgid "" +"\n" +" Show configuration of a specific DNS server:\n" +" ipa dnsserver-show\n" +msgstr "" +"\n" +"Afficher la configuration d'un serveur DNS spécifique :\n" +" ipa dnsserver-show\n" + +msgid "" +"\n" +" Update configuration of a specific DNS server:\n" +" ipa dnsserver-mod\n" +msgstr "" +"\n" +" Modifier la configuration d'un serveur DNS spécifique :\n" +" ipa dnsserver-mod\n" + +msgid "DNS server" +msgstr "Serveur DNS" + +msgid "DNS servers" +msgstr "Serveurs DNS" + +msgid "DNS Servers" +msgstr "Serveurs DNS" + +msgid "DNS Server" +msgstr "Serveur DNS" + +msgid "DNS Server name" +msgstr "Nom du serveur DNS" + +msgid "Forwarders" +msgstr "Redirecteurs de zone" + +msgid "" +"Per-server forwarders. A custom port can be specified for each forwarder " +"using a standard format \"IP_ADDRESS port PORT\"" +msgstr "" +"Redirecteurs par serveur. Un port personnalisé peut être indiqué pour chaque " +"redirecteur avec le format standard « adresse_IP port PORT »" + +msgid "" +"Per-server conditional forwarding policy. Set to \"none\" to disable " +"forwarding to global forwarder for this zone. In that case, conditional zone " +"forwarders are disregarded." +msgstr "" +"Politique de redirection conditionnelle par serveur. Mettre à « none » pour " +"désactiver la redirection vers un redireteur global pour cette zone. Dans ce " +"cas, les redirecteurs de zone conditionnels sont ignorés." + +msgid "DNS is not configured" +msgstr "Le DNS n'est pas configuré" + +msgid "Modify DNS server configuration" +msgstr "Modifier la configuration du serveur DNS" + +#, python-format +msgid "Modified DNS server \"%(value)s\"" +msgstr "Serveur DNS « %(value)s » modifié" + +msgid "Search for DNS servers." +msgstr "Rechercher des serveurs DNS." + +#, python-format +msgid "%(count)d DNS server matched" +msgid_plural "%(count)d DNS servers matched" +msgstr[0] "%(count)d serveur DNS correspondant" +msgstr[1] "%(count)d serveurs DNS correspondants" + +msgid "Display configuration of a DNS server." +msgstr "Afficher la configuration d'un nouveau serveur DNS." + +msgid "Add a new DNS server." +msgstr "Ajouter un nouveau serveur DNS." + +#, python-format +msgid "Added new DNS server \"%(value)s\"" +msgstr "Nouveau serveur DNS « %(value)s » ajouté" + +msgid "Delete a DNS server" +msgstr "Supprimer un serveur DNS" + +#, python-format +msgid "Deleted DNS server \"%(value)s\"" +msgstr "Serveur DNS « %(value)s » supprimé" + +msgid "The deny type has been deprecated." +msgstr "Le type « deny » est obsolète." + +msgid "HBAC rules" +msgstr "Règles HBAC" + +msgid "HBAC Rules" +msgstr "Règles HBAC" + +#, python-format +msgid "Added HBAC rule \"%(value)s\"" +msgstr "Règle HBAC « %(value)s » ajoutée" + +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" +msgstr "Règle HBAC « %(value)s » supprimée" + +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" +msgstr "Règle HBAC « %(value)s » modifiée" + +msgid "" +"service category cannot be set to 'all' while there are allowed services" +msgstr "" +"une catégorie de services ne peut pas être définie à « all » tant qu'il " +"reste des services autorisés" + +#, 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" + +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" +msgstr "Règle HBAC « %(value)s » activée" + +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" +msgstr "Règle HBAC « %(value)s » désactivée" + +msgid "Access time" +msgstr "Horaire d'accès" + +msgid "services cannot be added when service category='all'" +msgstr "" +"aucun service ne peut être ajouté quand la catégorie de services est « all »" + +msgid "domain" +msgstr "domaine" + +#, python-format +msgid "" +"cannot add permission \"%(perm)s\" with bindtype \"%(bindtype)s\" to a " +"privilege" +msgstr "" +"impossible d'ajouter la permission « %(perm)s » avec le type de liaison " +"« %(bindtype)s » à un privilège" + +msgid "Privilege" +msgstr "Privilège" + +#, python-format +msgid "Added privilege \"%(value)s\"" +msgstr "Privilège « %(value)s » ajouté" + +#, python-format +msgid "Deleted privilege \"%(value)s\"" +msgstr "Privilège « %(value)s » supprimé" + +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "Privilège « %(value)s » supprimé" + +#, 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 correspondant" + +msgid "Realm domains" +msgstr "Domaines du royaume" + +msgid "Realm Domains" +msgstr "Domaines pour le royaume" + +#, python-format +msgid "" +"DNS zone for each realmdomain must contain SOA or NS records. No records " +"found for: %s" +msgstr "" +"La zone DNS de chaque domaine Kerberos doit contenir des enregistrements SOA " +"et NS. Aucun enregistrement trouvé pour : %s" + +#, python-format +msgid "The following domains do not belong to this realm: %(domains)s" +msgstr "" +"Les domaines suivants n'appartiennent pas à ce domaine Kerberos : %(domains)s" + +#, python-format +msgid "" +"The realm of the following domains could not be detected: %(domains)s. If " +"these are domains that belong to the this realm, please create a _kerberos " +"TXT record containing \"%(realm)s\" in each of them." +msgstr "" +"Le domaine Kerberos des domaines suivants ne peuvent être détectés : " +"%(domains)s. S'il existe des domaines appartenant à ce royaume, merci de " +"créer un enregistrement TXT kerberos contenant « %(realm)s » dans chacun " +"d'entre eux." + +msgid "" +"The --domain option cannot be used together with --add-domain or --del-" +"domain. Use --domain to specify the whole realm domain list explicitly, to " +"add/remove individual domains, use --add-domain/del-domain." +msgstr "" +"L'option « --domain » ne peut être utilisée conjointement avec les options " +"« --add-domain » or « --del-domain ». Utilisez « --domain » pour indiquer " +"explicitement la liste complète des domaines du royaume, utilisez « --add-" +"domain » et « --del-domain » pour ajouter et supprimer les domaines de " +"manière individuelle." + +msgid "IPA server domain cannot be omitted" +msgstr "Le domaine du serveur IPA ne peut être omis" + +msgid "IPA server domain cannot be deleted" +msgstr "Le domaine du serveur IPA ne peut être supprimé" + +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" +"Services HBAC\n" +"\n" +"Les services PAM dont le système HBAC peut contrôler l'accès. Le nom " +"utilisé\n" +"ici doit correspondre au nom du service analysé par PAM.\n" +"EXEMPLES:\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 renvoie deux résultats, le service\n" +" 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" + +msgid "HBAC services" +msgstr "Services HBAC" + +msgid "HBAC Services" +msgstr "Services HBAC" + +msgid "HBAC Service" +msgstr "Service HBAC" + +#, python-format +msgid "Added HBAC service \"%(value)s\"" +msgstr "Service HBAC « %(value)s » ajouté" + +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" +msgstr "Service HBAC « %(value)s » supprimé" + +#, python-format +msgid "Modified HBAC service \"%(value)s\"" +msgstr "Service HBAC « %(value)s » modifié" + +#, 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 correspondant" + +msgid "" +"\n" +"Stageusers\n" +"\n" +"Manage stage user entries.\n" +"\n" +"Stage user entries are directly under the container: \"cn=stage users,\n" +"cn=accounts, cn=provisioning, SUFFIX\".\n" +"Users can not authenticate with those entries (even if the entries\n" +"contain credentials). Those entries are only candidate to become Active " +"entries.\n" +"\n" +"Active user entries are Posix users directly under the container: " +"\"cn=accounts, SUFFIX\".\n" +"Users can authenticate with Active entries, at the condition they have\n" +"credentials.\n" +"\n" +"Deleted user entries are Posix users directly under the container: " +"\"cn=deleted users,\n" +"cn=accounts, cn=provisioning, SUFFIX\".\n" +"Users can not authenticate with those entries, even if the entries contain " +"credentials.\n" +"\n" +"The stage user container contains entries:\n" +" - created by 'stageuser-add' commands that are Posix users,\n" +" - created by external provisioning system.\n" +"\n" +"A valid stage user entry MUST have:\n" +" - entry RDN is 'uid',\n" +" - ipaUniqueID is 'autogenerate'.\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" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new stageuser:\n" +" ipa stageuser-add --first=Tim --last=User --password tuser1\n" +"\n" +" Add a stageuser from the deleted users container:\n" +" ipa stageuser-add --first=Tim --last=User --from-delete tuser1\n" +"\n" +msgstr "" +"\n" +"Utilisateurs en attente\n" +"\n" +"Gestion des entrées des utilisateurs en attente (« stage users »).\n" +"\n" +"Les entrées des utilisateurs en attente sont situées directement dans le \n" +"conteneur « cn=stage users, cn=accounts, cn=provisioning, SUFFIXE x.\n" +"Les utilisateurs ne peuvent utiliser ces entrées pour s'authentifier (même\n" +"si les entrées contiennent des données d'authentification) et ne sont que\n" +"candidates à devenir des entrées actives.\n" +"\n" +"Les entrées d'utilisateurs actifs sont des utilisateurs Posix situées dans " +"le \n" +"conteneur « cn=accounts, SUFFIXE ». Les utilisateurs peuvent les utiliser " +"pour \n" +"s'authentifier à la condition qu'elles comportent des données " +"d'authentification.\n" +"\n" +"Les entrées d'utilisateurs supprimés sont des entrées d'utilisateurs Posix " +"situées\n" +"dans le conteneur « cn=deleted users, cn=accounts, cn=provisioning, " +"SUFFIXE ».\n" +"Un utilisateur ne peut s'authentifier à l'aide de ces entrées , même si " +"elles contiennent\n" +"des données d'authentification valides.\n" +"\n" +"Le conteneur d'entrées utilisateurs en attente contient des entrées :\n" +" - créées par les commandes « stageuser-add », qui sont des utilisateurs " +"Posix,\n" +" - créées par des systèmes d'approvisionnement externes.\n" +"\n" +"Un utilisateur en attente valide DOIT posséder les propriétés suivantes :\n" +" - le RDN de l'entrée est « uid »\n" +" - l'attribut « ipaUniqueID » est « autogenerate »\n" +"\n" +"IPA prend en charge une grande variété de formats de noms d'utilisateurs, " +"mais\n" +"il est important de savoir que des restrictions peuvent s'appliquer dans un " +"environnement\n" +"particulier. Ainsi, les noms d'utilisateurs débutant par un chiffre ou ceux " +"excédant une \n" +"certaine taille peuvent poser problème sur certains systèmes UNIX.\n" +"Utiliser la commande « ipa config-mod » pour modifier le format autorisé par " +"les outils IPA.\n" +"\n" +"\n" +"EXEMPLES :\n" +"\n" +" Ajouter un nouvel utilisateur en attente :\n" +" ipa stageuser-add --first=Tim --last=User --password tuser1\n" +"\n" +" Ajouter un utilisateur en attente depuis le conteneur des utilisateurs " +"supprimés :\n" +" ipa stageuser-add --first=Tim --last=User --from-delete tuser1\n" + +msgid "Stage Users" +msgstr "Mettre en attente les utilisateurs" + +msgid "Stage User" +msgstr "Mettre en attente l'utilisateur" + +msgid "stage user" +msgstr "utilis" + +msgid "stage users" +msgstr "utilisateurs en attente" + +#, python-format +msgid "Added stage user \"%(value)s\"" +msgstr "Utilisateur en attente « %(value)s » ajouté" + +msgid "givenname is required" +msgstr "givenname est requis" + +msgid "sn is required" +msgstr "sn est requis" + +#, python-format +msgid "can be at most %(len)d characters" +msgstr "doit contenir au plus %(len)d caractères" + +#, python-format +msgid "Deleted stage user \"%(value)s\"" +msgstr "Utilisateur en attente « %(value)s » supprimé" + +#, python-format +msgid "Modified stage user \"%(value)s\"" +msgstr "Utilisateur en attente « %(value)s » modifié" + +#, python-format +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "%(count)d utilisateur correspondant" +msgstr[1] "%(count)d utilisateurs correspondant" + +#, python-format +msgid "Activate a stage user \"%(value)s\"" +msgstr "Activer un utilisateur en attente « %(value)s »" + +msgid "Entry RDN is not 'uid'" +msgstr "Le RDN de l'entrée n'est pas l'attribut « uid »" + +#, python-format +msgid "Entry has no '%(attribute)s'" +msgstr "L'entrée ne possède aucun attribut « %(attribute)s »" + +#, python-format +msgid "active user with name \"%(user)s\" already exists" +msgstr "L'utilisateur actif nommé « %(user)s » existe déjà" + +#, python-format +msgid "Stage user %s activated" +msgstr "Utilisateur en attente %s activé" + +msgid "" +"\n" +"RADIUS Proxy Servers\n" +msgstr "" +"\n" +"Serveurs mandataires RADIUS\n" + +msgid "" +"\n" +"Manage RADIUS Proxy Servers.\n" +msgstr "" +"\n" +"Gestion des serveurs mandataires RADIUS.\n" + +msgid "" +"\n" +"IPA supports the use of an external RADIUS proxy server for krb5 OTP\n" +"authentications. This permits a great deal of flexibility when\n" +"integrating with third-party authentication services.\n" +msgstr "" +"\n" +"IPA prend en charge l'utilisation d'un serveur mandataire externe RADIUS\n" +"pour des authentifications OTP « krb5 ». Cela procure une grande souplesse\n" +"pour l'intégration des services d'authentification tierce partie.\n" + +msgid "" +"\n" +" Add a new server:\n" +" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" +msgstr "" +"\n" +" Ajouter un nouveau serveur :\n" +" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" + +msgid "" +"\n" +" Find all servers whose entries include the string \"example.com\":\n" +" ipa radiusproxy-find example.com\n" +msgstr "" +"\n" +" Trouver tous serveurs dont les entrées incluent la chaîne « example." +"com » :\n" +" ipa radiusproxy-find example.com\n" + +msgid "" +"\n" +" Examine the configuration:\n" +" ipa radiusproxy-show MyRADIUS\n" +msgstr "" +"\n" +" Examiner la configuration :\n" +" ipa radiusproxy-show MyRADIUS\n" + +msgid "" +"\n" +" Change the secret:\n" +" ipa radiusproxy-mod MyRADIUS --secret\n" +msgstr "" +"\n" +" Changer le secret :\n" +" ipa radiusproxy-mod MyRADIUS --secret\n" + +msgid "" +"\n" +" Delete a configuration:\n" +" ipa radiusproxy-del MyRADIUS\n" +msgstr "" +"\n" +" Supprimer une configuration:\n" +" ipa radiusproxy-del MyRADIUS\n" + +msgid "invalid attribute name" +msgstr "nom d'attribut invalide" + +msgid "invalid port number" +msgstr "numéro de port invalide" + +msgid "RADIUS proxy server" +msgstr "Serveur mandataire RADIUS" + +msgid "RADIUS proxy servers" +msgstr "Serveurs mandataires RADIUS" + +msgid "RADIUS Servers" +msgstr "Serveurs RADIUS" + +msgid "RADIUS Server" +msgstr "Serveur RADIUS" + +#, python-format +msgid "Added RADIUS proxy server \"%(value)s\"" +msgstr "Serveur mandataire RADIUS « %(value)s » ajouté" + +#, python-format +msgid "Deleted RADIUS proxy server \"%(value)s\"" +msgstr "Serveur mandataire RADIUS « %(value)s » supprimé" + +#, python-format +msgid "Modified RADIUS proxy server \"%(value)s\"" +msgstr "Serveur mandataire RADIUS « %(value)s » modifié" + +#, python-format +msgid "%(count)d RADIUS proxy server matched" +msgid_plural "%(count)d RADIUS proxy servers matched" +msgstr[0] "%(count)d serveur mandataire RADIUS correspondant" +msgstr[1] "%(count)d serveurs mandataires RADIUS correspondant" + +msgid "" +"\n" +"Manage Certificate Profiles\n" +"\n" +"Certificate Profiles are used by Certificate Authority (CA) in the signing " +"of\n" +"certificates to determine if a Certificate Signing Request (CSR) is " +"acceptable,\n" +"and if so what features and extensions will be present on the certificate.\n" +"\n" +"The Certificate Profile format is the property-list format understood by " +"the\n" +"Dogtag or Red Hat Certificate System CA.\n" +"\n" +"PROFILE ID SYNTAX:\n" +"\n" +"A Profile ID is a string without spaces or punctuation starting with a " +"letter\n" +"and followed by a sequence of letters, digits or underscore (\"_\").\n" +"\n" +"EXAMPLES:\n" +"\n" +" Import a profile that will not store issued certificates:\n" +" ipa certprofile-import ShortLivedUserCert \\\n" +" --file UserCert.profile --desc \"User Certificates\" \\\n" +" --store=false\n" +"\n" +" Delete a certificate profile:\n" +" ipa certprofile-del ShortLivedUserCert\n" +"\n" +" Show information about a profile:\n" +" ipa certprofile-show ShortLivedUserCert\n" +"\n" +" Save profile configuration to a file:\n" +" ipa certprofile-show caIPAserviceCert --out caIPAserviceCert.cfg\n" +"\n" +" Search for profiles that do not store certificates:\n" +" ipa certprofile-find --store=false\n" +"\n" +"PROFILE CONFIGURATION FORMAT:\n" +"\n" +"The profile configuration format is the raw property-list format\n" +"used by Dogtag Certificate System. The XML format is not supported.\n" +"\n" +"The following restrictions apply to profiles managed by FreeIPA:\n" +"\n" +"- When importing a profile the \"profileId\" field, if present, must\n" +" match the ID given on the command line.\n" +"\n" +"- The \"classId\" field must be set to \"caEnrollImpl\"\n" +"\n" +"- The \"auth.instance_id\" field must be set to \"raCertAuth\"\n" +"\n" +"- The \"certReqInputImpl\" input class and \"certOutputImpl\" output\n" +" class must be used.\n" +"\n" +msgstr "" +"\n" +"Gestion des profils de certificats\n" +"\n" +"Les profils de certificats sont utilisés par l'autorité de certification " +"(AC) dans\n" +"la signature de certificats afin de déterminer si une demande de signature " +"de\n" +"certificat (Certificate Signing Request, CSR) est acceptable, et si oui, " +"quelles\n" +"fonctionnalités et extensions doivent figurer dans le certificat.\n" +"\n" +"Le format du profil de certificat est un format de liste de propriétés qui " +"sera\n" +"compris par une autorité de certification Dogtag ou Red Hat Certificate " +"System.\n" +"\n" +"SYNTAXE DE L'IDENTIFIANT DE PROFIL :\n" +"\n" +"Un identifiant de profil est une chaîne de caractères sans espaces ni " +"caractère de\n" +"ponctuation débutant par une lettre suivie d'une séquence de lettres, de " +"chiffres et\n" +"de caractère souligné (« _ »).\n" +"\n" +"EXEMPLES :\n" +"\n" +" Importer un profil qui ne stockera pas les certificats émis :\n" +" ipa certprofile-import ShortLivedUserCert \\\n" +" --file UserCert.profile --summary \"User Certificates\" \\\n" +" --store=false\n" +"\n" +" Supprimer un profil de certificat :\n" +" ipa certprofile-del ShortLivedUserCert\n" +"\n" +" Afficher les informations sur un profil :\n" +" ipa certprofile-show ShortLivedUserCert\n" +"\n" +" Enregistrer la configuration du profil dans un fichier :\n" +" ipa certprofile-show caIPAserviceCert --out caIPAserviceCert.cfg\n" +"\n" +" Rechercher des profils ne stockant pas les certificats :\n" +" ipa certprofile-find --store=false\n" +"\n" +"FORMAT DE LA CONFIGURATION DE PROFIL :\n" +"\n" +"Le format de configuration de profil est un format brut de liste de \n" +"propriété utilisé par Dogtag Certificate System. Le format XML n'est\n" +"pas pris en charge.\n" +"\n" +"Les restrictions suivantes s'appliquent aux profils gérés par FreeIPA :\n" +"\n" +"- Lors de l'import d'un profil, le champ « profileId » s'il est présent " +"doit\n" +" correspondre à l'identifiant donné sur la ligne de commande.\n" +"\n" +"- Le champ « classId » doit être « caEnrollImpl »\n" +"\n" +"- Le champ « auth.instance_id  doit être « raCertAuth »\n" +"\n" +"- Les classe d'entrée « certReqInputImpl » et de sortie « certOutputImpl » " +"doivent \n" +" être utilisées.\n" + +msgid "CA is not configured" +msgstr "L'AC n'est pas configurée" + +msgid "invalid Profile ID" +msgstr "Identifiant de profil invalide" + +msgid "Certificate Profile" +msgstr "Profil de certificat" + +msgid "Certificate Profiles" +msgstr "Profils de certificats" + +msgid "Profile configuration" +msgstr "Configuration de profil" + +#, python-format +msgid "%(count)d profile matched" +msgid_plural "%(count)d profiles matched" +msgstr[0] "%(count)d profil correspondant" +msgstr[1] "%(count)d profils correspondants" + +#, python-format +msgid "Imported profile \"%(value)s\"" +msgstr "Profil « %(value)s » importé" + +#, python-format +msgid "Profile ID '%(cli_value)s' does not match profile data '%(file_value)s'" +msgstr "" +"L'identifiant de profil « %(cli_value)s » ne correspond pas aux données du " +"profil « %(file_value)s »" + +#, python-format +msgid "Deleted profile \"%(value)s\"" +msgstr "Profil « %(value)s » supprimé" + +#, python-format +msgid "Predefined profile '%(profile_id)s' cannot be deleted" +msgstr "Le profil prédéfini « %(profile_id)s » ne peut être supprimé" + +#, python-format +msgid "Modified Certificate Profile \"%(value)s\"" +msgstr "Profil de certificat « %(value)s » modifié" + +msgid "Certificate profiles cannot be renamed" +msgstr "Les profils de certificats ne peuvent être renommés" + +msgid "" +"\n" +"OTP Tokens\n" +msgstr "" +"\n" +"Jetons OTP\n" + +msgid "" +"\n" +"Manage OTP tokens.\n" +msgstr "" +"\n" +"Gérer les jetons OTP.\n" + +msgid "" +"\n" +"IPA supports the use of OTP tokens for multi-factor authentication. This\n" +"code enables the management of OTP tokens.\n" +msgstr "" +"\n" +"IPA prend en charge l'utilisation de jetons OTP pour une authentification\n" +"à facteurs multiples. Ce code active la gestion des jetons OTP.\n" + +msgid "" +"\n" +" Add a new token:\n" +" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" +msgstr "" +"\n" +" Ajouter un nouveau jeton :\n" +" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" + +msgid "" +"\n" +" Examine the token:\n" +" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" +msgstr "" +"\n" +" Examiner un jeton :\n" +" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" + +msgid "" +"\n" +" Change the vendor:\n" +" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" +"\"\n" +msgstr "" +"\n" +" Modifier le fournisseur :\n" +" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" +"\"\n" + +msgid "" +"\n" +" Delete a token:\n" +" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" +msgstr "" +"\n" +" Supprimer un jeton :\n" +" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" + +msgid "OTP token" +msgstr "jeton OTP" + +msgid "OTP tokens" +msgstr "jetons OTP" + +msgid "OTP Tokens" +msgstr "Jetons OTP" + +msgid "OTP Token" +msgstr "Jeton OTP" + +msgid "URI" +msgstr "URI" + +#, python-format +msgid "Added OTP token \"%(value)s\"" +msgstr "Jeton OTP « %(value)s » ajouté" + +msgid "cannot be empty" +msgstr "ne peut pas être vide" + +#, python-format +msgid "Deleted OTP token \"%(value)s\"" +msgstr "Jeton OTP « %(value)s » supprimé" + +#, python-format +msgid "Modified OTP token \"%(value)s\"" +msgstr "Jeton OTP « %(value)s » modifié" + +#, python-format +msgid "%(count)d OTP token matched" +msgid_plural "%(count)d OTP tokens matched" +msgstr[0] "%(count)d jeton OTP correspond" +msgstr[1] "%(count)d jetons OTP correspondant" + +msgid "commands for controlling sudo configuration" +msgstr "commandes pour contrôler la configuration sudo" + msgid "Your session has expired. Please re-login." msgstr "Votre session a expiré. Veuillez vous reconnecter." @@ -9807,9 +11132,6 @@ msgstr "Ajouter un principal" msgid "Affiliation Changed" msgstr "Affiliation modifiée" -msgid "CA" -msgstr "AC" - msgid "CA Compromise" msgstr "AC compromis" @@ -9843,9 +11165,6 @@ msgstr "Numéro de série maximum" msgid "Minimum serial number" msgstr "Numéro de série minimum" -msgid "Revocation reason" -msgstr "Raison de la révocation" - msgid "Revoked on from" msgstr "Révoqué à partir du" @@ -9983,12 +11302,6 @@ msgstr "Certificat révoqué" msgid "REVOKED" msgstr "RÉVOQUÉ" -msgid "Serial Number" -msgstr "Numéro de série" - -msgid "Serial Number (hex)" -msgstr "Numéro de série (hex)" - msgid "SHA1 Fingerprint" msgstr "Empreinte SHA1" @@ -10023,9 +11336,6 @@ msgstr "Certificat pour ${primary_key} de ${entity}" msgid "View Certificate" msgstr "Afficher le certificat" -msgid "Issuer" -msgstr "Émetteur" - msgid "Version" msgstr "Version" @@ -10380,18 +11690,12 @@ msgstr "" msgid "Un-apply ID View ${primary_key} from hosts" msgstr "Retirer l'application de la vue d'identifiants ${primary_key} d'hôtes" -msgid "Kerberos Ticket Policy" -msgstr "Politique de tickets Kerberos" - msgid "Host" msgstr "Hôte" msgid "Netgroup Settings" msgstr "Paramètres du groupe réseau" -msgid "Netgroups" -msgstr "Groupes réseau" - msgid "Add OTP Token" msgstr "Ajouter un jeton OTP" @@ -10461,9 +11765,6 @@ msgstr "Ajout : clé non définie" msgid "New: key set" msgstr "Ajout : clé définie" -msgid "Password Policy" -msgstr "Politique de gestion des mots de passe" - msgid "Range Settings" msgstr "Configuration des plages" @@ -10482,9 +11783,6 @@ msgstr "SID du domaine" msgid "Secondary RID base" msgstr "Base de RID secondaire" -msgid "Active Directory domain" -msgstr "Domaine Active Directory" - msgid "Active Directory domain with POSIX attributes" msgstr "Domaine Active Directory avec attributs POSIX" @@ -10503,9 +11801,6 @@ msgstr "Active Directory winsync" msgid "RADIUS Proxy Server Settings" msgstr "Réglages du serveur mandataire RADIUS" -msgid "Realm Domains" -msgstr "Domaines pour le royaume" - msgid "Check DNS" msgstr "Vérification DNS" @@ -10956,1139 +12251,6 @@ msgstr "Champ requis" msgid "Unsupported value" msgstr "Valeur non prise en charge" -msgid "kerberos ticket policy settings" -msgstr "réglages de la politique de tickets Kerberos" - -#, python-format -msgid "Ticket policy for %s could not be read" -msgstr "La politique de ticket pour %s ne peut pas être lue" - -msgid "Default ticket policy could not be read" -msgstr "La politique de ticket par défaut ne peut pas être lue" - -msgid "ID Ranges" -msgstr "Plages d'ID" - -msgid "ID Range" -msgstr "Plage d'ID" - -msgid "local domain range" -msgstr "Plage pour domaine local" - -msgid "Active Directory domain range" -msgstr "Plage pour les domaines Active Directory" - -msgid "Active Directory trust range with POSIX attributes" -msgstr "" -"Plage pour les relations d'approbation Active Directory avec attributs POSIX" - -#, python-brace-format -msgid "ID range type, one of {vals}" -msgstr "Type de plage d'ID, une valeur parmi {vals}" - -msgid "" -"range modification leaving objects with ID out of the defined range is not " -"allowed" -msgstr "" -"une modification de plage laissant des objets avec un ID en dehors de la " -"plage définie n'est pas autorisée" - -msgid "" -"Cannot perform SID validation without Samba 4 support installed. Make sure " -"you have installed server-trust-ad sub-package of IPA on the server" -msgstr "" -"Impossible de réaliser la validation du SID sans installer la prise en " -"charge de Samba 4. Assurez-vous d'avoir installé le sous-paquet d'IPA " -"« server-trust-ad » sur le serveur" - -msgid "" -"Cross-realm trusts are not configured. Make sure you have run ipa-adtrust-" -"install on the IPA server first" -msgstr "" -"Les confiances croisées entre domaines n'ont pas été configurées. Assurez-" -"vous d'avoir préalablement exécuté « ipa-adtrust-install » sur le serveur" - -msgid "SID is not recognized as a valid SID for a trusted domain" -msgstr "" -"Le SID n'est pas reconnu en tant que SID valide pour un domaine approuvé" - -#, python-brace-format -msgid "" -"\n" -" Add new ID range.\n" -"\n" -" To add a new ID range you always have to specify\n" -"\n" -" --base-id\n" -" --range-size\n" -"\n" -" Additionally\n" -"\n" -" --rid-base\n" -" --secondary-rid-base\n" -"\n" -" may be given for a new ID range for the local domain while\n" -"\n" -" --rid-base\n" -" --dom-sid\n" -"\n" -" must be given to add a new range for a trusted AD domain.\n" -"\n" -"{0}\n" -msgstr "" -"\n" -"Ajouter une nouvelle plage d''identifiants.\n" -"\n" -"Pour ajouter une nouvelle plage d''identifiants vous devez toujours " -"préciser\n" -"\n" -"--base-id\n" -"--range-size\n" -"\n" -"En outre,\n" -"\n" -"--rid-base\n" -"--secondary-rid-base\n" -"\n" -"seront indiqués pour une nouvelle plage d''identifiants dans le domaine " -"local alors que\n" -"\n" -"--rid-base\n" -"--dom-sid\n" -"\n" -"doivent l''être pour ajouter une nouvelle plage pour un domaine AD de " -"confiance.\n" -"\n" -"{0}\n" - -#, python-format -msgid "Added ID range \"%(value)s\"" -msgstr "Plage d'ID « %(value)s » ajoutée" - -msgid "Options dom-sid and dom-name cannot be used together" -msgstr "" -"Les options dom-sid et dom-name ne peuvent pas être utilisées simultanément" - -msgid "" -"SID for the specified trusted domain name could not be found. Please specify " -"the SID directly using dom-sid option." -msgstr "" -"Impossible de trouver le SID du domaine approuvé désigné. Veuillez indiquer " -"directement le SID avec l'option « dom-sid »." - -msgid "Options dom-sid/dom-name and rid-base must be used together" -msgstr "" -"Les options « dom-sid/dom-name » et « rid-base » doivent être utilisées " -"simultanément" - -msgid "" -"Option rid-base must not be used when IPA range type is ipa-ad-trust-posix" -msgstr "" -"L'option rid-base ne doit pas être utilisée lorsque le type de plage IPA est " -"ipa-ad-trust-posix" - -msgid "" -"IPA Range type must be one of ipa-ad-trust or ipa-ad-trust-posix when SID of " -"the trusted domain is specified" -msgstr "" -"Le type de plage IPA doit être « ipa-ad-trust » ou « ipa-ad-trust-posix » " -"lorsque le SID du domaine approuvé est indiqué." - -msgid "Options dom-sid/dom-name and secondary-rid-base cannot be used together" -msgstr "" -"Les options « dom-sid/dom-name » et « secondary-rid-base » ne peuvent pas " -"être utilisées simultanément" - -msgid "" -"IPA Range type must not be one of ipa-ad-trust or ipa-ad-trust-posix when " -"SID of the trusted domain is not specified." -msgstr "" -"Le type de plage IPA ne doit être ni « ipa-ad-trust », ni « ipa-ad-trust-" -"posix » lorsque le SID du domaine approuvé n'est pas indiqué." - -msgid "Options secondary-rid-base and rid-base must be used together" -msgstr "" -"Les options « secondary-rid-base » et « rid-base » doivent être utilisées " -"simultanément" - -msgid "Primary RID range and secondary RID range cannot overlap" -msgstr "Les plages de RID principales et secondaires ne peuvent se recouvrir" - -msgid "" -"You must specify both rid-base and secondary-rid-base options, because ipa-" -"adtrust-install has already been run." -msgstr "" -"Vous devez préciser les deux options « rid-base » et « secondary-rid-base », " -"car « ipa-adtrust-install » a déjà été exécuté." - -#, python-format -msgid "Deleted ID range \"%(value)s\"" -msgstr "Plage d'ID « %(value)s » supprimée" - -#, python-format -msgid "%(count)d range matched" -msgid_plural "%(count)d ranges matched" -msgstr[0] "%(count)d plage correspondant" -msgstr[1] "%(count)d plages correspondant" - -#, python-brace-format -msgid "" -"Modify ID range.\n" -"\n" -"{0}\n" -msgstr "" -"Modifier une plage d''identifiants.\n" -"\n" -"{0}\n" - -#, python-format -msgid "Modified ID range \"%(value)s\"" -msgstr "Plage d'ID « %(value)s » modifiée" - -msgid "" -"This command can not be used to change ID allocation for local IPA domain. " -"Run `ipa help idrange` for more information" -msgstr "" -"Cette commande ne peut être utilisée que pour modifier l'allocation d'ID " -"pour le domaine local. Utilisez « ipa help idrange » pour plus " -"d'informations." - -msgid "Options dom-sid and secondary-rid-base cannot be used together" -msgstr "" -"Les options « dom-sid » et « secondary-rid-base » ne peuvent pas être " -"utilisées simultanément" - -msgid "Options dom-sid and rid-base must be used together" -msgstr "" -"Les options « dom-sid » et « rid-base » doivent être utilisées simultanément" - -msgid "" -"\n" -"IPA server roles\n" -msgstr "" -"\n" -"Rôles serveurs IPA\n" - -msgid "" -"\n" -"Get status of roles (DNS server, CA, etc.) provided by IPA masters.\n" -msgstr "" -"\n" -"Obtenir l'état des rôles (serveur DNS, AC, etc. )fournis par les maîtres " -"IPA.\n" - -msgid "" -"\n" -" Show status of 'DNS server' role on a server:\n" -" ipa server-role-show ipa.example.com \"DNS server\"\n" -msgstr "" -"\n" -" Afficher l'état du rôle « Serveur DNS » d'un serveur :\n" -" ipa server-role-show ipa.example.com \"DNS server\"\n" - -msgid "" -"\n" -" Show status of all roles containing 'AD' on a server:\n" -" ipa server-role-find --server ipa.example.com --role='AD'\n" -msgstr "" -"\n" -" Afficher l'état de tous les rôles contenant « AD » sur un serveur :\n" -" ipa server-role-find --server ipa.example.com --role='AD'\n" - -msgid "" -"\n" -" Show status of all configured roles on a server:\n" -" ipa server-role-find ipa.example.com\n" -msgstr "" -"\n" -" Afficher l'état de tous les rôles configurés sur un serveur :\n" -" ipa server-role-find ipa.example.com\n" - -msgid "server role" -msgstr "rôle serveur" - -msgid "server roles" -msgstr "rôles serveur" - -msgid "IPA Server Roles" -msgstr "Rôles serveur IPA" - -msgid "IPA Server Role" -msgstr "Rôle serveur IPA" - -msgid "IPA server role name" -msgstr "Nom du rôle serveur IPA" - -msgid "Role status" -msgstr "État du rôle" - -msgid "Status of the role" -msgstr "État du rôle" - -msgid "Show role status on a server" -msgstr "Afficher l'état du rôle sur un serveur" - -msgid "Find a server role on a server(s)" -msgstr "Trouver les rôles serveur de serveurs" - -#, python-format -msgid "%(count)s server role matched" -msgid_plural "%(count)s server roles matched" -msgstr[0] "%(count)s rôle serveur correspondant" -msgstr[1] "%(count)s rôles serveur correspondants" - -msgid "roles" -msgstr "rôles" - -msgid "IPA role name" -msgstr "Nom du rôle IPA" - -msgid "Member service groups" -msgstr "Groupes de services membres" - -msgid "Member HBAC service groups" -msgstr "Groupes de services HBAC membres" - -msgid "Indirect Member permissions" -msgstr "Droits d'accès de membre indirect" - -msgid "Indirect Member HBAC service" -msgstr "Service HBAC de membre indirect" - -msgid "Indirect Member HBAC service group" -msgstr "Groupe de services de membre indirect" - -msgid "Invalid format. Should be name=value" -msgstr "Format invalide. Doit être nom=valeur" - -msgid "An IPA master host cannot be deleted or disabled" -msgstr "Un serveur maître IPA ne peut ni être supprimé ni désactivé" - -msgid "entry" -msgstr "entrée" - -msgid "entries" -msgstr "entrées" - -msgid "Entry" -msgstr "Entrée" - -#, python-format -msgid "container entry (%(container)s) not found" -msgstr "entrée conteneur (%(container)s) introuvable" - -#, python-format -msgid "%(parent)s: %(oname)s not found" -msgstr "%(parent)s : %(oname)s introuvable" - -#, python-format -msgid "%(pkey)s: %(oname)s not found" -msgstr "%(pkey)s : %(oname)s introuvable" - -#, python-format -msgid "%(oname)s with name \"%(pkey)s\" already exists" -msgstr "L'objet %(oname)s avec le nom « %(pkey)s » existe déjà" - -#, python-format -msgid "attribute \"%(attribute)s\" not allowed" -msgstr "l'attribut « %(attribute)s » n'est pas autorisé" - -msgid "attribute is not configurable" -msgstr "l'attribut n'est pas configurable" - -msgid "No such attribute on this entry" -msgstr "Pas d'attribut de ce type sur cette entrée" - -#, python-format -msgid "Rename the %(ldap_obj_name)s object" -msgstr "Renomme l'objet %(ldap_obj_name)s" - -msgid "the entry was deleted while being modified" -msgstr "cette entrée a été supprimée pendant sa modification" - -#, python-format -msgid "%s" -msgstr "%s" - -#, python-format -msgid "member %s" -msgstr "%s membre" - -#, python-format -msgid "%s to add" -msgstr "%s à ajouter" - -#, python-format -msgid "%s to remove" -msgstr "%s à supprimer" - -#, python-format -msgid "Results should contain primary key attribute only (\"%s\")" -msgstr "" -"Les résultats doivent uniquement contenir un attribut de clé principale " -"(« %s »)" - -#, python-format -msgid "" -"Search for %(searched_object)s with these %(relationship)s %(ldap_object)s." -msgstr "" -"Recherche des %(searched_object)s avec ceux de %(ldap_object)s de " -"%(relationship)s." - -#, python-format -msgid "" -"Search for %(searched_object)s without these %(relationship)s " -"%(ldap_object)s." -msgstr "" -"Recherche des %(searched_object)s sans ceux de %(ldap_object)s de " -"%(relationship)s." - -msgid "one or more values to remove" -msgstr "une ou plusieurs valeurs à supprimer" - -msgid "Could not read UPG Definition originfilter. Check your permissions." -msgstr "" -"Impossible de lire « originfilter » de « UPG Definition ». Vérifiez vos " -"permissions." - -msgid "" -"\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" -"\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Override a default list of supported PAC types for the service:\n" -" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n" -"\n" -" A typical use case where overriding the PAC type is needed is NFS.\n" -" Currently the related code in the Linux kernel can only handle Kerberos\n" -" tickets up to a maximal size. Since the PAC data can become quite large " -"it\n" -" is recommended to set --pac-type=NONE for NFS services.\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" -"\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" -"\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" -"\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" -msgstr "" -"\n" -"Services\n" -"\n" -"Un service IPA représente un service qui s'exécute sur un hôte. " -"L'enregistrement du\n" -"service IPA peut contenir un principal Kerberos, un certificat SSL ou les " -"deux.\n" -"\n" -"Un service IPA peut être directement géré à partir d'une machine, pour\n" -"autant que des permissions adéquates aient été données à la machine. Ceci\n" -"est vrai même pour les machines autres que celle à laquelle le service est\n" -"associé. Par exemple, demander un certificat SSL en utilisant les\n" -"justificatifs d'identité du principal du service de l'hôte. Pour gérer un\n" -"service en utilisant les références de l'hôte, vous devrez exécuter\n" -"« kinit » en tant qu'hôte :\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Ajouter un service IPA permet au service associé de demander un certificat\n" -"SSL ou un tableau de clés, mais cela est réalisé dans une étape distincte ;\n" -"cela n'est pas le résultat de l'ajout du service.\n" -"\n" -"Seule la composante publique du certificat est stockée dans un\n" -"enregistrement de service ; la clé privée n'y est pas enregistrée.\n" -"\n" -"EXEMPLES :\n" -"\n" -" Ajouter un nouveau service IPA :\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Autoriser un hôte à gérer un certificat de 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" -" Écraser la liste par défaut des types PAC pris en charge pour le service :\n" -" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n" -"\n" -" NFS est un cas classique où la surcharge du type PAC est nécessaire.\n" -" Actuellement, le code relatif à cette fonction dans le noyau Linux ne " -"gère\n" -" les tickets Kerberos que jusqu'à une taille maximale donnée. Comme les\n" -" données PAC peuvent devenir bien plus grandes, il est recommandé de " -"fixer\n" -" « --pac-type=NONE » pour les services NFS.\n" -"\n" -" Supprimer un service IPA :\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Trouver tous les services IPA associés à un hôte :\n" -" ipa service-find web.example.com\n" -"\n" -" Trouver tous les service HTTP :\n" -" ipa service-find HTTP\n" -"\n" -" Désactiver la clé Kerberos et le certificat SSL d'un service :\n" -" ipa service-disable HTTP/web.example.com\n" -"\n" -" Demander un certificat pour un service IPA :\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" - -msgid "" -"\n" -" Allow user to create a keytab:\n" -" ipa service-allow-create-keytab HTTP/web.example.com --users=tuser1\n" -msgstr "" -"\n" -" Autoriser un utilisateur à créer un tableau de clé :\n" -" ipa service-allow-create-keytab HTTP/web.example.com --users=tuser1\n" - -msgid "" -"\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/" -"httpd.keytab\n" -"\n" -msgstr "" -"\n" -" Générer et récupérer un tableau de clés d'un service IPA :\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/" -"httpd.keytab\n" -"\n" - -msgid "Malformed principal" -msgstr "Principal malformé" - -msgid "This principal is required by the IPA master" -msgstr "Ce principal est nécessaire au serveur IPA" - -msgid "service" -msgstr "service" - -msgid "services" -msgstr "services" - -msgid "Service principal alias" -msgstr "Alias de principal de service" - -msgid "Base-64 encoded service certificate" -msgstr "Certificat du service encodé en Base-64" - -msgid "Not Before" -msgstr "Pas avant" - -msgid "Not After" -msgstr "Pas après" - -msgid "Fingerprint (SHA1)" -msgstr "Empreinte (SHA1)" - -msgid "Authentication Indicators" -msgstr "Indicateurs d'authentification" - -msgid "" -"Defines a whitelist for Authentication Indicators. Use 'otp' to allow OTP-" -"based 2FA authentications. Use 'radius' to allow RADIUS-based 2FA " -"authentications. Other values may be used for custom configurations." -msgstr "" -"Définit une liste blanche d'indicateurs d'authentification. Utiliser « otp » " -"pour autoriser les authentifications à double facteur basé sur les mots de " -"passe à usage unique. Utiliser « radius » pour autoriser l'authentification " -"à double facteur utilisant RADIUS. D'autres valeurs peuvent être utilisées " -"pour des configurations personnalisées." - -msgid "NONE value cannot be combined with other PAC types" -msgstr "La valeur NONE ne peut être combinée avec d'autres types de PAC" - -msgid "Add a new IPA service." -msgstr "Ajouter un nouveau service IPA." - -#, python-format -msgid "Added service \"%(value)s\"" -msgstr "Service « %(value)s » ajouté" - -#, python-format -msgid "The host '%s' does not exist to add a service to." -msgstr "L'hôte « %s » auquel ajouter un service n'existe pas." - -#, python-format -msgid "Deleted service \"%(value)s\"" -msgstr "Service « %(value)s » supprimé" - -#, python-format -msgid "Modified service \"%(value)s\"" -msgstr "Service « %(value)s » modifié" - -#, python-format -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" -msgstr[0] "%(count)d service correspondant" -msgstr[1] "%(count)d services correspondant" - -#, python-format -msgid "Disabled service \"%(value)s\"" -msgstr "Service « %(value)s » désactivé" - -#, python-format -msgid "Added certificates to service principal \"%(value)s\"" -msgstr "Certificats ajoutés au principal de service « %(value)s »" - -#, python-format -msgid "Removed certificates from service principal \"%(value)s\"" -msgstr "Supprimer les certificats du principal de service « %(value)s »" - -msgid "Add new principal alias to a service" -msgstr "Ajouter un nouvel alias de principal à un service" - -#, python-format -msgid "Added new aliases to the service principal \"%(value)s\"" -msgstr "Alias ajoutés au principal de service « %(value)s »" - -msgid "Remove principal alias from a service" -msgstr "Supprimer un alias de principal d'un service" - -#, python-format -msgid "Removed aliases to the service principal \"%(value)s\"" -msgstr "Alias supprimés du principal de service « %(value)s »" - -msgid "" -"\n" -"Sudo Rules\n" -msgstr "" -"\n" -"Règles sudo\n" - -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" -msgstr "" -"\n" -"Sudo (su « do ») autorise un administrateur système à déléguer la " -"possibilité\n" -" à certains utilisateurs (ou groupes d'utilisateurs) d'exécuter certaines\n" -" (ou toutes) commandes en tant qu'administrateur ou autre utilisateur, tout\n" -" en donnant des moyens de contrôle des commandes et de leurs arguments.\n" - -msgid "" -"\n" -"FreeIPA provides a means to configure the various aspects of Sudo:\n" -" Users: The user(s)/group(s) allowed to invoke Sudo.\n" -" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke " -"Sudo.\n" -" Allow Command: The specific command(s) permitted to be run via Sudo.\n" -" Deny Command: The specific command(s) prohibited to be run via Sudo.\n" -" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be " -"invoked with.\n" -" 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" -msgstr "" -"\n" -"FreeIPA offre les moyens de configurer les divers aspects de sudo :\n" -" Users : utilisateur/groupe autorisés à invoquer sudo.\n" -" Hosts : hôte/groupe d'hôte dont l'utilisateur peut invoquer sudo.\n" -" Allow Command : commande donnée pouvant être exécutée via sudo.\n" -" Deny Command : commande donnée interdite d'exécution avec sudo.\n" -" RunAsUser : utilisateur ou groupe dont les droits sudo pourront être " -"invoqués.\n" -" RunAsGroup : groupe dont les droits sudo associés au GID pourront être " -"invoqués.\n" -" Options : les diverses options de sudoers pouvant modifier le " -"comportement de sudo.\n" - -msgid "" -"\n" -"An order can be added to a sudorule to control the order in which they\n" -"are evaluated (if the client supports it). This order is an integer and\n" -"must be unique.\n" -msgstr "" -"\n" -"Il est possible d'ajouter aux règles sudo l'indication de l'ordre dans\n" -"lequel elles doivent être examinées (si le client le prend en charge).\n" -"Cet ordre est défini par un entier, qui doit être unique.\n" - -msgid "" -"\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" -msgstr "" -"\n" -"FreeIPA permet la désignation d'un « binddn » à utiliser avec sudo situé " -"à :\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" - -msgid "" -"\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" -msgstr "" -"\n" -"Pour activer « binddn », exécuter la commande pour fixer le mot de passe :\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" - -msgid "" -"\n" -" Create a new rule:\n" -" ipa sudorule-add readfiles\n" -msgstr "" -"\n" -" Création d'une nouvelle règle :\n" -" ipa sudorule-add readfiles\n" - -msgid "" -"\n" -" Add sudo command object and add it as allowed command in the rule:\n" -" ipa sudocmd-add /usr/bin/less\n" -" ipa sudorule-add-allow-command readfiles --sudocmds /usr/bin/less\n" -msgstr "" -"\n" -" Ajout d'un objet de commande sudo et ajout en tant que commande autorisée " -"dans la règle :\n" -" ipa sudocmd-add /usr/bin/less\n" -" ipa sudorule-add-allow-command readfiles --sudocmds /usr/bin/less\n" - -msgid "" -"\n" -" Add a host to the rule:\n" -" ipa sudorule-add-host readfiles --hosts server.example.com\n" -msgstr "" -"\n" -" Ajout d'un hôte à la règle :\n" -" ipa sudorule-add-host readfiles --hosts server.example.com\n" - -msgid "" -"\n" -" Add a user to the rule:\n" -" ipa sudorule-add-user readfiles --users jsmith\n" -msgstr "" -"\n" -" Ajout d'un utilisateur à la règle :\n" -" ipa sudorule-add-user readfiles --users jsmith\n" - -msgid "" -"\n" -" Add a special Sudo rule for default Sudo server configuration:\n" -" ipa sudorule-add defaults\n" -msgstr "" -"\n" -" Ajout d'une règle sudo spéciale pour la configuration du serveur sudo par " -"défaut :\n" -" ipa sudorule-add defaults\n" - -msgid "" -"\n" -" Set a default Sudo option:\n" -" ipa sudorule-add-option defaults --sudooption '!authenticate'\n" -msgstr "" -"\n" -" Définition d'une option par défaut pour sudo :\n" -" ipa sudorule-add-option defaults --sudooption '!authenticate'\n" - -msgid "this option has been deprecated." -msgstr "cette option a été abandonnée." - -msgid "sudo rules" -msgstr "règles sudo" - -msgid "Sudo Rules" -msgstr "Règles sudo" - -msgid "Sudo Rule" -msgstr "Règle sudo" - -#, python-format -msgid "order must be a unique value (%(order)d already used by %(rule)s)" -msgstr "" -"le rang doit être une valeur unique (%(order)d déjà utilisée par %(rule)s)" - -#, python-format -msgid "Added Sudo Rule \"%(value)s\"" -msgstr "Règle sudo « %(value)s » ajoutée" - -#, python-format -msgid "Deleted Sudo Rule \"%(value)s\"" -msgstr "Règle sudo « %(value)s » supprimée" - -#, python-format -msgid "Modified Sudo Rule \"%(value)s\"" -msgstr "Règle sudo « %(value)s » modifiée" - -#, python-format -msgid "" -"%(type)s category cannot be set to 'all' while there are allowed %(objects)s" -msgstr "" -"la catégorie %(type)s ne peut pas être définie à « all » tant que sont " -"alloués %(objects)s" - -msgid "users" -msgstr "utilisateurs" - -msgid "command" -msgstr "commande" - -msgid "commands" -msgstr "commandes" - -msgid "runAs user" -msgstr "utilisateur runAs" - -msgid "runAs users" -msgstr "utilisateurs runAs" - -msgid "group runAs" -msgstr "groupe runAs" - -msgid "runAs groups" -msgstr "groupes runAs" - -#, python-format -msgid "%(count)d Sudo Rule matched" -msgid_plural "%(count)d Sudo Rules matched" -msgstr[0] "%(count)d règle sudo correspondant" -msgstr[1] "%(count)d règles sudo correspondant" - -msgid "commands cannot be added when command category='all'" -msgstr "" -"des commandes ne peuvent pas être ajoutées quand la catégorie de commande " -"est « all »" - -msgid "users cannot be added when user category='all'" -msgstr "" -"des utilisateurs ne peuvent pas être ajoutés quand la catégorie de " -"l'utilisateur est « all »" - -msgid "hosts cannot be added when host category='all'" -msgstr "" -"des hôtes ne peuvent pas être ajoutés quand la catégorie de l'hôte est " -"« all »" - -msgid "users cannot be added when runAs user or runAs group category='all'" -msgstr "" -"des utilisateurs ne peuvent pas être ajoutés quand la catégorie « RunAs " -"User » ou « RunAs Group » est « all »" - -#, python-format -msgid "RunAsUser does not accept '%(name)s' as a user name" -msgstr "« RunAsUser » n'accepte pas « %(name)s » comme nom d'utilisateur" - -#, python-format -msgid "RunAsUser does not accept '%(name)s' as a group name" -msgstr "« RunAsUser » n'accepte pas « %(name)s » comme nom de groupe" - -#, python-format -msgid "RunAsGroup does not accept '%(name)s' as a group name" -msgstr "« RunAsGroup » n'accepte pas « %(name)s » comme nom de groupe" - -msgid "" -"\n" -"Groups of Sudo Commands\n" -"\n" -"Manage groups of Sudo Commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo Command Group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo Command Group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo Command Group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less --sudocmds=/usr/bin/" -"vim admincmds\n" -"\n" -" Manage Sudo Command Group membership, commands:\n" -" ipa sudocmdgroup-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo Command Group:\n" -" ipa sudocmdgroup-show admincmds\n" -msgstr "" -"\n" -"Groupes de commandes sudo\n" -"\n" -"Administre les groupes de commandes sudo.\n" -"\n" -"EXEMPLES :\n" -"\n" -" Ajouter un nouveau groupe de commandes sudo :\n" -" ipa sudocmdgroup-add --desc='commandes administrateurs' admincmds\n" -"\n" -" Supprimer un groupe de commandes sudo :\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Gérer les commandes, l'appartenance d'un groupe de commandes sudo :\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less --sudocmds=/usr/bin/" -"vim admincmds\n" -"\n" -" Administrer les commandes, l'appartenance d'un groupe de commandes sudo :\n" -" ipa sudocmdgroup-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Afficher un groupe de commandes sudo :\n" -" ipa sudocmdgroup-show admincmds\n" - -msgid "sudo command group" -msgstr "groupe de commandes sudo" - -msgid "sudo command groups" -msgstr "groupes de commandes sudo" - -#, python-format -msgid "Added Sudo Command Group \"%(value)s\"" -msgstr "Groupe de commandes sudo « %(value)s » ajouté" - -#, python-format -msgid "Deleted Sudo Command Group \"%(value)s\"" -msgstr "Groupe de commandes sudo « %(value)s » supprimé" - -#, python-format -msgid "Modified Sudo Command Group \"%(value)s\"" -msgstr "Groupe de commandes sudo « %(value)s » modifié." - -#, python-format -msgid "%(count)d Sudo Command Group matched" -msgid_plural "%(count)d Sudo Command Groups matched" -msgstr[0] "%(count)d groupe de commandes Sudo correspondant" -msgstr[1] "%(count)d groupes de commandes Sudo correspondant" - -#, python-brace-format -msgid "{role}: role not found" -msgstr "{role} : rôle introuvable" - -#, python-brace-format -msgid "{attr}: no such attribute" -msgstr "{attr} : attribut introuvable" - -msgid "ID View" -msgstr "Vue d'identifiants" - -msgid "system ID View" -msgstr "Vue d'identifiants du système" - -msgid "ID Views" -msgstr "Vues d'identifiants" - -msgid "User object overrides" -msgstr "Surcharges des objets utilisateurs" - -msgid "Group object overrides" -msgstr "Surcharges des objets groupes" - -msgid "Hosts the view applies to" -msgstr "Hôtes auxquels la vue s'applique" - -#, python-format -msgid "Added ID View \"%(value)s\"" -msgstr "Vue d'identifiants « %(value)s » ajoutée" - -#, python-format -msgid "Deleted ID View \"%(value)s\"" -msgstr "Vue d'identifiants « %(value)s » supprimée" - -#, python-format -msgid "Modified an ID View \"%(value)s\"" -msgstr "Vue d'identifiant « %(value)s » modifiée" - -#, python-format -msgid "%(count)d ID View matched" -msgid_plural "%(count)d ID Views matched" -msgstr[0] "%(count)d vue d'identifiants correspondante" -msgstr[1] "%(count)d vues d'identifiants correspondantes" - -msgid "Default Trust View cannot be applied on hosts" -msgstr "" -"La vue de la relation d'approbation par défaut ne peut être appliquée sur un " -"hôte" - -msgid "not found" -msgstr "introuvable" - -msgid "ID View already applied" -msgstr "Vue d'identifiants déjà appliquée" - -msgid "value" -msgstr "valeur" - -#, python-format -msgid "ID View applied to %i host." -msgstr "Vue d'identifiants appliquée à %i hôte." - -#, python-format -msgid "ID View applied to %i hosts." -msgstr "Vue d'identifiants appliquée à %i hôtes." - -#, python-format -msgid "ID View cleared from %i host." -msgstr "Vue d'identifiants retirée de %i hôte." - -#, python-format -msgid "ID View cleared from %i hosts." -msgstr "Vue d'identifiants retirée de %i hôtes." - -msgid "" -"You are trying to reference a magic private group which is not allowed to be " -"overridden. Try overriding the GID attribute of the corresponding user " -"instead." -msgstr "" -"Vous essayez de référencer un groupe privé magique qui ne peut être " -"surchargé. Essayez plutôt de surcharger l'attribut GID de l'utilisateur." - -msgid "IPA object" -msgstr "objet IPA" - -#, python-format -msgid "Anchor '%(anchor)s' could not be resolved." -msgstr "La balise « %(anchor)s » ne peut être résolue." - -msgid "Default Trust View cannot contain IPA users" -msgstr "" -"La vue de la relation d'approbation par défaut ne peut contenir des " -"utilisateurs IPA" - -msgid "Add a new ID override." -msgstr "Ajouter une nouvelle surcharge d'identifiant." - -#, python-format -msgid "Added ID override \"%(value)s\"" -msgstr "Surcharge d'identifiants « %(value)s » ajoutée" - -msgid "Delete an ID override." -msgstr "Supprimer une surcharge d'identifiants." - -#, python-format -msgid "Deleted ID override \"%(value)s\"" -msgstr "Surcharge d'identifiants « %(value)s » supprimée" - -msgid "Modify an ID override." -msgstr "Modifier une surcharge d'identifiants." - -#, python-format -msgid "Modified an ID override \"%(value)s\"" -msgstr "Surcharge d'identifiants « %(value)s » modifiée" - -msgid "ID override" -msgstr "Surcharge d'identifiants" - -msgid "ID overrides cannot be renamed" -msgstr "Les surchages d'identifiants ne peuvent être renommées" - -msgid "Search for an ID override." -msgstr "Rechercher une surcharge d'identifiants." - -#, python-format -msgid "%(count)d ID override matched" -msgid_plural "%(count)d ID overrides matched" -msgstr[0] "%(count)d surcharge d'identifiants correspondante" -msgstr[1] "%(count)d surcharges d'identifiants correspondantes" - -msgid "Display information about an ID override." -msgstr "Afficher les informations d'une surcharge d'identifiants." - -msgid "User ID override" -msgstr "Surcharge d'identifiant utilisateur" - -msgid "User ID overrides" -msgstr "Surcharges d'identifiants utilisateurs" - -msgid "Base-64 encoded user certificate" -msgstr "Certificat de l'utilisateur encodé en Base-64" - -msgid "Group ID override" -msgstr "Surcharge d'identifiant de groupe" - -msgid "Group ID overrides" -msgstr "Surcharges d'identifiants de groupes" - -msgid "Add one or more certificates to the idoverrideuser entry" -msgstr "" -"Ajouter un ou plusieurs certificats à l'entrée de l'utilisateur surchargé " -"(idoverrideuser)" - -#, python-format -msgid "Added certificates to idoverrideuser \"%(value)s\"" -msgstr "Certificats ajoutés à l'utilisateur surchargé « %(value)s »" - -msgid "Remove one or more certificates to the idoverrideuser entry" -msgstr "Supprimer les certificats de l'entrée de l'utilisateur surchargé" - -#, python-format -msgid "Removed certificates from idoverrideuser \"%(value)s\"" -msgstr "Certificats supprimés de l'utilisateur surchargé « %(value)s »" - -#, python-format -msgid "Added User ID override \"%(value)s\"" -msgstr "Surcharge d'identifiants utilisateurs « %(value)s » ajoutée" - -#, python-format -msgid "Deleted User ID override \"%(value)s\"" -msgstr "Surcharge d'identifiants utilisateurs « %(value)s » supprimée" - -#, python-format -msgid "Modified an User ID override \"%(value)s\"" -msgstr "Surcharge d'identifiants utilisateurs « %(value)s » modifiée" - -#, python-format -msgid "%(count)d User ID override matched" -msgid_plural "%(count)d User ID overrides matched" -msgstr[0] "%(count)d surcharge d'identifiants utilisateurs correspondante" -msgstr[1] "%(count)d surcharges d'identifiants utilisateurs correspondantes" - -#, python-format -msgid "Added Group ID override \"%(value)s\"" -msgstr "Surcharge d'identifiants de groupes « %(value)s » ajoutée" - -#, python-format -msgid "Deleted Group ID override \"%(value)s\"" -msgstr "Surcharge d'identifiants de groupes « %(value)s » supprimée" - -#, python-format -msgid "Modified an Group ID override \"%(value)s\"" -msgstr "Surcharge d'identifiants de groupes « %(value)s » modifiée" - -#, python-format -msgid "%(count)d Group ID override matched" -msgid_plural "%(count)d Group ID overrides matched" -msgstr[0] "%(count)d surcharge d'identifiants de groupes correspondante" -msgstr[1] "%(count)d surcharges d'identifiants de groupes correspondantes" - msgid "Failed to authenticate to CA REST API" msgstr "Échec de l'authentification auprès de l'API REST de l'AC" @@ -12106,22 +12268,481 @@ msgstr "Impossible de communiquer avec le CMS" msgid "Response from CA was not valid JSON" msgstr "La réponse de l'AC n'est pas dans un format JSON valide" -msgid "find not supported on CAs upgraded from 9 to 10" +msgid "" +"\n" +"Auto Membership Rule.\n" msgstr "" -"recherche non prise en charge sur les CA mis à jour de la version 9 à la " -"version 10" +"\n" +"Règle d'adhésion automatique.\n" -msgid "One time password commands" -msgstr "Commandes mots de passe à usage unique (OTP)" - -msgid "Domain Level cannot be lowered." -msgstr "Le niveau du domaine ne peut être redescendu." - -#, python-brace-format -msgid "Domain Level cannot be raised to {0}, server {1} does not support it." +msgid "" +"\n" +"Bring clarity to the membership of hosts and users by configuring inclusive\n" +"or exclusive regex patterns, you can automatically assign a new entries " +"into\n" +"a group or hostgroup based upon attribute information.\n" msgstr "" -"Le niveau actuel du domaine ne peut être relevé à {0}, le serveur {1} ne le " -"prend pas en charge." +"\n" +"Clarifie l'adhésion d'hôtes et d'utilisateurs en configurant des motifs\n" +"« regex » d'inclusion ou exclusion à assigner automatiquement aux nouvelles\n" +"entrées dans un groupe ou un groupe d'hôtes selon l'information d'attribut.\n" + +msgid "" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup.\n" +msgstr "" +"\n" +"Une règle est directement associée à un groupe par le nom, donc il n'est " +"pas\n" +"possible de créer une règle sans groupe ou groupe d'hôtes d'accompagnement.\n" + +msgid "" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +msgstr "" +"\n" +"Une condition est une expression rationnelle dont se sert « 389-ds » pour\n" +"associer nouvelle entrée et règle d'adhésion. Si l'entrée correspond à une\n" +"règle d'inclusion, elle est ajoutée au groupe ou groupe d'hôte approprié.\n" + +msgid "" +"\n" +"A default group or hostgroup could be specified for entries that do not\n" +"match any rule. In case of user entries this group will be a fallback group\n" +"because all users are by default members of group specified in IPA config.\n" +msgstr "" +"\n" +"Un groupe ou groupe d'hôte par défaut peut être défini pour des entrées ne\n" +"correspondant à aucune règle. Tout utilisateur a ce groupe comme repli, car\n" +"il est par défaut membre du groupe indiqué dans la configuration de IPA.\n" + +msgid "" +"\n" +"The automember-rebuild command can be used to retroactively run automember " +"rules\n" +"against existing entries, thus rebuilding their membership.\n" +msgstr "" +"\n" +"« automember-rebuild » s'utilise pour appliquer rétroactivement les règles\n" +"d'adhésion automatique aux entrées présentes, et ainsi revoir leur " +"adhésion.\n" + +msgid "" +"\n" +" Add the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +msgstr "" +"\n" +" Ajouter le groupe ou le groupe d'hôtes initial :\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" + +msgid "" +"\n" +" Add the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +msgstr "" +"\n" +" Ajouter la règle initiale :\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" + +msgid "" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-" +"regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-" +"regex=^uid=mscott devel\n" +msgstr "" +"\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" + +msgid "" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-" +"regex=^web5\\.example\\.com webservers\n" +msgstr "" +"\n" +" Ajouter une condition d'exclusion à la règle pour empêcher l'auto-" +"assignation :\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-" +"regex=^web5\\.example\\.com webservers\n" + +msgid "" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +msgstr "" +"\n" +" Ajouter un hôte :\n" +" ipa host-add web1.example.com\n" + +msgid "" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +msgstr "" +"\n" +" Ajouter un utilisateur :\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" + +msgid "" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +msgstr "" +"\n" +" Vérifier une adhésion automatique :\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" + +msgid "" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-" +"regex=^web[1-9]+\\.example\\.com webservers\n" +msgstr "" +"\n" +" Supprimer une condition de la règle :\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-" +"regex=^web[1-9]+\\.example\\.com webservers\n" + +msgid "" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +msgstr "" +"\n" +" Modifier la règle d'adhésion automatique :\n" +" ipa automember-mod\n" + +msgid "" +"\n" +" Set the default (fallback) target group:\n" +" ipa automember-default-group-set --default-group=webservers --" +"type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +msgstr "" +"\n" +" Définir le groupe cible par défaut (recours) :\n" +" ipa automember-default-group-set --default-group=webservers --" +"type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" + +msgid "" +"\n" +" Remove the default (fallback) target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +msgstr "" +"\n" +" Supprimer le groupe cible par défaut (repli) ::\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" + +msgid "" +"\n" +" Show the default (fallback) target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +msgstr "" +"\n" +" Afficher le groupe cible par défaut (repki) :\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" + +msgid "" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +msgstr "" +"\n" +" Retrouver toutes les règles d'adhésion automatique :\n" +" ipa automember-find\n" + +msgid "" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +msgstr "" +"\n" +" Afficher une règle d'adhésion automatique :\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" + +msgid "" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" +msgstr "" +"\n" +" Supprimer une règle d'adhésion automatique :\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" + +msgid "" +"\n" +" Rebuild membership for all users:\n" +" ipa automember-rebuild --type=group\n" +msgstr "" +"\n" +" Reconstruire l'appartenance de tous les utilisateurs :\n" +" ipa automember-rebuild --type=group\n" + +msgid "" +"\n" +" Rebuild membership for all hosts:\n" +" ipa automember-rebuild --type=hostgroup\n" +msgstr "" +"\n" +" Reconstruire l'appartenance de tous les hôtes :\n" +" ipa automember-rebuild --type=hostgroup\n" + +msgid "" +"\n" +" Rebuild membership for specified users:\n" +" ipa automember-rebuild --users=tuser1 --users=tuser2\n" +msgstr "" +"\n" +" Reconstruire l'appartenance d'utilisateurs donnés :\n" +" ipa automember-rebuild --users=tuser1 --users=tuser2\n" + +msgid "" +"\n" +" Rebuild membership for specified hosts:\n" +" ipa automember-rebuild --hosts=web1.example.com --hosts=web2.example." +"com\n" +msgstr "" +"\n" +" Reconstruire l'appartenance d'hôtes donnés :\n" +" ipa automember-rebuild --hosts=web1.example.com --hosts=web2.example." +"com\n" + +msgid "Auto Membership Rule" +msgstr "Règle d'appartenance automatique" + +#, python-format +msgid "%(otype)s \"%(oname)s\" not found" +msgstr "« %(oname)s » de « %(otype)s » introuvable" + +#, python-format +msgid "%s is not a valid attribute." +msgstr "%s n'est pas un attribut valide." + +msgid "" +"\n" +" Add an automember rule.\n" +" " +msgstr "" +"\n" +" Ajouter une règle d'auto-adhésion.\n" +" " + +#, python-format +msgid "Added automember rule \"%(value)s\"" +msgstr "Règle d'auto-adhésion « %(value)s » ajoutée" + +msgid "Auto Membership is not configured" +msgstr "L'auto-adhésion n'est pas configurée" + +msgid "" +"\n" +" Add conditions to an automember rule.\n" +" " +msgstr "" +"\n" +" Ajouter des conditions à une règle d'auto-adhésion.\n" +" " + +#, python-format +msgid "Added condition(s) to \"%(value)s\"" +msgstr "Condition(s) ajoutées à « %(value)s »" + +#, python-format +msgid "Auto member rule: %s not found!" +msgstr "Règle d'auto-adhésion : %s introuvable !" + +msgid "" +"\n" +" Override this so we can add completed and failed to the return " +"result.\n" +" " +msgstr "" +"\n" +" Surcharger ceci afin de pouvoir ajouter réussites et échecs aux\n" +" résultats renvoyés.\n" +" " + +msgid "" +"\n" +" Remove conditions from an automember rule.\n" +" " +msgstr "" +"\n" +" Supprimer des conditions d'une règle d'auto-adhésion.\n" +" " + +#, python-format +msgid "Removed condition(s) from \"%(value)s\"" +msgstr "Conditions supprimées de « %(value)s »" + +msgid "" +"\n" +" Override this so we can set completed and failed.\n" +" " +msgstr "" +"\n" +" Surcharger ceci afin de pouvoir définir réussites et échecs.\n" +" " + +msgid "" +"\n" +" Modify an automember rule.\n" +" " +msgstr "" +"\n" +" Modifier une règle d'auto-adhésion.\n" +" " + +#, python-format +msgid "Modified automember rule \"%(value)s\"" +msgstr "Règle d'auto-adhésion « %(value)s » modifiée" + +msgid "" +"\n" +" Delete an automember rule.\n" +" " +msgstr "" +"\n" +" Supprimer une règle d'auto-adhésion.\n" +" " + +#, python-format +msgid "Deleted automember rule \"%(value)s\"" +msgstr "Règle d'auto-adhésion « %(value)s » supprimée" + +msgid "" +"\n" +" Search for automember rules.\n" +" " +msgstr "" +"\n" +" Rechercher des règles d'auto-adhésion.\n" +" " + +#, 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" + +msgid "" +"\n" +" Display information about an automember rule.\n" +" " +msgstr "" +"\n" +" Afficher des informations au sujet d'une règle d'auto-adhésion.\n" +" " + +msgid "" +"\n" +" Set default (fallback) group for all unmatched entries.\n" +" " +msgstr "" +"\n" +" Définit un groupe par défaut (repli) pour toutes les entrées sans " +"correspondance.\n" +" " + +#, python-format +msgid "Set default (fallback) group for automember \"%(value)s\"" +msgstr "" +"Définir le groupe « %(value)s » par défaut (repli) pour l'auto-adhésion" + +msgid "" +"\n" +" Remove default (fallback) group for all unmatched entries.\n" +" " +msgstr "" +"\n" +" Supprimer le groupe par défaut (repli) pour toute entrée sans " +"correspondance.\n" +" " + +#, python-format +msgid "Removed default (fallback) group for automember \"%(value)s\"" +msgstr "Groupe « %(value)s » par défaut (repli) supprimé pour l'auto-adhésion" + +msgid "No default (fallback) group set" +msgstr "Pas de groupe par défaut (repli) défini" + +msgid "" +"\n" +" Display information about the default (fallback) automember groups.\n" +" " +msgstr "" +"\n" +" Afficher des informations pour les groupes d'auto-adhésion par défaut " +"(repli).\n" +" " + +msgid "Task DN" +msgstr "DN de la tâche" + +msgid "DN of the started task" +msgstr "DN de la tâche lancée" + +msgid "at least one of options: type, users, hosts must be specified" +msgstr "" +"au moins une des options « type », « users » ou « hosts » doit être indiquée" + +msgid "users and hosts cannot both be set" +msgstr "impossible de définir à la fois des utilisateurs et des hôtes" + +msgid "hosts cannot be set when type is 'group'" +msgstr "des hôtes ne peuvent pas être définis quand le type est « group »" + +msgid "users cannot be set when type is 'hostgroup'" +msgstr "impossible de définir des utilisateurs quand le type est « hostgroup »" + +msgid "Automember rebuild membership task started" +msgstr "" +"Tâche de reconstruction de l'appartenance avec adhésion automatique démarrée" + +#, python-format +msgid "Task DN = '%s'" +msgstr "DN de la tâche = « %s »" msgid "" "\n" @@ -12314,9 +12935,6 @@ msgstr "« %s » n'est pas un type de permission autorisé" msgid "Deprecated; use %s" msgstr "Abandonné ; utiliser %s" -msgid "ACI" -msgstr "ACI" - #, python-format msgid "Permission with unknown flag %s may not be modified or removed" msgstr "" @@ -12421,41 +13039,40 @@ msgid_plural "%(count)d permissions matched" msgstr[0] "%(count)d permission correspondant" msgstr[1] "%(count)d permissions correspondant" -msgid "" -"\n" -"Baseuser\n" -"\n" -"This contains common definitions for user/stageuser\n" +msgid "HBAC service group" +msgstr "Groupe de services HBAC" + +msgid "HBAC service groups" +msgstr "Groupes de services HBAC" + +msgid "HBAC Service Groups" +msgstr "Groupes de services HBAC" + +msgid "HBAC Service Group" +msgstr "Groupe de services HBAC" + +#, python-format +msgid "Added HBAC service group \"%(value)s\"" +msgstr "Groupe de services HBAC « %(value)s » ajouté" + +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" +msgstr "Groupe de services HBAC « %(value)s » supprimé" + +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" +msgstr "Groupe de services HBAC « %(value)s » modifié" + +#, 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 correspondant" + +msgid "Could not read UPG Definition originfilter. Check your permissions." msgstr "" -"\n" -"Utilisateur de base\n" -"\n" -"Ceci contient les définitions communes pour les utilisateurs et utilisateurs " -"en attente\n" - -msgid "must be TRUE or FALSE" -msgstr "doit être « TRUE » ou « FALSE »" - -msgid "SSH public key fingerprint" -msgstr "Empreinte de clé publique SSH" - -#, python-format -msgid "invalid e-mail format: %(email)s" -msgstr "format d'e-mail invalide : %(email)s" - -#, python-format -msgid "manager %(manager)s not found" -msgstr "responsable %(manager)s introuvable" - -#, python-format -msgid "can be at most %(len)d characters" -msgstr "doit contenir au plus %(len)d caractères" - -msgid "pkinit" -msgstr "« pkinit »" - -msgid "PKINIT" -msgstr "PKINIT" +"Impossible de lire « originfilter » de « UPG Definition ». Vérifiez vos " +"permissions." msgid "self service permission" msgstr "permission de libre service" @@ -12487,75 +13104,467 @@ msgid_plural "%(count)d selfservices matched" msgstr[0] "%(count)d permission de libre service correspondant" msgstr[1] "%(count)d permissions de libre service correspondant" -msgid "HBAC rule and local members cannot both be set" +msgid "" +"\n" +"IPA locations\n" msgstr "" -"Des membres locaux et des membres d'une règle HBAC ne peuvent pas être " -"définis simultanément" - -msgid "Invalid SELinux user name, only a-Z and _ are allowed" -msgstr "Nom d'utilisateur SELinux invalide, seuls a-Z et _ sont autorisés" - -msgid "Invalid MLS value, must match s[0-15](-s[0-15])" -msgstr "Valeur pour MLS invalide, doit correspondre à s[0-15](-s[0-15])" +"\n" +"Emplacements IPA\n" msgid "" -"Invalid MCS value, must match c[0-1023].c[0-1023] and/or c[0-1023]-c[0-c0123]" +"\n" +"Manipulate DNS locations\n" msgstr "" -"Valeur pour MLS invalide, doit correspondre à c[0-1023].c[0-1023] et/ou " -"c[0-1023]-c[0-c0123]" +"\n" +"Manipulation des emplacements DNS\n" -msgid "SELinux user map list not found in configuration" +msgid "" +"\n" +" Find all locations:\n" +" ipa location-find\n" msgstr "" -"Liste de correspondance d'utilisateurs SELinux introuvable dans cette " -"configuration" +"\n" +" Trouver tous les emplacements :\n" +" ipa location-find\n" -#, python-format -msgid "SELinux user %(user)s not found in ordering list (in config)" +msgid "" +"\n" +" Show specific location:\n" +" ipa location-show location\n" msgstr "" -"Utilisateur SELinux %(user)s introuvable dans la liste ordonnée (dans la " -"configuration)" +"\n" +" Afficher un emplacement spécifique :\n" +" ipa location-show location\n" -msgid "SELinux User Map rule" -msgstr "Règle de mappe utilisateurs SELinux" +msgid "" +"\n" +" Add location:\n" +" ipa location-add location --description 'My location'\n" +msgstr "" +"\n" +" Ajouter un emplacement :\n" +" ipa location-add location --description 'Mon emplacement'\n" -msgid "SELinux User Map rules" -msgstr "Règles de mappes utilisateurs SELinux" +msgid "" +"\n" +" Delete location:\n" +" ipa location-del location\n" +msgstr "" +"\n" +" Supprimer un emplacement :\n" +" ipa location-del location\n" -msgid "SELinux User Maps" -msgstr "Mappes d'utilisateurs SELinux" +msgid "location" +msgstr "emplacement" -msgid "SELinux User Map" -msgstr "Mappe d'utilisateurs SELinux" +msgid "locations" +msgstr "emplacements" + +msgid "IPA Locations" +msgstr "Emplacements IPA" + +msgid "IPA Location" +msgstr "Emplacement IPA" + +msgid "Location name" +msgstr "Nom de l'emplacement" + +msgid "IPA location name" +msgstr "Nom de l'emplacement IPA" + +msgid "IPA Location description" +msgstr "Description de l'emplacement IPA" + +msgid "Servers" +msgstr "Serveurs" + +msgid "Servers that belongs to the IPA location" +msgstr "Serveurs appartenants à l'emplacement IPA" + +msgid "Advertised by servers" +msgstr "Publié par les serveurs" + +msgid "List of servers which advertise the given location" +msgstr "Liste des serveurs qui publient un emplacement donné" + +msgid "Add a new IPA location." +msgstr "Ajouter un nouvel emplacement IPA." #, python-format -msgid "HBAC rule %(rule)s not found" -msgstr "Règle HBAC %(rule)s introuvable" +msgid "Added IPA location \"%(value)s\"" +msgstr "Emplacement IPA « %(value)s » ajouté" + +msgid "Delete an IPA location." +msgstr "Supprimer un emplacement IPA." #, python-format -msgid "Added SELinux User Map \"%(value)s\"" -msgstr "Mappe d'utilisateurs SELinux « %(value)s » ajoutée" +msgid "Deleted IPA location \"%(value)s\"" +msgstr "Emplacement IPA « %(value)s » supprimé" + +msgid "Modify information about an IPA location." +msgstr "Modifier les informations d'un emplacement IPA." #, python-format -msgid "Deleted SELinux User Map \"%(value)s\"" -msgstr "Mappe d'utilisateurs SELinux « %(value)s » supprimée." +msgid "Modified IPA location \"%(value)s\"" +msgstr "Emplacement IPA « %(value)s » modifié" + +msgid "Search for IPA locations." +msgstr "Rechercher des emplacements IPA." #, python-format -msgid "Modified SELinux User Map \"%(value)s\"" -msgstr "Mappe d'utilisateurs SELinux « %(value)s » modifiée" +msgid "%(count)d IPA location matched" +msgid_plural "%(count)d IPA locations matched" +msgstr[0] "%(count)d emplacement IPA correspondant" +msgstr[1] "%(count)d emplacements IPA correspondants" + +msgid "Display information about an IPA location." +msgstr "Afficher les informations d'un emplacement IPA." + +msgid "Servers in location" +msgstr "Serveurs situés à l'emplacement" + +msgid "A list of ACI values" +msgstr "Une liste de valeurs d'ACI" + +msgid "type, filter, subtree and targetgroup are mutually exclusive" +msgstr "" +"« type », « filter », « subtree » et « targetgroup » s'excluent mutuellement" + +msgid "ACI prefix is required" +msgstr "Un préfixe ACI est requis" + +msgid "" +"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" + +msgid "filter and memberof are mutually exclusive" +msgstr "« filter » et « memberof » s'excluent mutuellement" + +msgid "group, permission and self are mutually exclusive" +msgstr "« group », « permission » et « self » s'excluent mutuellement" + +msgid "One of group, permission or self is required" +msgstr "Un parmi « group », « permission » ou « self » est requis" #, python-format -msgid "%(count)d SELinux User Map matched" -msgid_plural "%(count)d SELinux User Maps matched" -msgstr[0] "%(count)d mappe d'utilisateurs SELinux correspondant" -msgstr[1] "%(count)d mappe d'utilisateurs SELinux correspondant" +msgid "Group '%s' does not exist" +msgstr "Le groupe « %s » n'existe pas" + +msgid "empty filter" +msgstr "filtre vide" #, python-format -msgid "Enabled SELinux User Map \"%(value)s\"" -msgstr "Mappe d'utilisateurs SELinux « %(value)s » activée" +msgid "Syntax Error: %(error)s" +msgstr "Erreur de syntaxe : %(error)s" #, python-format -msgid "Disabled SELinux User Map \"%(value)s\"" -msgstr "Mappe d'utilisateurs SELinux « %(value)s » désactivée" +msgid "invalid DN (%s)" +msgstr "DN invalide (%s)" + +#, python-format +msgid "ACI with name \"%s\" not found" +msgstr "ACI de nom « %s » introuvable" + +msgid "ACIs" +msgstr "ACI" + +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "ACI « %(value)s » créée" + +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "ACI « %(value)s » supprimée" + +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "ACI « %(value)s » modifiée" + +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "%(count)d ACI correspondant" +msgstr[1] "%(count)d ACI correspondant" + +#, python-format +msgid "Renamed ACI to \"%(value)s\"" +msgstr "ACI renommée en « %(value)s »" + +msgid "" +"\n" +"IPA servers\n" +msgstr "" +"\n" +"Serveurs IPA\n" + +msgid "" +"\n" +"Get information about installed IPA servers.\n" +msgstr "" +"\n" +"Afficher les informations au sujet des serveurs IPA installés.\n" + +msgid "" +"\n" +" Find all servers:\n" +" ipa server-find\n" +msgstr "" +"\n" +" Trouver tous les serveurs :\n" +" ipa server-find\n" + +msgid "" +"\n" +" Show specific server:\n" +" ipa server-show ipa.example.com\n" +msgstr "" +"\n" +" Afficher les informations d'un serveur en particulier :\n" +" ipa server-show ipa.example.com\n" + +msgid "server" +msgstr "serveur" + +msgid "servers" +msgstr "serveurs" + +msgid "IPA Servers" +msgstr "Serveurs IPA" + +msgid "Server location" +msgstr "Emplacement de serveur" + +msgid "Service weight" +msgstr "Poids du service" + +msgid "Weight for server services" +msgstr "Poids des services des serveurs" + +msgid "Service relative weight" +msgstr "Poids relatif du service" + +msgid "Relative weight for server services (counts per location)" +msgstr "Poids relatifs des services des serveurs (compte par emplacement)" + +msgid "Enabled server roles" +msgstr "Rôles serveur activés" + +msgid "List of enabled roles" +msgstr "Liste des rôles activés" + +msgid "Modify information about an IPA server." +msgstr "Modifier les informations d'un serveur IPA." + +#, python-format +msgid "Modified IPA server \"%(value)s\"" +msgstr "Serveur IPA \"%(value)s\" modifié" + +#, python-format +msgid "%(count)d IPA server matched" +msgid_plural "%(count)d IPA servers matched" +msgstr[0] "%(count)d serveur IPA correspondant" +msgstr[1] "%(count)d serveurs IPA correspondants" + +#, python-format +msgid "Deleted IPA server \"%(value)s\"" +msgstr "Serveur IPA « %(value)s » supprimé" + +msgid "Ignore topology errors" +msgstr "Ignorer les erreurs de topologie" + +msgid "Ignore topology connectivity problems after removal" +msgstr "" +"Ignorer les problèmes de connectivité dans la topologie après suppression" + +msgid "Ignore check for last remaining CA or DNS server" +msgstr "Ignorer la vérification de dernier serveur d'AC ou DNS" + +msgid "Skip a check whether the last CA master or DNS server is removed" +msgstr "" +"Passer la vérification lorsque le dernier serveur DNS ou AC maître est " +"supprimé" + +msgid "Force server removal" +msgstr "Forcer la suppression du serveur" + +msgid "Force server removal even if it does not exist" +msgstr "Forcer la suppression du serveur même s'il n'existe pas" + +msgid "" +"Replica is active DNSSEC key master. Uninstall could break your DNS system. " +"Please disable or replace DNSSEC key master first." +msgstr "" +"La réplique est un serveur de clés DNSSEC actif. Le désinstaller pourrait " +"casser votre système DNS. Merci de d'abord désactiver ou de remplacer votre " +"serveur de clés DNSSEC." + +msgid "Deleting this server will leave your installation without a DNS." +msgstr "La suppression de ce serveur laissera votre installation sans DNS." + +msgid "" +"Deleting this server is not allowed as it would leave your installation " +"without a CA." +msgstr "" +"La suppression de ce serveur n'est pas autorisée, elle laisserait votre " +"installation sans AC." + +msgid "Ignoring these warnings and proceeding with removal" +msgstr "On ignore ces avertissements et lancement de la suppression" + +#, python-format +msgid "" +"Failed to clean memberPrincipal %(principal)s from s4u2proxy entry %(dn)s: " +"%(err)s" +msgstr "" +"Échec du nettoyage du memberPrincipal %(principal)s dans l'entrée s4u2proxy " +"%(dn)s : %(err)s" + +#, python-format +msgid "Failed to clean up DNA hostname entries for %(master)s: %(err)s" +msgstr "" +"Échec du nettoyage des entrées du nom d'hôte DNA pour %(master)s : %(err)s" + +#, python-format +msgid "Failed to remove server %(master)s from server list: %(err)s" +msgstr "" +"Échec de la suppression du serveur %(master)s de la liste de serveurs : " +"%(err)s" + +#, python-format +msgid "Failed to cleanup server principals/keys: %(err)s" +msgstr "Échec du nettoyage du principal ou des clés du serveur : %(err)s" + +#, python-format +msgid "Failed to cleanup %(hostname)s DNS entries: %(err)s" +msgstr "Échec du nettoyage des entrées DNS de %(hostname)s : %(err)s" + +msgid "You may need to manually remove them from the tree" +msgstr "Vous pouvez avoir besoin de les supprimer manuellement de l'arbre" + +#, python-format +msgid "Forcing removal of %(hostname)s" +msgstr "On force la suppression de %(hostname)s" + +msgid "Ignoring topology connectivity errors." +msgstr "On ignore les erreurs de connectivité de la topologie." + +msgid "Server has already been deleted" +msgstr "Le serveur a déjà été supprimé" + +msgid "Agreements deleted" +msgstr "Agréments supprimés" + +msgid "Following segments were not deleted:" +msgstr "Les segments suivants n'ont pas été supprimés :" + +#, python-format +msgid "must be \"%s\"" +msgstr "doit être « %s »" + +msgid "not allowed to perform server connection check" +msgstr "impossible d'effectuer la vérification de la connexion au serveur" + +msgid "Member service groups" +msgstr "Groupes de services membres" + +msgid "Member HBAC service groups" +msgstr "Groupes de services HBAC membres" + +msgid "Indirect Member permissions" +msgstr "Droits d'accès de membre indirect" + +msgid "Indirect Member HBAC service" +msgstr "Service HBAC de membre indirect" + +msgid "Indirect Member HBAC service group" +msgstr "Groupe de services de membre indirect" + +msgid "Invalid format. Should be name=value" +msgstr "Format invalide. Doit être nom=valeur" + +msgid "An IPA master host cannot be deleted or disabled" +msgstr "Un serveur maître IPA ne peut ni être supprimé ni désactivé" + +msgid "entry" +msgstr "entrée" + +msgid "entries" +msgstr "entrées" + +msgid "Entry" +msgstr "Entrée" + +#, python-format +msgid "container entry (%(container)s) not found" +msgstr "entrée conteneur (%(container)s) introuvable" + +#, python-format +msgid "%(parent)s: %(oname)s not found" +msgstr "%(parent)s : %(oname)s introuvable" + +#, python-format +msgid "%(pkey)s: %(oname)s not found" +msgstr "%(pkey)s : %(oname)s introuvable" + +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" +msgstr "L'objet %(oname)s avec le nom « %(pkey)s » existe déjà" + +#, python-format +msgid "attribute \"%(attribute)s\" not allowed" +msgstr "l'attribut « %(attribute)s » n'est pas autorisé" + +msgid "attribute is not configurable" +msgstr "l'attribut n'est pas configurable" + +msgid "No such attribute on this entry" +msgstr "Pas d'attribut de ce type sur cette entrée" + +#, python-format +msgid "Rename the %(ldap_obj_name)s object" +msgstr "Renomme l'objet %(ldap_obj_name)s" + +msgid "the entry was deleted while being modified" +msgstr "cette entrée a été supprimée pendant sa modification" + +#, python-format +msgid "%s" +msgstr "%s" + +#, python-format +msgid "%s to add" +msgstr "%s à ajouter" + +#, python-format +msgid "%s to remove" +msgstr "%s à supprimer" + +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" +msgstr "" +"Les résultats doivent uniquement contenir un attribut de clé principale " +"(« %s »)" + +#, python-format +msgid "" +"Search for %(searched_object)s with these %(relationship)s %(ldap_object)s." +msgstr "" +"Recherche des %(searched_object)s avec ceux de %(ldap_object)s de " +"%(relationship)s." + +#, python-format +msgid "" +"Search for %(searched_object)s without these %(relationship)s " +"%(ldap_object)s." +msgstr "" +"Recherche des %(searched_object)s sans ceux de %(ldap_object)s de " +"%(relationship)s." + +msgid "one or more values to remove" +msgstr "une ou plusieurs valeurs à supprimer" msgid "" "\n" @@ -12717,6 +13726,9 @@ msgstr "" msgid "Base-64 encoded host certificate" msgstr "Certificat de l'hôte encodé en Base-64" +msgid "SSH public key fingerprint" +msgstr "Empreinte de clé publique SSH" + #, python-format msgid "Added host \"%(value)s\"" msgstr "Hôte « %(value)s » ajouté" @@ -12779,361 +13791,686 @@ msgstr "Supprimer un alias de principal de l'entrée d'un hôte" msgid "Removed aliases from host \"%(value)s\"" msgstr "Alias supprimés pour l'hôte « %(value)s »" -msgid "HBAC service group" -msgstr "Groupe de services HBAC" +msgid "host groups" +msgstr "groupes d'hôtes" -msgid "HBAC service groups" -msgstr "Groupes de services HBAC" - -msgid "HBAC Service Groups" -msgstr "Groupes de services HBAC" - -msgid "HBAC Service Group" -msgstr "Groupe de services HBAC" +msgid "Host Group" +msgstr "Groupe d'hôtes" #, python-format -msgid "Added HBAC service group \"%(value)s\"" -msgstr "Groupe de services HBAC « %(value)s » ajouté" +msgid "Added hostgroup \"%(value)s\"" +msgstr "Groupe d'hôtes « %(value)s » ajouté" #, python-format -msgid "Deleted HBAC service group \"%(value)s\"" -msgstr "Groupe de services HBAC « %(value)s » supprimé" - -#, python-format -msgid "Modified HBAC service group \"%(value)s\"" -msgstr "Groupe de services HBAC « %(value)s » modifié" - -#, 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 correspondant" - -msgid "must contain a tuple (list, dict)" -msgstr "doit contenir un tuple (liste, dict)" - -msgid "A list of ACI values" -msgstr "Une liste de valeurs d'ACI" - -msgid "type, filter, subtree and targetgroup are mutually exclusive" +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -"« type », « filter », « subtree » et « targetgroup » s'excluent mutuellement" +"Un groupe réseau nommé « %s » existe déjà. Les groupes d'hôtes et les " +"groupes réseau partagent un même espace de noms." -msgid "ACI prefix is required" -msgstr "Un préfixe ACI est requis" +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" +msgstr "Groupe d'hôtes « %(value)s » supprimé" + +msgid "hostgroup" +msgstr "groupe d'hôtes" + +msgid "privileged hostgroup" +msgstr "groupe d'hôtes privilégiés" + +#, python-format +msgid "Modified hostgroup \"%(value)s\"" +msgstr "Groupe d'hôtes « %(value)s » modifié" + +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "%(count)d groupe d'hôtes correspondant" +msgstr[1] "%(count)d groupes d'hôtes correspondant" + +msgid "configuration options" +msgstr "options de configuration" + +msgid "Configuration" +msgstr "Configuration" + +msgid "IPA masters" +msgstr "Maîtres IPA" + +msgid "List of all IPA masters" +msgstr "Liste des maîtres IPA" + +msgid "IPA CA servers" +msgstr "Serveurs d'AC IPA" + +msgid "IPA servers configured as certificate authority" +msgstr "Serveurs IPA configurés comme autorité de certification" + +msgid "IPA NTP servers" +msgstr "Serveurs NTP IPA" + +msgid "IPA servers with enabled NTP" +msgstr "Serveurs IPA où NTP est activé" + +msgid "IPA CA renewal master" +msgstr "Maître de renouvellement d'AC IPA" + +msgid "Renewal master for IPA certificate authority" +msgstr "Maître en charge du renouvellement de l'autorité de certification" + +msgid "The group doesn't exist" +msgstr "Le groupe n'existe pas" + +#, python-format +msgid "attribute \"%s\" not allowed" +msgstr "attribut « %s » interdit" + +msgid "May not be empty" +msgstr "Ne peut pas être vide" + +#, python-format +msgid "%(obj)s default attribute %(attr)s would not be allowed!" +msgstr "L'attribut par défaut %(attr)s de %(obj)s n'est pas autorisé !" + +msgid "A list of SELinux users delimited by $ expected" +msgstr "Est attendue une liste des utilisateurs SELinux, délimités par des $" + +#, python-format +msgid "SELinux user '%(user)s' is not valid: %(error)s" +msgstr "L'utilisateur SELinux « %(user)s » n'est pas valide : %(error)s" + +msgid "SELinux user map default user not in order list" +msgstr "" +"L'utilisateur par défaut de la mappe utilisateur SELinux n'est pas dans la " +"liste d'ordre" + +msgid "CA ACL" +msgstr "LCA de l'AC" + +msgid "CA ACLs" +msgstr "LCA de l'AC" + +msgid "CA category" +msgstr "Catégorie d'AC" + +msgid "CA category the ACL applies to" +msgstr "Catégorie d'AC à laquelle l'ACL s'applique" + +msgid "CAs" +msgstr "AC" + +#, python-format +msgid "Added CA ACL \"%(value)s\"" +msgstr "LCA d'AC « %(value)s » créée" + +#, python-format +msgid "Deleted CA ACL \"%(value)s\"" +msgstr "LCA d'AC « %(value)s » supprimée" + +msgid "default CA ACL can be only disabled" +msgstr "La LCA d'AC par défaut ne peut qu'être désactivée" + +#, python-format +msgid "Modified CA ACL \"%(value)s\"" +msgstr "LCA d'AC « %(value)s » modifiée" + +msgid "CA category cannot be set to 'all' while there are allowed CAs" +msgstr "" +"une catégorie d'AC ne peut pas être définie à « all » tant qu'il reste des " +"AC autorisées" msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +"profile category cannot be set to 'all' while there are allowed profiles" msgstr "" -"au moins un parmi « type », « filter », « subtree », « targetgroup », " -"« attrs » ou « memberof » est requis" - -msgid "filter and memberof are mutually exclusive" -msgstr "« filter » et « memberof » s'excluent mutuellement" - -msgid "group, permission and self are mutually exclusive" -msgstr "« group », « permission » et « self » s'excluent mutuellement" - -msgid "One of group, permission or self is required" -msgstr "Un parmi « group », « permission » ou « self » est requis" +"la catégorie de profil ne peut être positionnée à 'all' tant qu'il existe " +"des profils autorisés" #, python-format -msgid "Group '%s' does not exist" -msgstr "Le groupe « %s » n'existe pas" - -msgid "empty filter" -msgstr "filtre vide" +msgid "%(count)d CA ACL matched" +msgid_plural "%(count)d CA ACLs matched" +msgstr[0] "%(count)d LCA d'AC correspondante" +msgstr[1] "%(count)d LCA d'AC correspondantes" #, python-format -msgid "Syntax Error: %(error)s" -msgstr "Erreur de syntaxe : %(error)s" +msgid "Enabled CA ACL \"%(value)s\"" +msgstr "LCA d'AC « %(value)s » activée" #, python-format -msgid "invalid DN (%s)" -msgstr "DN invalide (%s)" +msgid "Disabled CA ACL \"%(value)s\"" +msgstr "LCA d'AC « %(value)s » désactivée" #, python-format -msgid "ACI with name \"%s\" not found" -msgstr "ACI de nom « %s » introuvable" - -msgid "ACIs" -msgstr "ACI" +msgid "%i user or group added." +msgstr "%i utilisateur ou groupe ajouté." #, python-format -msgid "Created ACI \"%(value)s\"" -msgstr "ACI « %(value)s » créée" +msgid "%i users or groups added." +msgstr "%i utilisateurs ou groupes ajoutés." #, python-format -msgid "Deleted ACI \"%(value)s\"" -msgstr "ACI « %(value)s » supprimée" +msgid "%i user or group removed." +msgstr "%i utilisateur ou groupe supprimé." #, python-format -msgid "Modified ACI \"%(value)s\"" -msgstr "ACI « %(value)s » modifiée" +msgid "%i users or groups removed." +msgstr "%i utilisateurs ou groupes supprimés." #, python-format -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "%(count)d ACI correspondant" -msgstr[1] "%(count)d ACI correspondant" +msgid "%i host or hostgroup added." +msgstr "%i hôte ou groupe d'hôtes ajouté." #, python-format -msgid "Renamed ACI to \"%(value)s\"" -msgstr "ACI renommée en « %(value)s »" +msgid "%i hosts or hostgroups added." +msgstr "%i hôtes ou groupes d'hôtes ajoutés." -msgid "Host-based access control commands" -msgstr "Commandes de contrôle d'accès basé sur l'hôte" +#, python-format +msgid "%i host or hostgroup removed." +msgstr "%i hôte ou groupe d'hôtes supprimé." + +#, python-format +msgid "%i hosts or hostgroups removed." +msgstr "%i hôtes ou groupes d'hôtes supprimés." + +#, python-format +msgid "%i service added." +msgstr "%i service ajouté." + +#, python-format +msgid "%i services added." +msgstr "%i services ajoutés." + +#, python-format +msgid "%i service removed." +msgstr "%i service supprimé." + +#, python-format +msgid "%i services removed." +msgstr "%i services supprimés." + +#, python-format +msgid "%i profile added." +msgstr "%i profil ajouté." + +#, python-format +msgid "%i profiles added." +msgstr "%i profils ajoutés." + +msgid "profiles cannot be added when profile category='all'" +msgstr "" +"des profils ne peuvent pas être ajoutés quand la catégorie de profil est " +"« all »" + +#, python-format +msgid "%i profile removed." +msgstr "%i profil supprimé." + +#, python-format +msgid "%i profiles removed." +msgstr "%i profils supprimés." + +msgid "Add CAs to a CA ACL." +msgstr "Ajouter des AC à une LCA d'AC" + +#, python-format +msgid "%i CA added." +msgstr "%i AC ajoutée." + +#, python-format +msgid "%i CAs added." +msgstr "%i AC ajoutées." + +msgid "CAs cannot be added when CA category='all'" +msgstr "" +"des AC ne peuvent pas être ajoutées quand la catégorie de l'AC est « all »" + +msgid "Remove CAs from a CA ACL." +msgstr "Supprimer des AC d'une LCA d'AC" + +#, python-format +msgid "%i CA removed." +msgstr "%i AC supprimée." + +#, python-format +msgid "%i CAs removed." +msgstr "%i AC supprimées." msgid "" "\n" -"DNS server configuration\n" -msgstr "" +"Simulate use of Host-based access controls\n" "\n" -"Configuration du serveur DNS\n" - -msgid "" +"HBAC rules control who can access what services on what hosts.\n" +"You can use HBAC to control which users or groups can access a service,\n" +"or group of services, on a target host.\n" "\n" -"Manipulate DNS server configuration\n" -msgstr "" +"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" -"Manipulation de la configuration du serveur DNS\n" - -msgid "" +" Test user coming to a service on a named host against\n" +" existing enabled rules.\n" "\n" -" Show configuration of a specific DNS server:\n" -" ipa dnsserver-show\n" -msgstr "" +" ipa hbactest --user= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +" [--sizelimit= ]\n" "\n" -"Afficher la configuration d'un serveur DNS spécifique :\n" -" ipa dnsserver-show\n" - -msgid "" +" --user, --host, and --service are mandatory, others are optional.\n" "\n" -" Update configuration of a specific DNS server:\n" -" ipa dnsserver-mod\n" -msgstr "" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" "\n" -" Modifier la configuration d'un serveur DNS spécifique :\n" -" ipa dnsserver-mod\n" - -msgid "DNS server" -msgstr "Serveur DNS" - -msgid "DNS servers" -msgstr "Serveurs DNS" - -msgid "DNS Servers" -msgstr "Serveurs DNS" - -msgid "DNS Server" -msgstr "Serveur DNS" - -msgid "DNS Server name" -msgstr "Nom du serveur DNS" - -msgid "Forwarders" -msgstr "Redirecteurs de zone" - -msgid "" -"Per-server forwarders. A custom port can be specified for each forwarder " -"using a standard format \"IP_ADDRESS port PORT\"" -msgstr "" -"Redirecteurs par serveur. Un port personnalisé peut être indiqué pour chaque " -"redirecteur avec le format standard « adresse_IP port PORT »" - -msgid "" -"Per-server conditional forwarding policy. Set to \"none\" to disable " -"forwarding to global forwarder for this zone. In that case, conditional zone " -"forwarders are disregarded." -msgstr "" -"Politique de redirection conditionnelle par serveur. Mettre à « none » pour " -"désactiver la redirection vers un redireteur global pour cette zone. Dans ce " -"cas, les redirecteurs de zone conditionnels sont ignorés." - -msgid "DNS is not configured" -msgstr "Le DNS n'est pas configuré" - -msgid "Modify DNS server configuration" -msgstr "Modifier la configuration du serveur DNS" - -#, python-format -msgid "Modified DNS server \"%(value)s\"" -msgstr "Serveur DNS « %(value)s » modifié" - -msgid "Search for DNS servers." -msgstr "Rechercher des serveurs DNS." - -#, python-format -msgid "%(count)d DNS server matched" -msgid_plural "%(count)d DNS servers matched" -msgstr[0] "%(count)d serveur DNS correspondant" -msgstr[1] "%(count)d serveurs DNS correspondants" - -msgid "Display configuration of a DNS server." -msgstr "Afficher la configuration d'un nouveau serveur DNS." - -msgid "Add a new DNS server." -msgstr "Ajouter un nouveau serveur DNS." - -#, python-format -msgid "Added new DNS server \"%(value)s\"" -msgstr "Nouveau serveur DNS « %(value)s » ajouté" - -msgid "Delete a DNS server" -msgstr "Supprimer un serveur DNS" - -#, python-format -msgid "Deleted DNS server \"%(value)s\"" -msgstr "Serveur DNS « %(value)s » supprimé" - -msgid "" +" If --enabled is specified, all enabled HBAC rules will be added to " +"simulation\n" "\n" -"HBAC Services\n" +" If --disabled is specified, all disabled HBAC rules will be added to " +"simulation\n" "\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" +" If --nodetail is specified, do not return information about rules matched/" +"not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules " +"_and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +" By default there is a IPA-wide limit to number of entries fetched, you can " +"change it\n" +" with --sizelimit option.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +" Matched rules: allow_all\n" "\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" "\n" -" 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" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" +" --rules=myrule --rules=my-second-rule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: myrule\n" "\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified " +"rules:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" +" --rules=myrule --rules=my-second-rule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +" Matched rules: allow_all\n" "\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" Not matched rules: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified " +"rules:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" +" --rules=myrule --rules=my-second-rule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" +" --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +" Not matched rules: new-rule\n" +" Matched rules: allow_all\n" +"\n" +"\n" +"HBACTEST AND TRUSTED DOMAINS\n" +"\n" +"When an external trusted domain is configured in IPA, HBAC rules are also " +"applied\n" +"on users accessing IPA resources from the trusted domain. Trusted domain " +"users and\n" +"groups (and their SIDs) can be then assigned to external groups which can " +"be\n" +"members of POSIX groups in IPA which can be used in HBAC rules and thus " +"allowing\n" +"access to resources protected by the HBAC system.\n" +"\n" +"hbactest plugin is capable of testing access for both local IPA users and " +"users\n" +"from the trusted domains, either by a fully qualified user name or by user " +"SID.\n" +"Such user names need to have a trusted domain specified as a short name\n" +"(DOMAIN\\Administrator) or with a user principal name (UPN), " +"Administrator@ad.test.\n" +"\n" +"Please note that hbactest executed with a trusted domain user as --user " +"parameter\n" +"can be only run by members of \"trust admins\" group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Test if a user from a trusted domain specified by its shortname " +"matches any\n" +" rule:\n" +"\n" +" $ ipa hbactest --user 'DOMAIN\\Administrator' --host `hostname` --" +"service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 2. Test if a user from a trusted domain specified by its domain name " +"matches\n" +" any rule:\n" +"\n" +" $ ipa hbactest --user 'Administrator@domain.com' --host `hostname` --" +"service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 3. Test if a user from a trusted domain specified by its SID matches any " +"rule:\n" +"\n" +" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n" +" --host `hostname` --service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 4. Test if other user from a trusted domain specified by its SID matches " +"any rule:\n" +"\n" +" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-1203 \\\n" +" --host `hostname` --service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Not matched rules: can_login\n" +"\n" +" 5. Test if other user from a trusted domain specified by its shortname " +"matches\n" +" any rule:\n" +"\n" +" $ ipa hbactest --user 'DOMAIN\\Otheruser' --host `hostname` --service " +"sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Not matched rules: can_login\n" msgstr "" "\n" -"Services HBAC\n" +"Simuler l'utilisation des contrôles d'accès fondés sur l'hôte\n" "\n" -"Les services PAM dont le système HBAC peut contrôler l'accès. Le nom " -"utilisé\n" -"ici doit correspondre au nom du service analysé par PAM.\n" -"EXEMPLES:\n" +"Les règles HBAC contrôlent qui peut accéder à quel service sur quels hôtes.\n" +"Vous pouvez utiliser HBAC pour contrôler quels utilisateurs ou quels " +"groupes\n" +"ont accés à un service ou à un groupe de services, sur un hôte cible.\n" "\n" -" Ajouter un nouveau service HBAC :\n" -" ipa hbacsvc-add tftp\n" +"L'application de règles HBAC présuppose un environnement de production ;\n" +"ce greffon a pour objet de fournir une simulation de l'évaluation des " +"règles\n" +"HBAC sans nécessiter d'accès à cet environnement.\n" "\n" -" Modifier un service HBAC existant :\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +" Tester l'arrivée d'un utilisateur dans un service sur un hôte donné\n" +" vis à vis des règles actives existantes.\n" "\n" -" Chercher des services HBAC. Cet exemple renvoie deux résultats, le service\n" -" FTP et le service tftp nouvellement ajouté :\n" -" ipa hbacsvc-find ftp\n" +"ipa hbactest --user= --host= --service=\\\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\\\n" +" [--sizelimit= ]\n" "\n" -" Supprimer un service HBAC :\n" -" ipa hbacsvc-del tftp\n" +"--user, --host et --service sont obligatoires, les autres sont " +"optionnelles.\n" "\n" +" Si --rules est défini, simule l'activation des règles « rules-list » et\n" +" teste la connexion de l'utilisateur uniquement sur ces règles.\n" +"\n" +" Si --enabled est défini, toutes les règles HBAC activées sont ajoutées à\n" +" la simulation\n" +"\n" +" Si --disabled est défini, toutes les règles HBAC désactivées sont ajoutées\n" +" à la simulation\n" +"\n" +" Si --nodetail est défini, il n'est pas renvoyé d'information sur les " +"règles satisfaites ou non satisfaites.\n" +"\n" +" Si --rules et --enabled sont définis tous deux, la simulation est " +"appliquée\n" +" à --rules _et_ à tous les règles IPA activées.\n" +"\n" +" Si --rules n'est pas défini, la simulation est lancée vis à sis de toutes\n" +" les règles IPA activées.\n" +" Par défaut, il y a une limite globale IPA pour le nombre d'entrées\n" +" renvoyées, vous pouvez la modifier avec l'option « --sizelimit ».\n" +"\n" +"EXEMPLES :\n" +"\n" +" 1. Utiliser toutes les règles HBAC activées dans la base de données IPA\n" +" pour la simulation :\n" +" $ ipa hbactest --user=a1a --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. Désactiver le résumé détaillé sur l'application des règles :\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Tester explicitement les règles HBAC indiquées :\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \n" +"--rules=my-second-rule,myrule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: my-second-rule\n" +" notmatched: myrule\n" +"\n" +" 4. Utiliser toutes les règles HBAC activées de la base de données IPA\n" +" plus les règles explicitement définies :\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \n" +"--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. Tester toutes les règles HBAC désactivées de la base de données " +"IPA :\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" notmatched: new-rule\n" +"\n" +" 6. Tester toutes les règles HBAC désactivées de la base de données IPA\n" +" plus les règles explicitement définies :\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \n" +"--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. Tester toutes les règles HBAC (activées et désactivées) de la base\n" +" de données IPA :\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" +" --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" +"\n" +"TEST HBAC ET domaines approuvés\n" +"\n" +"Si un domaine approuvé externe est configuré dans IPA, les règles HBAC\n" +"sont aussi appliquées aux utilisateurs accédant aux ressources IPA à partir\n" +"du domaine approuvé. Les utilisateurs des domaines approuvés et les\n" +"groupes (et leur SID) peuvent être assignés à des groupes externes pouvant\n" +"être membres de groupes POSIX d'IPA éligibles aux règles HBAC, ce qui\n" +"autorise un accès aux ressources protégées par le système HBAC.\n" +"\n" +"Le greffon « hbactest » peut tester des accès, à la fois d'utilisateurs\n" +"IPA locaux et d'utilisateurs de domaines approuvés à partir, soit du\n" +"nom d'utilisateur pleinement qualifié, soit du SID utilisateur. De tels " +"noms\n" +"d'utilisateur doivent avoir un domaine approuvé précisé comme nom court\n" +"(DOMAINE\\Administrateur) ou avec un nom de principal d'utilisateur (UPN),\n" +"Administrator@ad.test.\n" +"\n" +"Veuillez noter que « hbactest » exécuté avec un utilisateur de domaine de\n" +"confiance en tant que paramètre --user ne peut être lancé que par des\n" +"membres du groupe des « administrateurs de confiance ».\n" +"\n" +"EXEMPLES :\n" +"\n" +" 1. Tester si un utilisateur d'un domaine approuvé défini par son\n" +" nom court satisfait à toute règle :\n" +"\n" +" $ ipa hbactest --user 'DOMAIN\\Administrator' --host `hostname` --" +"service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 2. Tester si un utilisateur d'un domaine approuvé défini par son\n" +" nom de domaine satisfait à toute règle :\n" +"\n" +" $ ipa hbactest --user 'Administrator@domain.com' --host `hostname` --" +"service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 3. Tester si un utilisateur d'un domaine approuvé défini par son\n" +" SID satisfait à toute règle :\n" +"\n" +" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n" +" --host `hostname` --service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 4. Tester si un autre utilisateur d'un domaine approuvé défini\n" +" par son SID satisfait à toute règle :\n" +"\n" +" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-1203 \\\n" +" --host `hostname` --service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Not matched rules: can_login\n" +"\n" +" 5. Tester si un autre utilisateur d'un domaine approuvé défini par\n" +" son nom court satisfait à toute règle :\n" +"\n" +" $ ipa hbactest --user 'DOMAIN\\Otheruser' --host `hostname` --service " +"sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Not matched rules: can_login\n" -msgid "HBAC services" -msgstr "Services HBAC" +msgid "Unresolved rules in --rules" +msgstr "Règles non résolues dans « --rules »" -msgid "HBAC Services" -msgstr "Services HBAC" +msgid "" +"Cannot perform external member validation without Samba 4 support installed. " +"Make sure you have installed server-trust-ad sub-package of IPA on the server" +msgstr "" +"Impossible de réaliser la validation de membre externe sans installer " +"Samba 4. Assurez-vous d'avoir installé le sous-paquet « IPAserver-trust-ad » " +"sur le serveur" -msgid "HBAC Service" -msgstr "Service HBAC" +msgid "" +"Cannot search in trusted domains without own domain configured. Make sure " +"you have run ipa-adtrust-install on the IPA server first" +msgstr "" +"Impossible d'effectuer une recherche sur les domaines approuvés sans avoir " +"au préalable configuré son propre domaine. Assurez-vous d'avoir au préalable " +"lancé « ipa-adtrust-install » sur le serveur" #, python-format -msgid "Added HBAC service \"%(value)s\"" -msgstr "Service HBAC « %(value)s » ajouté" +msgid "Access granted: %s" +msgstr "Accès autorisé : %s" + +msgid "" +"\n" +"Baseuser\n" +"\n" +"This contains common definitions for user/stageuser\n" +msgstr "" +"\n" +"Utilisateur de base\n" +"\n" +"Ceci contient les définitions communes pour les utilisateurs et utilisateurs " +"en attente\n" + +msgid "must be TRUE or FALSE" +msgstr "doit être « TRUE » ou « FALSE »" #, python-format -msgid "Deleted HBAC service \"%(value)s\"" -msgstr "Service HBAC « %(value)s » supprimé" +msgid "invalid e-mail format: %(email)s" +msgstr "format d'e-mail invalide : %(email)s" #, python-format -msgid "Modified HBAC service \"%(value)s\"" -msgstr "Service HBAC « %(value)s » modifié" - -#, 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 correspondant" - -msgid "domain" -msgstr "domaine" - -msgid "Certificate Authority" -msgstr "Autorité de certification" - -msgid "Certificate Authorities" -msgstr "Autorités de certification" - -msgid "Name" -msgstr "Nom" - -msgid "Name for referencing the CA" -msgstr "Nom de référencement de l'AC" - -msgid "Description of the purpose of the CA" -msgstr "Description de l'objet de l'AC" - -msgid "Authority ID" -msgstr "ID de l'autorité" - -msgid "Dogtag Authority ID" -msgstr "ID de l'autorité Dogtag" - -msgid "Subject DN" -msgstr "DN de l'objet" - -msgid "Subject Distinguished Name" -msgstr "Nom distinctif de l'objet" - -msgid "Issuer DN" -msgstr "DN de l'émetteur" - -msgid "Issuer Distinguished Name" -msgstr "Nom distinctif de l'émetteur" - -msgid "Search for CAs." -msgstr "Rechercher des AC." - -#, python-format -msgid "%(count)d CA matched" -msgid_plural "%(count)d CAs matched" -msgstr[0] "%(count)d AC correspondante" -msgstr[1] "%(count)d AC correspondantes" - -msgid "Display the properties of a CA." -msgstr "Afficher les propriétés d'une AC." - -msgid "Create a CA." -msgstr "Créer une AC." - -#, python-format -msgid "Created CA \"%(value)s\"" -msgstr "AC « %(value)s » créée" - -#, python-format -msgid "Insufficient 'add' privilege for entry '%s'." -msgstr "Privilège « add » insuffisant pour l'entrée « %s »." - -msgid "Delete a CA." -msgstr "Supprimer une AC." - -#, python-format -msgid "Deleted CA \"%(value)s\"" -msgstr "AC « %(value)s » supprimée" - -msgid "IPA CA cannot be deleted" -msgstr "L'AC de IPA ne peut être supprimée" - -msgid "Modify CA configuration." -msgstr "Modifier la configuration de l'AC" - -#, python-format -msgid "Modified CA \"%(value)s\"" -msgstr "AC « %(value)s » modifiée" +msgid "manager %(manager)s not found" +msgstr "responsable %(manager)s introuvable" msgid "" "\n" @@ -13403,6 +14740,824 @@ msgstr "" msgid "Default group for new users not found" msgstr "Groupe par défaut pour les nouveaux utilisateurs introuvable" +msgid "One time password commands" +msgstr "Commandes mots de passe à usage unique (OTP)" + +msgid "HBAC rule and local members cannot both be set" +msgstr "" +"Des membres locaux et des membres d'une règle HBAC ne peuvent pas être " +"définis simultanément" + +msgid "Invalid SELinux user name, only a-Z and _ are allowed" +msgstr "Nom d'utilisateur SELinux invalide, seuls a-Z et _ sont autorisés" + +msgid "Invalid MLS value, must match s[0-15](-s[0-15])" +msgstr "Valeur pour MLS invalide, doit correspondre à s[0-15](-s[0-15])" + +msgid "" +"Invalid MCS value, must match c[0-1023].c[0-1023] and/or c[0-1023]-c[0-c0123]" +msgstr "" +"Valeur pour MLS invalide, doit correspondre à c[0-1023].c[0-1023] et/ou " +"c[0-1023]-c[0-c0123]" + +msgid "SELinux user map list not found in configuration" +msgstr "" +"Liste de correspondance d'utilisateurs SELinux introuvable dans cette " +"configuration" + +#, python-format +msgid "SELinux user %(user)s not found in ordering list (in config)" +msgstr "" +"Utilisateur SELinux %(user)s introuvable dans la liste ordonnée (dans la " +"configuration)" + +msgid "SELinux User Map rule" +msgstr "Règle de mappe utilisateurs SELinux" + +msgid "SELinux User Map rules" +msgstr "Règles de mappes utilisateurs SELinux" + +msgid "SELinux User Maps" +msgstr "Mappes d'utilisateurs SELinux" + +msgid "SELinux User Map" +msgstr "Mappe d'utilisateurs SELinux" + +#, python-format +msgid "HBAC rule %(rule)s not found" +msgstr "Règle HBAC %(rule)s introuvable" + +#, python-format +msgid "Added SELinux User Map \"%(value)s\"" +msgstr "Mappe d'utilisateurs SELinux « %(value)s » ajoutée" + +#, python-format +msgid "Deleted SELinux User Map \"%(value)s\"" +msgstr "Mappe d'utilisateurs SELinux « %(value)s » supprimée." + +#, python-format +msgid "Modified SELinux User Map \"%(value)s\"" +msgstr "Mappe d'utilisateurs SELinux « %(value)s » modifiée" + +#, python-format +msgid "%(count)d SELinux User Map matched" +msgid_plural "%(count)d SELinux User Maps matched" +msgstr[0] "%(count)d mappe d'utilisateurs SELinux correspondant" +msgstr[1] "%(count)d mappe d'utilisateurs SELinux correspondant" + +#, python-format +msgid "Enabled SELinux User Map \"%(value)s\"" +msgstr "Mappe d'utilisateurs SELinux « %(value)s » activée" + +#, python-format +msgid "Disabled SELinux User Map \"%(value)s\"" +msgstr "Mappe d'utilisateurs SELinux « %(value)s » désactivée" + +msgid "" +"\n" +"API Schema\n" +msgstr "" +"\n" +"Schéma de l'API\n" + +msgid "" +"\n" +"Provides API introspection capabilities.\n" +msgstr "" +"\n" +"Fournit des capacités d'introspection de l'API.\n" + +msgid "" +"\n" +" Show user-find details:\n" +" ipa command-show user-find\n" +msgstr "" +"\n" +" Afficher les informations sur user-find :\n" +" ipa command-show user-find\n" + +msgid "" +"\n" +" Find user-find parameters:\n" +" ipa param-find user-find\n" +msgstr "" +"\n" +" Trouver les arguments disponibles pour user-find :\n" +" ipa param-find user-find\n" + +msgid "Documentation" +msgstr "Documentation" + +msgid "Exclude from" +msgstr "Exclure de" + +msgid "Include in" +msgstr "Inclure dans" + +msgid "Help topic" +msgstr "Sujet de l'aide" + +msgid "Parameters" +msgstr "Paramètres" + +msgid "Display information about a command." +msgstr "Afficher des informations sur une commande." + +msgid "Search for commands." +msgstr "Rechercher des commandes." + +msgid "Display information about a help topic." +msgstr "Afficher les informations sur un sujet de l'aide." + +msgid "Search for help topics." +msgstr "Rechercher des sujets de l'aide." + +msgid "Required" +msgstr "Requis" + +msgid "Multi-value" +msgstr "Multi-valué" + +msgid "Always ask" +msgstr "Toujours demander" + +msgid "CLI metavar" +msgstr "Metavariable CLI" + +msgid "CLI name" +msgstr "Nom CLI" + +msgid "Confirm (password)" +msgstr "Confirmer le mot de passe" + +msgid "Default" +msgstr "Par défaut" + +msgid "Default from" +msgstr "Valeur par défaut depuis" + +msgid "Label" +msgstr "Étiquette" + +msgid "Convert on server" +msgstr "Convertir sur le serveur" + +msgid "Option group" +msgstr "Groupe d'options" + +msgid "Sensitive" +msgstr "Sensible" + +msgid "Display information about a command parameter." +msgstr "Afficher des informations sur un paramètre de commande." + +msgid "Search command parameters." +msgstr "Rechercher des paramètres de commandes." + +msgid "Display information about a command output." +msgstr "Afficher les informations sur une sortie de commande." + +msgid "Search for command outputs." +msgstr "Rechercher des sorties de commande." + +msgid "Host-based access control commands" +msgstr "Commandes de contrôle d'accès basé sur l'hôte" + +msgid "" +"\n" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less --sudocmds=/usr/bin/" +"vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa sudocmdgroup-show admincmds\n" +msgstr "" +"\n" +"Groupes de commandes sudo\n" +"\n" +"Administre les groupes de commandes sudo.\n" +"\n" +"EXEMPLES :\n" +"\n" +" Ajouter un nouveau groupe de commandes sudo :\n" +" ipa sudocmdgroup-add --desc='commandes administrateurs' admincmds\n" +"\n" +" Supprimer un groupe de commandes sudo :\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Gérer les commandes, l'appartenance d'un groupe de commandes sudo :\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less --sudocmds=/usr/bin/" +"vim admincmds\n" +"\n" +" Administrer les commandes, l'appartenance d'un groupe de commandes sudo :\n" +" ipa sudocmdgroup-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Afficher un groupe de commandes sudo :\n" +" ipa sudocmdgroup-show admincmds\n" + +msgid "sudo command group" +msgstr "groupe de commandes sudo" + +msgid "sudo command groups" +msgstr "groupes de commandes sudo" + +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" +msgstr "Groupe de commandes sudo « %(value)s » ajouté" + +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" +msgstr "Groupe de commandes sudo « %(value)s » supprimé" + +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" +msgstr "Groupe de commandes sudo « %(value)s » modifié." + +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "%(count)d groupe de commandes Sudo correspondant" +msgstr[1] "%(count)d groupes de commandes Sudo correspondant" + +#, python-format +msgid "Added user \"%(value)s\"" +msgstr "Utilisateur « %(value)s » ajouté" + +msgid "Default group for new users is not POSIX" +msgstr "Le groupe par défaut des nouveaux utilisateurs n'est pas POSIX" + +#, python-format +msgid "Deleted user \"%(value)s\"" +msgstr "Utilisateur « %(value)s » supprimé" + +#, python-format +msgid "%s: user is already preserved" +msgstr "%s : l'utilisateur est déjà préservé" + +#, python-format +msgid "Modified user \"%(value)s\"" +msgstr "Utilisateur « %(value)s » modifié" + +#, python-format +msgid "Undeleted user account \"%(value)s\"" +msgstr "Compte utilisateur « %(value)s » restauré" + +#, python-format +msgid "user \"%s\" is already active" +msgstr "l'utilisateur « %s » est déjà actif" + +#, python-format +msgid "Staged user account \"%(value)s\"" +msgstr "Compte utilisateur en attente « %(value)s »" + +#, python-format +msgid "Disabled user account \"%(value)s\"" +msgstr "Compte utilisateur « %(value)s » désactivé" + +#, python-format +msgid "Enabled user account \"%(value)s\"" +msgstr "Compte utilisateur « %(value)s » activé" + +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" +" Déverrouiller un compte utilisateur\n" +"\n" +" Un compte utilisateur peut se verrouiller si le mot de passe n'est pas\n" +" saisi correctement plusieurs fois de suite dans un laps de temps donné\n" +" défini par la politique du mot de passe. Le verrouillage d'un compte " +"est\n" +" un état temporaire ; il peut être déverrouillé par un administrateur." + +#, python-format +msgid "Unlocked account \"%(value)s\"" +msgstr "Compte utilisateur « %(value)s » déverrouillé" + +msgid "Failed logins" +msgstr "Connexions ayant échoué" + +msgid "Last successful authentication" +msgstr "Dernière authentification réussie" + +msgid "Last failed authentication" +msgstr "Dernière authentification ayant échoué" + +msgid "Time now" +msgstr "Heure actuelle" + +msgid "" +"\n" +" Lockout status of a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked " +"by\n" +" an administrator.\n" +"\n" +" This connects to each IPA master and displays the lockout status on\n" +" each one.\n" +"\n" +" To determine whether an account is locked on a given server you need\n" +" to compare the number of failed logins and the time of the last " +"failure.\n" +" For an account to be locked it must exceed the maxfail failures within\n" +" the failinterval duration as specified in the password policy " +"associated\n" +" with the user.\n" +"\n" +" The failed login counter is modified only when a user attempts a log in\n" +" so it is possible that an account may appear locked but the last failed\n" +" login attempt is older than the lockouttime of the password policy. " +"This\n" +" means that the user may attempt a login again. " +msgstr "" +"\n" +" État verrouillé d'un compte utilisateur\n" +"\n" +" Un compte peut être verrouillé si un mot de passe incorrect est entre à\n" +" plusieurs reprises dans un laps de temps donnée selon la politique de\n" +" contrôle des mots de passe. Le verrouillage du compte est un état\n" +" temporaire ; le compte peut être déverrouillé par un administrateur.\n" +"\n" +" Ce dernier se connecte sur l'IPA maître et affiche l'état du\n" +" verrouillage de chacun.\n" +"\n" +" Pour savoir si un compte est verrouillé sur un serveur donné, vous " +"devez\n" +" comparer le nombre d'échecs de connexion et l'heure du dernier échec.\n" +" Pour qu'un compte soit verrouillé, le nombre d'échecs doit dépasser le\n" +" maximum autorisé dans l'intervalle de temps donné tel que défini dans " +"la\n" +" politique de mot de passe propre à l'utilisateur.\n" +"\n" +" Le compteur d'échecs de connexion n'est incrémenté que lorsqu'un\n" +" utilisateur tente une connexion, il est donc possible qu'un compte\n" +" paraisse bloqué mais que la dernière tentative de connexion soit\n" +" antérieure à la durée de verrouillage de la règle. Cela\n" +" signifie que l'utilisateur peut tenter de se connecter à nouveau." + +#, python-format +msgid "%(host)s failed: %(error)s" +msgstr "%(host)s en échec : %(error)s" + +#, python-format +msgid "%(host)s failed" +msgstr "%(host)s en échec" + +#, python-format +msgid "Account disabled: %(disabled)s" +msgstr "Compte désactivé : %(disabled)s" + +#, python-format +msgid "Added certificates to user \"%(value)s\"" +msgstr "Certificats ajoutés à l'utilisateur « %(value)s »" + +#, python-format +msgid "Removed certificates from user \"%(value)s\"" +msgstr "Certificats supprimés de l'utilisateur « %(value)s »" + +msgid "" +"\n" +"Topology\n" +"\n" +"Management of a replication topology at domain level 1.\n" +msgstr "" +"\n" +"Topologie\n" +"\n" +"Gestion de la topologie de réplication.\n" + +msgid "" +"\n" +"IPA server's data is stored in LDAP server in two suffixes:\n" +"* domain suffix, e.g., 'dc=example,dc=com', contains all domain related " +"data\n" +"* ca suffix, 'o=ipaca', is present only on server with CA installed. It\n" +" contains data for Certificate Server component\n" +msgstr "" +"\n" +"Les données des serveurs IPA sont enregistrées dans le serveur LDAP\n" +"sous deux suffixes :\n" +"* le suffixe de domain, par exemple « dc=example,dc=com », qui contient " +"toutes\n" +" les informations relatives au domaine ;\n" +"* le suffixe ca, « o=ipaca », qui n'est présent que sur les serveurs où " +"l'autorité de certification\n" +" est installée. Il contient les données nécessaire au composant " +"Certificate Server\n" + +msgid "" +"\n" +"Data stored on IPA servers is replicated to other IPA servers. The way it " +"is\n" +"replicated is defined by replication agreements. Replication agreements " +"needs\n" +"to be set for both suffixes separately. On domain level 0 they are managed\n" +"using ipa-replica-manage and ipa-csreplica-manage tools. With domain level " +"1\n" +"they are managed centrally using `ipa topology*` commands.\n" +msgstr "" +"\n" +"Les données enregistrées dans les serveurs IPA sont répliquées vers les " +"autres\n" +"serveurs IPA. Les agréments de réplication définissent la manière dont la \n" +"réplication s'opère. Les agréments de réplication doivent être définis " +"pour \n" +"les deux suffixes de manière séparée. Sur les domaines de niveau 0, ils " +"sont\n" +"gérés par les outils ipa-replica-manage et ipa-csreplica-manage tools. Sur \n" +"les domaines de niveau 1, ils sont gérés de manière centralisée par les " +"commandes\n" +"« ipa topology* ».\n" + +msgid "" +"\n" +"Agreements are represented by topology segments. By default topology " +"segment\n" +"represents 2 replication agreements - one for each direction, e.g., A to B " +"and\n" +"B to A. Creation of unidirectional segments is not allowed.\n" +msgstr "" +"\n" +"Les agréments sont représentés par des segments de topologie. Un segment de " +"topologie\n" +"représente par défaut deux agréments de réplication, un pour chaque " +"direction, par exemple\n" +"de A vers B et de B vers A. La création de segments unidirectionnels n'est " +"pas permise.\n" + +msgid "" +"\n" +"To verify that no server is disconnected in the topology of the given " +"suffix,\n" +"use:\n" +" ipa topologysuffix-verify $suffix\n" +msgstr "" +"\n" +"Afin de vérifier qu'aucun serveur n'est déconnecté dans la topologie d'un\n" +"suffixe donné, utiliser :\n" +" ipa topologysuffix-verify $suffix\n" + +msgid "" +"\n" +"\n" +"Examples:\n" +" Find all IPA servers:\n" +" ipa server-find\n" +msgstr "" +"\n" +"\n" +"Exemples :\n" +" Trouver tous les serveurs :\n" +" ipa server-find\n" + +msgid "" +"\n" +" Find all suffixes:\n" +" ipa topologysuffix-find\n" +msgstr "" +"\n" +" Trouver tous les suffixes :\n" +" ipa topologysuffix-find\n" + +msgid "" +"\n" +" Add topology segment to 'domain' suffix:\n" +" ipa topologysegment-add domain --left IPA_SERVER_A --right IPA_SERVER_B\n" +msgstr "" +"\n" +" Ajouter un segment de topologie au suffixe du domaine :\n" +" ipa topologysegment-add domain --left IPA_SERVER_A --right IPA_SERVER_B\n" + +msgid "" +"\n" +" Add topology segment to 'ca' suffix:\n" +" ipa topologysegment-add ca --left IPA_SERVER_A --right IPA_SERVER_B\n" +msgstr "" +"\n" +" Ajouter un segment de topologie au suffixe « ca » :\n" +" ipa topologysegment-add ca --left IPA_SERVER_A --right IPA_SERVER_B\n" + +msgid "" +"\n" +" List all topology segments in 'domain' suffix:\n" +" ipa topologysegment-find domain\n" +msgstr "" +"\n" +" Énumérer tous les segments de topologie dans le suffixe du domaine :\n" +" ipa topologysegment-find domain\n" + +msgid "" +"\n" +" List all topology segments in 'ca' suffix:\n" +" ipa topologysegment-find ca\n" +msgstr "" +"\n" +" Énumérer tous les segments de topologie dans le suffixe « ca » :\n" +" ipa topologysegment-find ca\n" + +msgid "" +"\n" +" Delete topology segment in 'domain' suffix:\n" +" ipa topologysegment-del domain segment_name\n" +msgstr "" +"\n" +" Supprimer un segment de topologie du suffixe du domaine :\n" +" ipa topologysegment-del domain segment_name\n" + +msgid "" +"\n" +" Delete topology segment in 'ca' suffix:\n" +" ipa topologysegment-del ca segment_name\n" +msgstr "" +"\n" +" Supprimer un segment de topologie du suffixe « ca » :\n" +" ipa topologysegment-del ca segment_name\n" + +msgid "" +"\n" +" Verify topology of 'domain' suffix:\n" +" ipa topologysuffix-verify domain\n" +msgstr "" +"\n" +" Vérification de la topologie du suffixe du domaine :\n" +" ipa topologysuffix-verify domain\n" + +msgid "" +"\n" +" Verify topology of 'ca' suffix:\n" +" ipa topologysuffix-verify ca\n" +msgstr "" +"\n" +" Vérification de la topologie du suffixe « ca » :\n" +" ipa topologysuffix-verify ca\n" + +#, python-brace-format +msgid "Topology management requires minimum domain level {0} " +msgstr "La gestion de la topologie nécessite le niveau de domaine minimal {0}" + +msgid "segment" +msgstr "segment" + +msgid "segments" +msgstr "segments" + +msgid "Topology Segments" +msgstr "Segments de topologie" + +msgid "Topology Segment" +msgstr "Segment de topologie" + +#, python-format +msgid "left node is not a topology node: %(leftnode)s" +msgstr "le nœud de gauche n'est pas un nœud de la topologie : %(leftnode)s" + +#, python-format +msgid "right node is not a topology node: %(rightnode)s" +msgstr "le nœud de droite n'est pas un nœud de la topologie : %(rightnode)s" + +msgid "left node and right node must not be the same" +msgstr "les nœuds de gauche et de droite ne peuvent être identiques" + +#, python-format +msgid "%(count)d segment matched" +msgid_plural "%(count)d segments matched" +msgstr[0] "%(count)d segment correspondant" +msgstr[1] "%(count)d segment correspondants" + +#, python-format +msgid "Added segment \"%(value)s\"" +msgstr "Segment « %(value)s » ajouté" + +#, python-format +msgid "Deleted segment \"%(value)s\"" +msgstr "Segment « %(value)s » supprimé" + +#, python-format +msgid "Modified segment \"%(value)s\"" +msgstr "Segment « %(value)s » modifié" + +#, python-format +msgid "%(value)s" +msgstr "%(value)s" + +msgid "left or right node has to be specified" +msgstr "le nœud de gauche ou de droite doit être indiqué" + +msgid "only one node can be specified" +msgstr "seul un nœud peut être indiqué" + +#, python-format +msgid "Replication refresh for segment: \"%(pkey)s\" requested." +msgstr "" +"Raffraichissement demandé pour la réplication via le segment « %(pkey)s »." + +#, python-format +msgid "Stopping of replication refresh for segment: \"%(pkey)s\" requested." +msgstr "" +"Arrêt du raffraichissement demandé pour la réplication via le segment « " +"%(pkey)s »." + +msgid "suffixes" +msgstr "suffixes" + +msgid "Topology suffixes" +msgstr "Suffixes de topologie" + +msgid "Topology suffix" +msgstr "Suffixe de topologie" + +#, python-format +msgid "%(count)d topology suffix matched" +msgid_plural "%(count)d topology suffixes matched" +msgstr[0] "%(count)d suffixe de topologie correspondant" +msgstr[1] "%(count)d suffixes de topologie correspondants" + +#, python-format +msgid "Deleted topology suffix \"%(value)s\"" +msgstr "Suffixe de topologie « %(value)s » supprimé" + +#, python-format +msgid "Added topology suffix \"%(value)s\"" +msgstr "Suffixe de topologie « %(value)s » ajouté" + +#, python-format +msgid "Modified topology suffix \"%(value)s\"" +msgstr "Suffixe de topologie « %(value)s » modifié" + +msgid "" +"\n" +"Verify replication topology for suffix.\n" +"\n" +"Checks done:\n" +" 1. check if a topology is not disconnected. In other words if there are\n" +" replication paths between all servers.\n" +" 2. check if servers don't have more than the recommended number of\n" +" replication agreements\n" +msgstr "" +"\n" +"Vérifier la topologie de réplication pour le suffixe.\n" +"\n" +"Vérifications effectuées :\n" +" 1. vérfier si la topologie n'est pas déconnectée. En d'autres mots, si des " +"chemins\n" +" de réplication existent bien entre tous les serveurs.\n" +" 2. vérifier si tous les serveurs n'ont pas un nombre supérieur à celui " +"recommandé\n" +" d'agrément de réplication.\n" + +msgid "automount location" +msgstr "emplacement de montage automatique" + +msgid "automount locations" +msgstr "emplacements de montage automatique" + +msgid "Automount Locations" +msgstr "Emplacements de montage automatique" + +msgid "Automount Location" +msgstr "Emplacement de montage automatique" + +#, python-format +msgid "Added automount location \"%(value)s\"" +msgstr "Emplacement « automount » « %(value)s » ajouté" + +#, python-format +msgid "Deleted automount location \"%(value)s\"" +msgstr "Emplacement « automount » « %(value)s » supprimé" + +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "%(count)d emplacement « automount » correspondant" +msgstr[1] "%(count)d emplacements « automount » correspondants" + +msgid "automount map" +msgstr "carte « automount »" + +msgid "automount maps" +msgstr "cartes « automount »" + +msgid "Automount Maps" +msgstr "Cartes « automount »" + +msgid "Automount Map" +msgstr "Carte « automount »" + +#, python-format +msgid "Added automount map \"%(value)s\"" +msgstr "Carte « automount » « %(value)s » ajoutée" + +#, python-format +msgid "Deleted automount map \"%(value)s\"" +msgstr "Carte « automount » « %(value)s » supprimée" + +#, python-format +msgid "Modified automount map \"%(value)s\"" +msgstr "Carte « automount » « %(value)s » modifiée" + +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "%(count)d carte « automount » correspondante" +msgstr[1] "%(count)d cartes « automount » correspondantes" + +msgid "Automount key object." +msgstr "Objet clé « automount »." + +msgid "automount key" +msgstr "clé « automount »" + +msgid "automount keys" +msgstr "clés « automount »" + +msgid "Automount Keys" +msgstr "Clés « automount »" + +msgid "Automount Key" +msgstr "Clé « automount »" + +#, 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'info" +"%(info)s existe déjà." + +#, python-format +msgid "key named %(key)s already exists" +msgstr "la clé nommée %(key)s existe déjà" + +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" +msgstr "La clé « automount » %(key)s avec l'info %(info)s n'existe pas" + +#, 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 donnée." + +#, python-format +msgid "Added automount key \"%(value)s\"" +msgstr "Clé « automount » « %(value)s » créée" + +#, python-format +msgid "Added automount indirect map \"%(value)s\"" +msgstr "Carte « automount » indirect « %(value)s » créée" + +msgid "mount point is relative to parent map, cannot begin with /" +msgstr "" +"point de montage relatif à la carte parente, ne peut pas commencer par /" + +#, python-format +msgid "Deleted automount key \"%(value)s\"" +msgstr "Clé « automount » « %(value)s » supprimée" + +#, python-format +msgid "Modified automount key \"%(value)s\"" +msgstr "Clé « automount » « %(value)s » modifiée" + +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "%(count)d clé « automount » correspondante" +msgstr[1] "%(count)d clés « automount » correspondantes" + +msgid "Client version. Used to determine if server will accept request." +msgstr "" +"Version client. Utilisée pour déterminer si le serveur accepte la requête." + +msgid "must contain a tuple (list, dict)" +msgstr "doit contenir un tuple (liste, dict)" + msgid "" "\n" "Vaults\n" @@ -13904,1335 +16059,435 @@ msgstr "Donnée récupérée depuis le coffre-fort « %(value)s »" msgid "No archived data." msgstr "Aucune donnée archivée." -msgid "" -"\n" -"Auto Membership Rule.\n" -msgstr "" -"\n" -"Règle d'adhésion automatique.\n" - -msgid "" -"\n" -"Bring clarity to the membership of hosts and users by configuring inclusive\n" -"or exclusive regex patterns, you can automatically assign a new entries " -"into\n" -"a group or hostgroup based upon attribute information.\n" -msgstr "" -"\n" -"Clarifie l'adhésion d'hôtes et d'utilisateurs en configurant des motifs\n" -"« regex » d'inclusion ou exclusion à assigner automatiquement aux nouvelles\n" -"entrées dans un groupe ou un groupe d'hôtes selon l'information d'attribut.\n" - -msgid "" -"\n" -"A rule is directly associated with a group by name, so you cannot create\n" -"a rule without an accompanying group or hostgroup.\n" -msgstr "" -"\n" -"Une règle est directement associée à un groupe par le nom, donc il n'est " -"pas\n" -"possible de créer une règle sans groupe ou groupe d'hôtes d'accompagnement.\n" - -msgid "" -"\n" -"A condition is a regular expression used by 389-ds to match a new incoming\n" -"entry with an automember rule. If it matches an inclusive rule then the\n" -"entry is added to the appropriate group or hostgroup.\n" -msgstr "" -"\n" -"Une condition est une expression rationnelle dont se sert « 389-ds » pour\n" -"associer nouvelle entrée et règle d'adhésion. Si l'entrée correspond à une\n" -"règle d'inclusion, elle est ajoutée au groupe ou groupe d'hôte approprié.\n" - -msgid "" -"\n" -"A default group or hostgroup could be specified for entries that do not\n" -"match any rule. In case of user entries this group will be a fallback group\n" -"because all users are by default members of group specified in IPA config.\n" -msgstr "" -"\n" -"Un groupe ou groupe d'hôte par défaut peut être défini pour des entrées ne\n" -"correspondant à aucune règle. Tout utilisateur a ce groupe comme repli, car\n" -"il est par défaut membre du groupe indiqué dans la configuration de IPA.\n" - -msgid "" -"\n" -"The automember-rebuild command can be used to retroactively run automember " -"rules\n" -"against existing entries, thus rebuilding their membership.\n" -msgstr "" -"\n" -"« automember-rebuild » s'utilise pour appliquer rétroactivement les règles\n" -"d'adhésion automatique aux entrées présentes, et ainsi revoir leur " -"adhésion.\n" - -msgid "" -"\n" -" Add the initial group or hostgroup:\n" -" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" -" ipa group-add --desc=\"Developers\" devel\n" -msgstr "" -"\n" -" Ajouter le groupe ou le groupe d'hôtes initial :\n" -" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" -" ipa group-add --desc=\"Developers\" devel\n" - -msgid "" -"\n" -" Add the initial rule:\n" -" ipa automember-add --type=hostgroup webservers\n" -" ipa automember-add --type=group devel\n" -msgstr "" -"\n" -" Ajouter la règle initiale :\n" -" ipa automember-add --type=hostgroup webservers\n" -" ipa automember-add --type=group devel\n" - -msgid "" -"\n" -" Add a condition to the rule:\n" -" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-" -"regex=^web[1-9]+\\.example\\.com webservers\n" -" ipa automember-add-condition --key=manager --type=group --inclusive-" -"regex=^uid=mscott devel\n" -msgstr "" -"\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" - -msgid "" -"\n" -" Add an exclusive condition to the rule to prevent auto assignment:\n" -" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-" -"regex=^web5\\.example\\.com webservers\n" -msgstr "" -"\n" -" Ajouter une condition d'exclusion à la règle pour empêcher l'auto-" -"assignation :\n" -" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-" -"regex=^web5\\.example\\.com webservers\n" - -msgid "" -"\n" -" Add a host:\n" -" ipa host-add web1.example.com\n" -msgstr "" -"\n" -" Ajouter un hôte :\n" -" ipa host-add web1.example.com\n" - -msgid "" -"\n" -" Add a user:\n" -" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" -msgstr "" -"\n" -" Ajouter un utilisateur :\n" -" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" - -msgid "" -"\n" -" Verify automembership:\n" -" ipa hostgroup-show webservers\n" -" Host-group: webservers\n" -" Description: Web Servers\n" -" Member hosts: web1.example.com\n" -"\n" -" ipa group-show devel\n" -" Group name: devel\n" -" Description: Developers\n" -" GID: 1004200000\n" -" Member users: tuser\n" -msgstr "" -"\n" -" Vérifier une adhésion automatique :\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" - -msgid "" -"\n" -" Remove a condition from the rule:\n" -" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-" -"regex=^web[1-9]+\\.example\\.com webservers\n" -msgstr "" -"\n" -" Supprimer une condition de la règle :\n" -" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-" -"regex=^web[1-9]+\\.example\\.com webservers\n" - -msgid "" -"\n" -" Modify the automember rule:\n" -" ipa automember-mod\n" -msgstr "" -"\n" -" Modifier la règle d'adhésion automatique :\n" -" ipa automember-mod\n" - -msgid "" -"\n" -" Set the default (fallback) target group:\n" -" ipa automember-default-group-set --default-group=webservers --" -"type=hostgroup\n" -" ipa automember-default-group-set --default-group=ipausers --type=group\n" -msgstr "" -"\n" -" Définir le groupe cible par défaut (recours) :\n" -" ipa automember-default-group-set --default-group=webservers --" -"type=hostgroup\n" -" ipa automember-default-group-set --default-group=ipausers --type=group\n" - -msgid "" -"\n" -" Remove the default (fallback) target group:\n" -" ipa automember-default-group-remove --type=hostgroup\n" -" ipa automember-default-group-remove --type=group\n" -msgstr "" -"\n" -" Supprimer le groupe cible par défaut (repli) ::\n" -" ipa automember-default-group-remove --type=hostgroup\n" -" ipa automember-default-group-remove --type=group\n" - -msgid "" -"\n" -" Show the default (fallback) target group:\n" -" ipa automember-default-group-show --type=hostgroup\n" -" ipa automember-default-group-show --type=group\n" -msgstr "" -"\n" -" Afficher le groupe cible par défaut (repki) :\n" -" ipa automember-default-group-show --type=hostgroup\n" -" ipa automember-default-group-show --type=group\n" - -msgid "" -"\n" -" Find all of the automember rules:\n" -" ipa automember-find\n" -msgstr "" -"\n" -" Retrouver toutes les règles d'adhésion automatique :\n" -" ipa automember-find\n" - -msgid "" -"\n" -" Display a automember rule:\n" -" ipa automember-show --type=hostgroup webservers\n" -" ipa automember-show --type=group devel\n" -msgstr "" -"\n" -" Afficher une règle d'adhésion automatique :\n" -" ipa automember-show --type=hostgroup webservers\n" -" ipa automember-show --type=group devel\n" - -msgid "" -"\n" -" Delete an automember rule:\n" -" ipa automember-del --type=hostgroup webservers\n" -" ipa automember-del --type=group devel\n" -msgstr "" -"\n" -" Supprimer une règle d'adhésion automatique :\n" -" ipa automember-del --type=hostgroup webservers\n" -" ipa automember-del --type=group devel\n" - -msgid "" -"\n" -" Rebuild membership for all users:\n" -" ipa automember-rebuild --type=group\n" -msgstr "" -"\n" -" Reconstruire l'appartenance de tous les utilisateurs :\n" -" ipa automember-rebuild --type=group\n" - -msgid "" -"\n" -" Rebuild membership for all hosts:\n" -" ipa automember-rebuild --type=hostgroup\n" -msgstr "" -"\n" -" Reconstruire l'appartenance de tous les hôtes :\n" -" ipa automember-rebuild --type=hostgroup\n" - -msgid "" -"\n" -" Rebuild membership for specified users:\n" -" ipa automember-rebuild --users=tuser1 --users=tuser2\n" -msgstr "" -"\n" -" Reconstruire l'appartenance d'utilisateurs donnés :\n" -" ipa automember-rebuild --users=tuser1 --users=tuser2\n" - -msgid "" -"\n" -" Rebuild membership for specified hosts:\n" -" ipa automember-rebuild --hosts=web1.example.com --hosts=web2.example." -"com\n" -msgstr "" -"\n" -" Reconstruire l'appartenance d'hôtes donnés :\n" -" ipa automember-rebuild --hosts=web1.example.com --hosts=web2.example." -"com\n" - -msgid "Auto Membership Rule" -msgstr "Règle d'appartenance automatique" - #, python-format -msgid "%(otype)s \"%(oname)s\" not found" -msgstr "« %(oname)s » de « %(otype)s » introuvable" +msgid "" +" Alternatively, following servers are capable of running this command: " +"%(masters)s" +msgstr "" +" De manière alternative, les serveurs suivants sont capables d'exécuter " +"cette commande : %(masters)s" -#, python-format -msgid "%s is not a valid attribute." -msgstr "%s n'est pas un attribut valide." +msgid "AD Trust setup" +msgstr "Configuration de la confiance AD" msgid "" -"\n" -" Add an automember rule.\n" -" " +"Cannot perform the selected command without Samba 4 support installed. Make " +"sure you have installed server-trust-ad sub-package of IPA." msgstr "" -"\n" -" Ajouter une règle d'auto-adhésion.\n" -" " - -#, python-format -msgid "Added automember rule \"%(value)s\"" -msgstr "Règle d'auto-adhésion « %(value)s » ajoutée" - -msgid "Auto Membership is not configured" -msgstr "L'auto-adhésion n'est pas configurée" +"Impossible d'effectuer la commande sélectionnée sans installation de " +"Samba 4. Assurez-vous de bien avoir installé sur le serveur le paquet IPA " +"« server-trust-ad »." msgid "" -"\n" -" Add conditions to an automember rule.\n" -" " +"Cannot perform the selected command without Samba 4 instance configured on " +"this machine. Make sure you have run ipa-adtrust-install on this server." msgstr "" -"\n" -" Ajouter des conditions à une règle d'auto-adhésion.\n" -" " - -#, python-format -msgid "Added condition(s) to \"%(value)s\"" -msgstr "Condition(s) ajoutées à « %(value)s »" - -#, python-format -msgid "Auto member rule: %s not found!" -msgstr "Règle d'auto-adhésion : %s introuvable !" +"Impossible d'effectuer la commande sélectionnée sans configuration de Samba " +"4. Assurez-vous de bien avoir configuré ce serveur avec la commande « ipa-" +"adtrust-install »." msgid "" -"\n" -" Override this so we can add completed and failed to the return " -"result.\n" -" " +"Fetching domains from trusted forest failed. See details in the error_log" msgstr "" -"\n" -" Surcharger ceci afin de pouvoir ajouter réussites et échecs aux\n" -" résultats renvoyés.\n" -" " +"Échec de la récupération des domaines depuis la forêt approuvée. Voir les " +"informations détaillées dans le journal d'erreur." -msgid "" -"\n" -" Remove conditions from an automember rule.\n" -" " -msgstr "" -"\n" -" Supprimer des conditions d'une règle d'auto-adhésion.\n" -" " +msgid "trust" +msgstr "confiance" -#, python-format -msgid "Removed condition(s) from \"%(value)s\"" -msgstr "Conditions supprimées de « %(value)s »" +msgid "trusts" +msgstr "confiances" -msgid "" -"\n" -" Override this so we can set completed and failed.\n" -" " -msgstr "" -"\n" -" Surcharger ceci afin de pouvoir définir réussites et échecs.\n" -" " +msgid "Trust" +msgstr "Confiance" -msgid "" -"\n" -" Modify an automember rule.\n" -" " -msgstr "" -"\n" -" Modifier une règle d'auto-adhésion.\n" -" " - -#, python-format -msgid "Modified automember rule \"%(value)s\"" -msgstr "Règle d'auto-adhésion « %(value)s » modifiée" - -msgid "" -"\n" -" Delete an automember rule.\n" -" " -msgstr "" -"\n" -" Supprimer une règle d'auto-adhésion.\n" -" " - -#, python-format -msgid "Deleted automember rule \"%(value)s\"" -msgstr "Règle d'auto-adhésion « %(value)s » supprimée" - -msgid "" -"\n" -" Search for automember rules.\n" -" " -msgstr "" -"\n" -" Rechercher des règles d'auto-adhésion.\n" -" " - -#, 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" - -msgid "" -"\n" -" Display information about an automember rule.\n" -" " -msgstr "" -"\n" -" Afficher des informations au sujet d'une règle d'auto-adhésion.\n" -" " - -msgid "" -"\n" -" Set default (fallback) group for all unmatched entries.\n" -" " -msgstr "" -"\n" -" Définit un groupe par défaut (repli) pour toutes les entrées sans " -"correspondance.\n" -" " - -#, python-format -msgid "Set default (fallback) group for automember \"%(value)s\"" -msgstr "" -"Définir le groupe « %(value)s » par défaut (repli) pour l'auto-adhésion" - -msgid "" -"\n" -" Remove default (fallback) group for all unmatched entries.\n" -" " -msgstr "" -"\n" -" Supprimer le groupe par défaut (repli) pour toute entrée sans " -"correspondance.\n" -" " - -#, python-format -msgid "Removed default (fallback) group for automember \"%(value)s\"" -msgstr "Groupe « %(value)s » par défaut (repli) supprimé pour l'auto-adhésion" - -msgid "No default (fallback) group set" -msgstr "Pas de groupe par défaut (repli) défini" - -msgid "" -"\n" -" Display information about the default (fallback) automember groups.\n" -" " -msgstr "" -"\n" -" Afficher des informations pour les groupes d'auto-adhésion par défaut " -"(repli).\n" -" " - -msgid "Task DN" -msgstr "DN de la tâche" - -msgid "DN of the started task" -msgstr "DN de la tâche lancée" - -msgid "at least one of options: type, users, hosts must be specified" -msgstr "" -"au moins une des options « type », « users » ou « hosts » doit être indiquée" - -msgid "users and hosts cannot both be set" -msgstr "impossible de définir à la fois des utilisateurs et des hôtes" - -msgid "hosts cannot be set when type is 'group'" -msgstr "des hôtes ne peuvent pas être définis quand le type est « group »" - -msgid "users cannot be set when type is 'hostgroup'" -msgstr "impossible de définir des utilisateurs quand le type est « hostgroup »" - -msgid "Automember rebuild membership task started" -msgstr "" -"Tâche de reconstruction de l'appartenance avec adhésion automatique démarrée" - -#, python-format -msgid "Task DN = '%s'" -msgstr "DN de la tâche = « %s »" - -msgid "" -"\n" -"Topology\n" -"\n" -"Management of a replication topology at domain level 1.\n" -msgstr "" -"\n" -"Topologie\n" -"\n" -"Gestion de la topologie de réplication.\n" - -msgid "" -"\n" -"IPA server's data is stored in LDAP server in two suffixes:\n" -"* domain suffix, e.g., 'dc=example,dc=com', contains all domain related " -"data\n" -"* ca suffix, 'o=ipaca', is present only on server with CA installed. It\n" -" contains data for Certificate Server component\n" -msgstr "" -"\n" -"Les données des serveurs IPA sont enregistrées dans le serveur LDAP\n" -"sous deux suffixes :\n" -"* le suffixe de domain, par exemple « dc=example,dc=com », qui contient " -"toutes\n" -" les informations relatives au domaine ;\n" -"* le suffixe ca, « o=ipaca », qui n'est présent que sur les serveurs où " -"l'autorité de certification\n" -" est installée. Il contient les données nécessaire au composant " -"Certificate Server\n" - -msgid "" -"\n" -"Data stored on IPA servers is replicated to other IPA servers. The way it " -"is\n" -"replicated is defined by replication agreements. Replication agreements " -"needs\n" -"to be set for both suffixes separately. On domain level 0 they are managed\n" -"using ipa-replica-manage and ipa-csreplica-manage tools. With domain level " -"1\n" -"they are managed centrally using `ipa topology*` commands.\n" -msgstr "" -"\n" -"Les données enregistrées dans les serveurs IPA sont répliquées vers les " -"autres\n" -"serveurs IPA. Les agréments de réplication définissent la manière dont la \n" -"réplication s'opère. Les agréments de réplication doivent être définis " -"pour \n" -"les deux suffixes de manière séparée. Sur les domaines de niveau 0, ils " -"sont\n" -"gérés par les outils ipa-replica-manage et ipa-csreplica-manage tools. Sur \n" -"les domaines de niveau 1, ils sont gérés de manière centralisée par les " -"commandes\n" -"« ipa topology* ».\n" - -msgid "" -"\n" -"Agreements are represented by topology segments. By default topology " -"segment\n" -"represents 2 replication agreements - one for each direction, e.g., A to B " -"and\n" -"B to A. Creation of unidirectional segments is not allowed.\n" -msgstr "" -"\n" -"Les agréments sont représentés par des segments de topologie. Un segment de " -"topologie\n" -"représente par défaut deux agréments de réplication, un pour chaque " -"direction, par exemple\n" -"de A vers B et de B vers A. La création de segments unidirectionnels n'est " -"pas permise.\n" - -msgid "" -"\n" -"To verify that no server is disconnected in the topology of the given " -"suffix,\n" -"use:\n" -" ipa topologysuffix-verify $suffix\n" -msgstr "" -"\n" -"Afin de vérifier qu'aucun serveur n'est déconnecté dans la topologie d'un\n" -"suffixe donné, utiliser :\n" -" ipa topologysuffix-verify $suffix\n" - -msgid "" -"\n" -"\n" -"Examples:\n" -" Find all IPA servers:\n" -" ipa server-find\n" -msgstr "" -"\n" -"\n" -"Exemples :\n" -" Trouver tous les serveurs :\n" -" ipa server-find\n" - -msgid "" -"\n" -" Find all suffixes:\n" -" ipa topologysuffix-find\n" -msgstr "" -"\n" -" Trouver tous les suffixes :\n" -" ipa topologysuffix-find\n" - -msgid "" -"\n" -" Add topology segment to 'domain' suffix:\n" -" ipa topologysegment-add domain --left IPA_SERVER_A --right IPA_SERVER_B\n" -msgstr "" -"\n" -" Ajouter un segment de topologie au suffixe du domaine :\n" -" ipa topologysegment-add domain --left IPA_SERVER_A --right IPA_SERVER_B\n" - -msgid "" -"\n" -" Add topology segment to 'ca' suffix:\n" -" ipa topologysegment-add ca --left IPA_SERVER_A --right IPA_SERVER_B\n" -msgstr "" -"\n" -" Ajouter un segment de topologie au suffixe « ca » :\n" -" ipa topologysegment-add ca --left IPA_SERVER_A --right IPA_SERVER_B\n" - -msgid "" -"\n" -" List all topology segments in 'domain' suffix:\n" -" ipa topologysegment-find domain\n" -msgstr "" -"\n" -" Énumérer tous les segments de topologie dans le suffixe du domaine :\n" -" ipa topologysegment-find domain\n" - -msgid "" -"\n" -" List all topology segments in 'ca' suffix:\n" -" ipa topologysegment-find ca\n" -msgstr "" -"\n" -" Énumérer tous les segments de topologie dans le suffixe « ca » :\n" -" ipa topologysegment-find ca\n" - -msgid "" -"\n" -" Delete topology segment in 'domain' suffix:\n" -" ipa topologysegment-del domain segment_name\n" -msgstr "" -"\n" -" Supprimer un segment de topologie du suffixe du domaine :\n" -" ipa topologysegment-del domain segment_name\n" - -msgid "" -"\n" -" Delete topology segment in 'ca' suffix:\n" -" ipa topologysegment-del ca segment_name\n" -msgstr "" -"\n" -" Supprimer un segment de topologie du suffixe « ca » :\n" -" ipa topologysegment-del ca segment_name\n" - -msgid "" -"\n" -" Verify topology of 'domain' suffix:\n" -" ipa topologysuffix-verify domain\n" -msgstr "" -"\n" -" Vérification de la topologie du suffixe du domaine :\n" -" ipa topologysuffix-verify domain\n" - -msgid "" -"\n" -" Verify topology of 'ca' suffix:\n" -" ipa topologysuffix-verify ca\n" -msgstr "" -"\n" -" Vérification de la topologie du suffixe « ca » :\n" -" ipa topologysuffix-verify ca\n" +msgid "UPN suffixes" +msgstr "Suffixes UPN" #, python-brace-format -msgid "Topology management requires minimum domain level {0} " -msgstr "La gestion de la topologie nécessite le niveau de domaine minimal {0}" - -msgid "segment" -msgstr "segment" - -msgid "segments" -msgstr "segments" - -msgid "Topology Segments" -msgstr "Segments de topologie" - -msgid "Topology Segment" -msgstr "Segment de topologie" - -#, python-format -msgid "left node is not a topology node: %(leftnode)s" -msgstr "le nœud de gauche n'est pas un nœud de la topologie : %(leftnode)s" - -#, python-format -msgid "right node is not a topology node: %(rightnode)s" -msgstr "le nœud de droite n'est pas un nœud de la topologie : %(rightnode)s" - -msgid "left node and right node must not be the same" -msgstr "les nœuds de gauche et de droite ne peuvent être identiques" - -#, python-format -msgid "%(count)d segment matched" -msgid_plural "%(count)d segments matched" -msgstr[0] "%(count)d segment correspondant" -msgstr[1] "%(count)d segment correspondants" - -#, python-format -msgid "Added segment \"%(value)s\"" -msgstr "Segment « %(value)s » ajouté" - -#, python-format -msgid "Deleted segment \"%(value)s\"" -msgstr "Segment « %(value)s » supprimé" - -#, python-format -msgid "Modified segment \"%(value)s\"" -msgstr "Segment « %(value)s » modifié" - -#, python-format -msgid "%(value)s" -msgstr "%(value)s" - -msgid "left or right node has to be specified" -msgstr "le nœud de gauche ou de droite doit être indiqué" - -msgid "only one node can be specified" -msgstr "seul un nœud peut être indiqué" - -#, python-format -msgid "Replication refresh for segment: \"%(pkey)s\" requested." +msgid "Type of trusted domain ID range, one of {vals}" msgstr "" -"Raffraichissement demandé pour la réplication via le segment « %(pkey)s »." +"Type de plage d'ID de domaine approuvé, une valeur à prendre parmi {vals}" -#, python-format -msgid "Stopping of replication refresh for segment: \"%(pkey)s\" requested." -msgstr "" -"Arrêt du raffraichissement demandé pour la réplication via le segment « " -"%(pkey)s »." - -msgid "suffixes" -msgstr "suffixes" - -msgid "Topology suffixes" -msgstr "Suffixes de topologie" - -msgid "Topology suffix" -msgstr "Suffixe de topologie" - -#, python-format -msgid "%(count)d topology suffix matched" -msgid_plural "%(count)d topology suffixes matched" -msgstr[0] "%(count)d suffixe de topologie correspondant" -msgstr[1] "%(count)d suffixes de topologie correspondants" - -#, python-format -msgid "Deleted topology suffix \"%(value)s\"" -msgstr "Suffixe de topologie « %(value)s » supprimé" - -#, python-format -msgid "Added topology suffix \"%(value)s\"" -msgstr "Suffixe de topologie « %(value)s » ajouté" - -#, python-format -msgid "Modified topology suffix \"%(value)s\"" -msgstr "Suffixe de topologie « %(value)s » modifié" +msgid "External trust" +msgstr "Relation d'approbation externe" msgid "" -"\n" -"Verify replication topology for suffix.\n" -"\n" -"Checks done:\n" -" 1. check if a topology is not disconnected. In other words if there are\n" -" replication paths between all servers.\n" -" 2. check if servers don't have more than the recommended number of\n" -" replication agreements\n" +"Establish external trust to a domain in another forest. The trust is not " +"transitive beyond the domain." msgstr "" -"\n" -"Vérifier la topologie de réplication pour le suffixe.\n" -"\n" -"Vérifications effectuées :\n" -" 1. vérfier si la topologie n'est pas déconnectée. En d'autres mots, si des " -"chemins\n" -" de réplication existent bien entre tous les serveurs.\n" -" 2. vérifier si tous les serveurs n'ont pas un nombre supérieur à celui " -"recommandé\n" -" d'agrément de réplication.\n" +"Établit une relation d'approbation externe vers un domaine dans une autre " +"forêt. La relation n'est pas transitive au delà du domaine." + +#, python-format +msgid "Added Active Directory trust for realm \"%(value)s\"" +msgstr "Confiance Active Directory ajoutée pour le royaume « %(value)s »" + +#, python-format +msgid "Re-established trust to domain \"%(value)s\"" +msgstr "Rétablissement de la confiance pour le domaine « %(value)s »" + +msgid "missing base_id" +msgstr "« base_id » manquant" + +msgid "pysss_murmur is not available on the server and no base-id is given." +msgstr "" +"« pysss_murmur » non disponible sur le serveur et aucun « base-id » fourni." + +msgid "trust type" +msgstr "type de confiance" + +msgid "only \"ad\" is supported" +msgstr "seul « ad » est pris en charge" 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" +"Cannot establish a trust to AD deployed in the same domain as IPA. Such " +"setup is not supported." msgstr "" -"\n" -"Commandes sudo\n" -"\n" -"Commandes utilisées en tant que briques de base pour sudo\n" -"\n" -"EXEMPLES :\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" +"Impossible d'établir une relation d'approbation vers un AD déployé dans le " +"même domaine que IPA. Une telle configuration ne peut être prise en charge." -msgid "sudo command" -msgstr "commande sudo" +msgid "Realm-domain mismatch" +msgstr "Incohérence domaine-royaume" -msgid "sudo commands" -msgstr "commandes sudo" +msgid "" +"To establish trust with Active Directory, the domain name and the realm name " +"of the IPA server must match" +msgstr "" +"Pour établir la confiance avec Active Directory, le nom de domaine et le nom " +"de royaume du serveur IPA doivent correspondre" -msgid "Sudo Commands" -msgstr "Commandes sudo" - -#, python-format -msgid "Added Sudo Command \"%(value)s\"" -msgstr "Commande sudo « %(value)s » ajoutée" - -#, python-format -msgid "Deleted Sudo Command \"%(value)s\"" -msgstr "Commande sudo « %(value)s » supprimée" - -#, python-format -msgid "Modified Sudo Command \"%(value)s\"" -msgstr "Commande sudo « %(value)s » modifiée" - -#, python-format -msgid "%(count)d Sudo Command matched" -msgid_plural "%(count)d Sudo Commands matched" -msgstr[0] "%(count)d commande sudo correspondant" -msgstr[1] "%(count)d commandes sudo correspondant" - -msgid "automount location" -msgstr "emplacement de montage automatique" - -msgid "automount locations" -msgstr "emplacements de montage automatique" - -msgid "Automount Locations" -msgstr "Emplacements de montage automatique" - -msgid "Automount Location" -msgstr "Emplacement de montage automatique" - -#, python-format -msgid "Added automount location \"%(value)s\"" -msgstr "Emplacement « automount » « %(value)s » ajouté" - -#, python-format -msgid "Deleted automount location \"%(value)s\"" -msgstr "Emplacement « automount » « %(value)s » supprimé" - -#, python-format -msgid "%(count)d automount location matched" -msgid_plural "%(count)d automount locations matched" -msgstr[0] "%(count)d emplacement « automount » correspondant" -msgstr[1] "%(count)d emplacements « automount » correspondants" - -msgid "automount map" -msgstr "carte « automount »" - -msgid "automount maps" -msgstr "cartes « automount »" - -msgid "Automount Maps" -msgstr "Cartes « automount »" - -msgid "Automount Map" -msgstr "Carte « automount »" - -#, python-format -msgid "Added automount map \"%(value)s\"" -msgstr "Carte « automount » « %(value)s » ajoutée" - -#, python-format -msgid "Deleted automount map \"%(value)s\"" -msgstr "Carte « automount » « %(value)s » supprimée" - -#, python-format -msgid "Modified automount map \"%(value)s\"" -msgstr "Carte « automount » « %(value)s » modifiée" - -#, python-format -msgid "%(count)d automount map matched" -msgid_plural "%(count)d automount maps matched" -msgstr[0] "%(count)d carte « automount » correspondante" -msgstr[1] "%(count)d cartes « automount » correspondantes" - -msgid "Automount key object." -msgstr "Objet clé « automount »." - -msgid "automount key" -msgstr "clé « automount »" - -msgid "automount keys" -msgstr "clés « automount »" - -msgid "Automount Keys" -msgstr "Clés « automount »" - -msgid "Automount Key" -msgstr "Clé « automount »" +msgid "" +"Cannot perform join operation without own domain configured. Make sure you " +"have run ipa-adtrust-install on the IPA server first" +msgstr "" +"Impossible de rejoindre un domaine sans avoir au préalable configuré son " +"propre domaine. Assurez-vous d'avoir lancé « ipa-adtrust-install » au " +"préalable sur le serveur" #, python-format msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +"Trusted domain %(domain)s is included among IPA realm domains. It needs to " +"be removed prior to establishing the trust. See the \"ipa realmdomains-mod --" +"del-domain\" command." msgstr "" -"La paire « key/info » doit être unique. Une clé nommée %(key)s avec l'info" -"%(info)s existe déjà." +"Le domaine approuvé %(domain)s est inclus parmi les royaumes de domaines " +"IPA. Il doit être retiré de manière préalable à l'établissement de la " +"relation d'approbation. Cf. la commande « ipa realmdomains-mod --del-" +"domain »." -#, python-format -msgid "key named %(key)s already exists" -msgstr "la clé nommée %(key)s existe déjà" - -#, python-format -msgid "The automount key %(key)s with info %(info)s does not exist" -msgstr "La clé « automount » %(key)s avec l'info %(info)s n'existe pas" - -#, python-format -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +msgid "Trusted domain and administrator account use different realms" msgstr "" -"Plus d'une entrée avec la clé %(key)s trouvée, utilisez --info pour " -"sélectionner l'entrée donnée." +"Le domaine approuvé et le compte administrateur utilisent des domaines " +"différents" -#, python-format -msgid "Added automount key \"%(value)s\"" -msgstr "Clé « automount » « %(value)s » créée" +msgid "Realm administrator password should be specified" +msgstr "Le mot de passe de l'administrateur du domaine doit être indiqué" -#, python-format -msgid "Added automount indirect map \"%(value)s\"" -msgstr "Carte « automount » indirect « %(value)s » créée" - -msgid "mount point is relative to parent map, cannot begin with /" -msgstr "" -"point de montage relatif à la carte parente, ne peut pas commencer par /" - -#, python-format -msgid "Deleted automount key \"%(value)s\"" -msgstr "Clé « automount » « %(value)s » supprimée" - -#, python-format -msgid "Modified automount key \"%(value)s\"" -msgstr "Clé « automount » « %(value)s » modifiée" - -#, python-format -msgid "%(count)d automount key matched" -msgid_plural "%(count)d automount keys matched" -msgstr[0] "%(count)d clé « automount » correspondante" -msgstr[1] "%(count)d clés « automount » correspondantes" - -msgid "CA ACL" -msgstr "LCA de l'AC" - -msgid "CA ACLs" -msgstr "LCA de l'AC" - -msgid "CA category" -msgstr "Catégorie d'AC" - -msgid "CA category the ACL applies to" -msgstr "Catégorie d'AC à laquelle l'ACL s'applique" - -msgid "CAs" -msgstr "AC" - -#, python-format -msgid "Added CA ACL \"%(value)s\"" -msgstr "LCA d'AC « %(value)s » créée" - -#, python-format -msgid "Deleted CA ACL \"%(value)s\"" -msgstr "LCA d'AC « %(value)s » supprimée" - -msgid "default CA ACL can be only disabled" -msgstr "La LCA d'AC par défaut ne peut qu'être désactivée" - -#, python-format -msgid "Modified CA ACL \"%(value)s\"" -msgstr "LCA d'AC « %(value)s » modifiée" - -msgid "CA category cannot be set to 'all' while there are allowed CAs" -msgstr "" -"une catégorie d'AC ne peut pas être définie à « all » tant qu'il reste des " -"AC autorisées" +msgid "id range type" +msgstr "type de plage d'id" msgid "" -"profile category cannot be set to 'all' while there are allowed profiles" +"Only the ipa-ad-trust and ipa-ad-trust-posix are allowed values for --range-" +"type when adding an AD trust." msgstr "" -"la catégorie de profil ne peut être positionnée à 'all' tant qu'il existe " -"des profils autorisés" +"Seules les valeurs « ipa-ad-trust » et « ipa-ad-trust-posix » sont " +"autorisées pour « --range-type » lors de l'ajout d'une relation de confiance " +"AD." -msgid "user category cannot be set to 'all' while there are allowed users" -msgstr "" -"une catégorie d'utilisateurs ne peut pas être définie à « all » tant qu'il " -"reste des utilisateurs autorisés" - -msgid "host category cannot be set to 'all' while there are allowed hosts" -msgstr "" -"une catégorie d'hôtes ne peut pas être définie à « all » tant qu'il reste " -"des hôtes autorisés" +msgid "id range" +msgstr "plage id" msgid "" -"service category cannot be set to 'all' while there are allowed services" +"An id range already exists for this trust. You should either delete the old " +"range, or exclude --base-id/--range-size options from the command." msgstr "" -"une catégorie de services ne peut pas être définie à « all » tant qu'il " -"reste des services autorisés" +"Une plage d'identifiants existe déjà pour cette relation de confiance. Vous " +"devez soit supprimer l'ancienne plage, soit exclure les options « --base-" +"id » ou « --range-size » de la commande." -#, python-format -msgid "%(count)d CA ACL matched" -msgid_plural "%(count)d CA ACLs matched" -msgstr[0] "%(count)d LCA d'AC correspondante" -msgstr[1] "%(count)d LCA d'AC correspondantes" +msgid "range exists" +msgstr "la plage existe" -#, python-format -msgid "Enabled CA ACL \"%(value)s\"" -msgstr "LCA d'AC « %(value)s » activée" - -#, python-format -msgid "Disabled CA ACL \"%(value)s\"" -msgstr "LCA d'AC « %(value)s » désactivée" - -#, python-format -msgid "%i user or group added." -msgstr "%i utilisateur ou groupe ajouté." - -#, python-format -msgid "%i users or groups added." -msgstr "%i utilisateurs ou groupes ajoutés." - -#, python-format -msgid "%i user or group removed." -msgstr "%i utilisateur ou groupe supprimé." - -#, python-format -msgid "%i users or groups removed." -msgstr "%i utilisateurs ou groupes supprimés." - -#, python-format -msgid "%i host or hostgroup added." -msgstr "%i hôte ou groupe d'hôtes ajouté." - -#, python-format -msgid "%i hosts or hostgroups added." -msgstr "%i hôtes ou groupes d'hôtes ajoutés." - -#, python-format -msgid "%i host or hostgroup removed." -msgstr "%i hôte ou groupe d'hôtes supprimé." - -#, python-format -msgid "%i hosts or hostgroups removed." -msgstr "%i hôtes ou groupes d'hôtes supprimés." - -#, python-format -msgid "%i service added." -msgstr "%i service ajouté." - -#, python-format -msgid "%i services added." -msgstr "%i services ajoutés." - -msgid "services cannot be added when service category='all'" +msgid "" +"ID range with the same name but different domain SID already exists. The ID " +"range for the new trusted domain must be created manually." msgstr "" -"aucun service ne peut être ajouté quand la catégorie de services est « all »" +"Une plage d'ID avec le même nom, mais pour un SID de domaine différent " +"existe déjà. La plage d'ID pour le nouveau domaine approuvé doit être créée " +"manuellement." -#, python-format -msgid "%i service removed." -msgstr "%i service supprimé." +msgid "range type change" +msgstr "modifier le type de plage" -#, python-format -msgid "%i services removed." -msgstr "%i services supprimés." - -#, python-format -msgid "%i profile added." -msgstr "%i profil ajouté." - -#, python-format -msgid "%i profiles added." -msgstr "%i profils ajoutés." - -msgid "profiles cannot be added when profile category='all'" +msgid "" +"ID range for the trusted domain already exists, but it has a different type. " +"Please remove the old range manually, or do not enforce type via --range-" +"type option." msgstr "" -"des profils ne peuvent pas être ajoutés quand la catégorie de profil est " -"« all »" +"La plage ID existe déjà pour ce domaine approuvé, mais est d'un type " +"différent. Vous devez soit supprimer l'ancienne plage manuellement, soit ne " +"pas forcer le type via l'option « --range-type »." -#, python-format -msgid "%i profile removed." -msgstr "%i profil supprimé." - -#, python-format -msgid "%i profiles removed." -msgstr "%i profils supprimés." - -msgid "Add CAs to a CA ACL." -msgstr "Ajouter des AC à une LCA d'AC" - -#, python-format -msgid "%i CA added." -msgstr "%i AC ajoutée." - -#, python-format -msgid "%i CAs added." -msgstr "%i AC ajoutées." - -msgid "CAs cannot be added when CA category='all'" +msgid "" +"Forward policy is defined for it in IPA DNS, perhaps forwarder points to " +"incorrect host?" msgstr "" -"des AC ne peuvent pas être ajoutées quand la catégorie de l'AC est « all »" +"La politique de redirection est définie pour lui dans le DNS d'IPA, peut-" +"être le redirecteur pointe-t'il vers un hôte incorrect ?" -msgid "Remove CAs from a CA ACL." -msgstr "Supprimer des AC d'une LCA d'AC" +msgid "Unable to verify write permissions to the AD" +msgstr "Impossible de vérifier les permissions en écriture vers AD" + +msgid "Not enough arguments specified to perform trust setup" +msgstr "Arguments insuffisants pour établir la relation de confiance" #, python-format -msgid "%i CA removed." -msgstr "%i AC supprimée." - -#, python-format -msgid "%i CAs removed." -msgstr "%i AC supprimées." - -msgid "delegation" -msgstr "délégation" - -msgid "delegations" -msgstr "délégations" - -msgid "Delegations" -msgstr "Délégations" - -msgid "Delegation" -msgstr "Délégation" - -#, python-format -msgid "Added delegation \"%(value)s\"" -msgstr "Délégation « %(value)s » ajoutée" - -#, python-format -msgid "Deleted delegation \"%(value)s\"" -msgstr "Délégation « %(value)s » supprimée" - -#, python-format -msgid "Modified delegation \"%(value)s\"" -msgstr "Délégation « %(value)s » modifiée" - -#, 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" - -#, 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 est déjà utilisé par " -"%(gname)s)" - -msgid "password policy" -msgstr "politique de mots de passe" - -msgid "password policies" -msgstr "politiques de mot de passe" - -msgid "Password Policies" -msgstr "Politiques de mot de passe" - -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." - -msgid "cannot delete global password policy" -msgstr "impossible de supprimer une politique de mot de passe globale" - -msgid "priority cannot be set on global policy" -msgstr "la priorité ne peut être définie sur la politique globale" - -msgid "operation not defined" -msgstr "opération non définie" - -#, python-format -msgid "not allowed to perform operation: %s" -msgstr "non autorisé à effectuer l'opération : %s" - -msgid "No such virtual command" -msgstr "Commande virtuelle inconnue" - -#, python-format -msgid "Added user \"%(value)s\"" -msgstr "Utilisateur « %(value)s » ajouté" - -msgid "Default group for new users is not POSIX" -msgstr "Le groupe par défaut des nouveaux utilisateurs n'est pas POSIX" - -#, python-format -msgid "Deleted user \"%(value)s\"" -msgstr "Utilisateur « %(value)s » supprimé" - -#, python-format -msgid "%s: user is already preserved" -msgstr "%s : l'utilisateur est déjà préservé" - -#, python-format -msgid "Modified user \"%(value)s\"" -msgstr "Utilisateur « %(value)s » modifié" - -#, python-format -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "%(count)d utilisateur correspondant" -msgstr[1] "%(count)d utilisateurs correspondant" - -#, python-format -msgid "Undeleted user account \"%(value)s\"" -msgstr "Compte utilisateur « %(value)s » restauré" - -#, python-format -msgid "user \"%s\" is already active" -msgstr "l'utilisateur « %s » est déjà actif" - -#, python-format -msgid "Staged user account \"%(value)s\"" -msgstr "Compte utilisateur en attente « %(value)s »" - -#, python-format -msgid "Disabled user account \"%(value)s\"" -msgstr "Compte utilisateur « %(value)s » désactivé" - -#, python-format -msgid "Enabled user account \"%(value)s\"" -msgstr "Compte utilisateur « %(value)s » activé" +msgid "Deleted trust \"%(value)s\"" +msgstr "Confiance « %(value)s » supprimée" msgid "" "\n" -" Unlock a user account\n" +" Modify a trust (for future use).\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." +" Currently only the default option to modify the LDAP attributes is\n" +" available. More specific options will be added in coming releases.\n" +" " msgstr "" "\n" -" Déverrouiller un compte utilisateur\n" +" Modifier la confiance (pour utilisation future).\n" "\n" -" Un compte utilisateur peut se verrouiller si le mot de passe n'est pas\n" -" saisi correctement plusieurs fois de suite dans un laps de temps donné\n" -" défini par la politique du mot de passe. Le verrouillage d'un compte " -"est\n" -" un état temporaire ; il peut être déverrouillé par un administrateur." +" Actuellement seule l'option par défaut pour modifier les attributs LDAP\n" +" est disponible. D'autres options particulières seront ajoutées\n" +" dans les versions à venir.\n" +" " #, python-format -msgid "Unlocked account \"%(value)s\"" -msgstr "Compte utilisateur « %(value)s » déverrouillé" +msgid "Modified trust \"%(value)s\" (change will be effective in 60 seconds)" +msgstr "" +"Relation de confiance « %(value)s » modifiée (la modification sera effective " +"dans 60 secondes)" -msgid "Failed logins" -msgstr "Connexions ayant échoué" +#, python-format +msgid "%(count)d trust matched" +msgid_plural "%(count)d trusts matched" +msgstr[0] "%(count)d confiance correspondante" +msgstr[1] "%(count)d confiances correspondantes" -msgid "Last successful authentication" -msgstr "Dernière authentification réussie" +msgid "trust configuration" +msgstr "configuration des relations d'approbation" -msgid "Last failed authentication" -msgstr "Dernière authentification ayant échoué" +msgid "Global Trust Configuration" +msgstr "Configuration globale des relations d'approbation" -msgid "Time now" -msgstr "Heure actuelle" +msgid "IPA AD trust agents" +msgstr "Agents IPA de relation d'approbation AD" + +msgid "IPA servers configured as AD trust agents" +msgstr "Serveurs IPA configurés comme agents de relation d'approbation AD" + +msgid "IPA AD trust controllers" +msgstr "Contrôleurs IPA de relation d'approbation AD" + +msgid "IPA servers configured as AD trust controllers" +msgstr "Serveurs IPA configurés comme contrôleurs de relation d'approbation AD" + +msgid "unsupported trust type" +msgstr "type de relation de confiance non pris en charge" + +#, python-format +msgid "Modified \"%(value)s\" trust configuration" +msgstr "Configuration de la relation de confiance « %(value)s » modifiée." + +msgid "SID" +msgstr "SID" + +msgid "sidgen_was_run" +msgstr "« sidgen_was_run »" msgid "" -"\n" -" Lockout status of a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked " -"by\n" -" an administrator.\n" -"\n" -" This connects to each IPA master and displays the lockout status on\n" -" each one.\n" -"\n" -" To determine whether an account is locked on a given server you need\n" -" to compare the number of failed logins and the time of the last " -"failure.\n" -" For an account to be locked it must exceed the maxfail failures within\n" -" the failinterval duration as specified in the password policy " -"associated\n" -" with the user.\n" -"\n" -" The failed login counter is modified only when a user attempts a log in\n" -" so it is possible that an account may appear locked but the last failed\n" -" login attempt is older than the lockouttime of the password policy. " -"This\n" -" means that the user may attempt a login again. " +"This command relies on the existence of the \"editors\" group, but this " +"group was not found." msgstr "" -"\n" -" État verrouillé d'un compte utilisateur\n" -"\n" -" Un compte peut être verrouillé si un mot de passe incorrect est entre à\n" -" plusieurs reprises dans un laps de temps donnée selon la politique de\n" -" contrôle des mots de passe. Le verrouillage du compte est un état\n" -" temporaire ; le compte peut être déverrouillé par un administrateur.\n" -"\n" -" Ce dernier se connecte sur l'IPA maître et affiche l'état du\n" -" verrouillage de chacun.\n" -"\n" -" Pour savoir si un compte est verrouillé sur un serveur donné, vous " -"devez\n" -" comparer le nombre d'échecs de connexion et l'heure du dernier échec.\n" -" Pour qu'un compte soit verrouillé, le nombre d'échecs doit dépasser le\n" -" maximum autorisé dans l'intervalle de temps donné tel que défini dans " -"la\n" -" politique de mot de passe propre à l'utilisateur.\n" -"\n" -" Le compteur d'échecs de connexion n'est incrémenté que lorsqu'un\n" -" utilisateur tente une connexion, il est donc possible qu'un compte\n" -" paraisse bloqué mais que la dernière tentative de connexion soit\n" -" antérieure à la durée de verrouillage de la règle. Cela\n" -" signifie que l'utilisateur peut tenter de se connecter à nouveau." +"Cette commande s'appuie sur l'existence du groupe « editors », mais ce " +"groupe n'a pas été trouvé." + +msgid "trust domain" +msgstr "domaine approuvé" + +msgid "trust domains" +msgstr "domaines approuvés" + +msgid "Trusted domains" +msgstr "domaines approuvés" + +msgid "Trusted domain" +msgstr "domaine approuvé" + +msgid "Domain enabled" +msgstr "Domaine activé" #, python-format -msgid "%(host)s failed: %(error)s" -msgstr "%(host)s en échec : %(error)s" +msgid "Removed information about the trusted domain \"%(value)s\"" +msgstr "Informations sur le domaine approuvé « %(value)s » supprimées" + +msgid "" +"cannot delete root domain of the trust, use trust-del to delete the trust " +"itself" +msgstr "" +"impossible de supprimer le domaine racine de la relation de confiance, " +"utiliser la commande « trust-del » pour supprimer la relation de confiance" + +msgid "" +"List of trust domains successfully refreshed. Use trustdomain-find command " +"to list them." +msgstr "" +"Liste des domaines approuvés rafraîchie avec succès. Utiliser la commande " +"« trustdomain-find » pour les énumérer." #, python-format -msgid "%(host)s failed" -msgstr "%(host)s en échec" +msgid "Enabled trust domain \"%(value)s\"" +msgstr "Activation du domaine approuvé « %(value)s »" + +msgid "Root domain of the trust is always enabled for the existing trust" +msgstr "" +"Le domaine racine de la relation de confiance est toujours activé pour la " +"confiance existante" #, python-format -msgid "Account disabled: %(disabled)s" -msgstr "Compte désactivé : %(disabled)s" +msgid "Disabled trust domain \"%(value)s\"" +msgstr "domaine approuvé « %(value)s » désactivé" + +msgid "" +"cannot disable root domain of the trust, use trust-del to delete the trust " +"itself" +msgstr "" +"impossible de désactiver le domaine racine de la relation de confiance, " +"utiliser la commande « trust-del » pour supprimer la relation de confiance " +"elle-même" #, python-format -msgid "Added certificates to user \"%(value)s\"" -msgstr "Certificats ajoutés à l'utilisateur « %(value)s »" +msgid "" +"Principal '%(principal)s' is not permitted to use CA '%(ca)s' with profile " +"'%(profile_id)s' for certificate issuance." +msgstr "" +"Le principal '%(principal)s' n'est pas autorisé à utiliser l'AC '%(ca)s' " +"avec le profil '%(profile_id)s' pour l'émission de certificat." + +msgid "Issuing CA" +msgstr "AC émettrice" + +msgid "Name of issuing CA" +msgstr "Nom de l'AC émettrice" + +msgid "Serial number (hex)" +msgstr "Numéro de série (hex)" + +msgid "Request status" +msgstr "État de la demande" + +msgid "No Common Name was found in subject of request." +msgstr "Aucun « Common Name » n'a été trouvé dans le sujet de cette demande." #, python-format -msgid "Removed certificates from user \"%(value)s\"" -msgstr "Certificats supprimés de l'utilisateur « %(value)s »" +msgid "" +"hostname in subject of request '%(cn)s' does not match principal hostname " +"'%(hostname)s'" +msgstr "" +"Le nom d'hôte indiqué dans le sujet de la demande « %(cn)s » ne correspond " +"pas au nom d'hôte du principal « %(hostname)s »" + +msgid "DN commonName does not match user's login" +msgstr "" +"Le « commonName » du DN ne correspond pas à l'identifiant de connexion de " +"l'utilisateur" + +msgid "DN emailAddress does not match any of user's email addresses" +msgstr "" +"L'adresse email du DN ne correspond à aucune des adresses email de " +"l'utilisateur" + +#, python-format +msgid "" +"Insufficient 'write' privilege to the 'userCertificate' attribute of entry " +"'%s'." +msgstr "" +"Privilège « write » insuffisant sur l'attribut « userCertificate » de " +"l'entrée « %s »." + +#, python-format +msgid "subject alt name type %s is forbidden for user principals" +msgstr "" +"Il est interdit d'utiliser un « subject alt name » (nom alternatif) de type " +"%s pour les principaux d'utilisateurs." + +#, python-format +msgid "" +"The service principal for subject alt name %s in certificate request does " +"not exist" +msgstr "" +"Le principal du service pour le nom %s alternatif du sujet dans la demande " +"de certificat n'existe pas" + +#, python-format +msgid "" +"Insufficient privilege to create a certificate with subject alt name '%s'." +msgstr "" +"Privilège insuffisant pour créer un certificat avec le nom de sujet « %s » " +"alternatif." + +#, python-format +msgid "Principal '%s' in subject alt name does not match requested principal" +msgstr "" +"Le principal « %s » du nom alternatif ne correspond pas au principal demandé" + +msgid "RFC822Name does not match any of user's email addresses" +msgstr "" +"L'attribut RFC822Name ne correspond à aucune des adresses email de " +"l'utilisateur" + +#, python-format +msgid "subject alt name type %s is forbidden for non-user principals" +msgstr "" +"Il est interdit d'utiliser un « subject alt name » (nom alternatif) de type " +"%s pour les principaux autres qu'utilisateurs." + +#, python-format +msgid "Subject alt name type %s is forbidden" +msgstr "Le type %s de nom alternatif de sujet est interdit" + +#, python-format +msgid "CA '%s' is disabled" +msgstr "L'autorité de certification « %s » est désactivée" + +msgid "Revoked" +msgstr "Révoqué" + +msgid "" +"Reason for revoking the certificate (0-10). Type \"ipa help cert\" for " +"revocation reason details. " +msgstr "" +"Raison de la révocation du certificat (1-10). Utilisez « ipa help cert » " +"pour plus d'informations sur les raisons de révocation." + +#, python-format +msgid "Owner %s" +msgstr "%s propriétaire" + +#, python-format +msgid "" +"Certificate with serial number %(serial)s issued by CA '%(ca)s' not found" +msgstr "" +"Certificat de l'AC « %(ca)s » avec le numéro de série %(serial)s introuvable" + +msgid "7 is not a valid revocation reason" +msgstr "7 n'est pas une raison de révocation valide" + +#, python-format +msgid "%(count)d certificate matched" +msgid_plural "%(count)d certificates matched" +msgstr[0] "%(count)d certificat correspondant" +msgstr[1] "%(count)d certificats correspondants" msgid "" "\n" @@ -15446,22 +16701,6 @@ msgid_plural "%(count)d groups matched" msgstr[0] "%(count)d groupe correspondant" msgstr[1] "%(count)d groupes correspondants" -msgid "" -"Cannot perform external member validation without Samba 4 support installed. " -"Make sure you have installed server-trust-ad sub-package of IPA on the server" -msgstr "" -"Impossible de réaliser la validation de membre externe sans installer " -"Samba 4. Assurez-vous d'avoir installé le sous-paquet « IPAserver-trust-ad » " -"sur le serveur" - -msgid "" -"Cannot perform join operation without own domain configured. Make sure you " -"have run ipa-adtrust-install on the IPA server first" -msgstr "" -"Impossible de rejoindre un domaine sans avoir au préalable configuré son " -"propre domaine. Assurez-vous d'avoir lancé « ipa-adtrust-install » au " -"préalable sur le serveur" - #, python-format msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "Groupe « %(value)s » détaché de l'utilisateur « %(value)s »" @@ -15475,931 +16714,61 @@ msgstr "modification des entrées de groupe interdite" msgid "Not a managed group" msgstr "Pas un groupe administré" -msgid "Realm domains" -msgstr "Domaines du royaume" - -#, python-format -msgid "" -"DNS zone for each realmdomain must contain SOA or NS records. No records " -"found for: %s" -msgstr "" -"La zone DNS de chaque domaine Kerberos doit contenir des enregistrements SOA " -"et NS. Aucun enregistrement trouvé pour : %s" - -#, python-format -msgid "The following domains do not belong to this realm: %(domains)s" -msgstr "" -"Les domaines suivants n'appartiennent pas à ce domaine Kerberos : %(domains)s" - -#, python-format -msgid "" -"The realm of the following domains could not be detected: %(domains)s. If " -"these are domains that belong to the this realm, please create a _kerberos " -"TXT record containing \"%(realm)s\" in each of them." -msgstr "" -"Le domaine Kerberos des domaines suivants ne peuvent être détectés : " -"%(domains)s. S'il existe des domaines appartenant à ce royaume, merci de " -"créer un enregistrement TXT kerberos contenant « %(realm)s » dans chacun " -"d'entre eux." - -msgid "" -"The --domain option cannot be used together with --add-domain or --del-" -"domain. Use --domain to specify the whole realm domain list explicitly, to " -"add/remove individual domains, use --add-domain/del-domain." -msgstr "" -"L'option « --domain » ne peut être utilisée conjointement avec les options " -"« --add-domain » or « --del-domain ». Utilisez « --domain » pour indiquer " -"explicitement la liste complète des domaines du royaume, utilisez « --add-" -"domain » et « --del-domain » pour ajouter et supprimer les domaines de " -"manière individuelle." - -msgid "IPA server domain cannot be omitted" -msgstr "Le domaine du serveur IPA ne peut être omis" - -msgid "IPA server domain cannot be deleted" -msgstr "Le domaine du serveur IPA ne peut être supprimé" - -#, python-format -msgid "Changed password for \"%(value)s\"" -msgstr "Mot de passe modifié pour « %(value)s »" - msgid "" "\n" -"IPA servers\n" -msgstr "" +"Sudo Commands\n" "\n" -"Serveurs IPA\n" - -msgid "" -"\n" -"Get information about installed IPA servers.\n" -msgstr "" -"\n" -"Afficher les informations au sujet des serveurs IPA installés.\n" - -msgid "" -"\n" -" Find all servers:\n" -" ipa server-find\n" -msgstr "" -"\n" -" Trouver tous les serveurs :\n" -" ipa server-find\n" - -msgid "" -"\n" -" Show specific server:\n" -" ipa server-show ipa.example.com\n" -msgstr "" -"\n" -" Afficher les informations d'un serveur en particulier :\n" -" ipa server-show ipa.example.com\n" - -msgid "server" -msgstr "serveur" - -msgid "servers" -msgstr "serveurs" - -msgid "IPA Servers" -msgstr "Serveurs IPA" - -msgid "Server location" -msgstr "Emplacement de serveur" - -msgid "Service weight" -msgstr "Poids du service" - -msgid "Weight for server services" -msgstr "Poids des services des serveurs" - -msgid "Service relative weight" -msgstr "Poids relatif du service" - -msgid "Relative weight for server services (counts per location)" -msgstr "Poids relatifs des services des serveurs (compte par emplacement)" - -msgid "Enabled server roles" -msgstr "Rôles serveur activés" - -msgid "List of enabled roles" -msgstr "Liste des rôles activés" - -msgid "Modify information about an IPA server." -msgstr "Modifier les informations d'un serveur IPA." - -#, python-format -msgid "Modified IPA server \"%(value)s\"" -msgstr "Serveur IPA \"%(value)s\" modifié" - -#, python-format -msgid "%(count)d IPA server matched" -msgid_plural "%(count)d IPA servers matched" -msgstr[0] "%(count)d serveur IPA correspondant" -msgstr[1] "%(count)d serveurs IPA correspondants" - -#, python-format -msgid "Deleted IPA server \"%(value)s\"" -msgstr "Serveur IPA « %(value)s » supprimé" - -msgid "Ignore topology errors" -msgstr "Ignorer les erreurs de topologie" - -msgid "Ignore topology connectivity problems after removal" -msgstr "" -"Ignorer les problèmes de connectivité dans la topologie après suppression" - -msgid "Ignore check for last remaining CA or DNS server" -msgstr "Ignorer la vérification de dernier serveur d'AC ou DNS" - -msgid "Skip a check whether the last CA master or DNS server is removed" -msgstr "" -"Passer la vérification lorsque le dernier serveur DNS ou AC maître est " -"supprimé" - -msgid "Force server removal" -msgstr "Forcer la suppression du serveur" - -msgid "Force server removal even if it does not exist" -msgstr "Forcer la suppression du serveur même s'il n'existe pas" - -msgid "" -"Replica is active DNSSEC key master. Uninstall could break your DNS system. " -"Please disable or replace DNSSEC key master first." -msgstr "" -"La réplique est un serveur de clés DNSSEC actif. Le désinstaller pourrait " -"casser votre système DNS. Merci de d'abord désactiver ou de remplacer votre " -"serveur de clés DNSSEC." - -msgid "Deleting this server will leave your installation without a DNS." -msgstr "La suppression de ce serveur laissera votre installation sans DNS." - -msgid "" -"Deleting this server is not allowed as it would leave your installation " -"without a CA." -msgstr "" -"La suppression de ce serveur n'est pas autorisée, elle laisserait votre " -"installation sans AC." - -msgid "Ignoring these warnings and proceeding with removal" -msgstr "On ignore ces avertissements et lancement de la suppression" - -#, python-format -msgid "" -"Failed to clean memberPrincipal %(principal)s from s4u2proxy entry %(dn)s: " -"%(err)s" -msgstr "" -"Échec du nettoyage du memberPrincipal %(principal)s dans l'entrée s4u2proxy " -"%(dn)s : %(err)s" - -#, python-format -msgid "Failed to clean up DNA hostname entries for %(master)s: %(err)s" -msgstr "" -"Échec du nettoyage des entrées du nom d'hôte DNA pour %(master)s : %(err)s" - -#, python-format -msgid "Failed to remove server %(master)s from server list: %(err)s" -msgstr "" -"Échec de la suppression du serveur %(master)s de la liste de serveurs : " -"%(err)s" - -#, python-format -msgid "Failed to cleanup server principals/keys: %(err)s" -msgstr "Échec du nettoyage du principal ou des clés du serveur : %(err)s" - -#, python-format -msgid "Failed to cleanup %(hostname)s DNS entries: %(err)s" -msgstr "Échec du nettoyage des entrées DNS de %(hostname)s : %(err)s" - -msgid "You may need to manually remove them from the tree" -msgstr "Vous pouvez avoir besoin de les supprimer manuellement de l'arbre" - -#, python-format -msgid "Forcing removal of %(hostname)s" -msgstr "On force la suppression de %(hostname)s" - -msgid "Ignoring topology connectivity errors." -msgstr "On ignore les erreurs de connectivité de la topologie." - -msgid "Server has already been deleted" -msgstr "Le serveur a déjà été supprimé" - -msgid "Agreements deleted" -msgstr "Agréments supprimés" - -msgid "Following segments were not deleted:" -msgstr "Les segments suivants n'ont pas été supprimés :" - -#, python-format -msgid "must be \"%s\"" -msgstr "doit être « %s »" - -msgid "not allowed to perform server connection check" -msgstr "impossible d'effectuer la vérification de la connexion au serveur" - -msgid "" -"\n" -"IPA locations\n" -msgstr "" -"\n" -"Emplacements IPA\n" - -msgid "" -"\n" -"Manipulate DNS locations\n" -msgstr "" -"\n" -"Manipulation des emplacements DNS\n" - -msgid "" -"\n" -" Find all locations:\n" -" ipa location-find\n" -msgstr "" -"\n" -" Trouver tous les emplacements :\n" -" ipa location-find\n" - -msgid "" -"\n" -" Show specific location:\n" -" ipa location-show location\n" -msgstr "" -"\n" -" Afficher un emplacement spécifique :\n" -" ipa location-show location\n" - -msgid "" -"\n" -" Add location:\n" -" ipa location-add location --description 'My location'\n" -msgstr "" -"\n" -" Ajouter un emplacement :\n" -" ipa location-add location --description 'Mon emplacement'\n" - -msgid "" -"\n" -" Delete location:\n" -" ipa location-del location\n" -msgstr "" -"\n" -" Supprimer un emplacement :\n" -" ipa location-del location\n" - -msgid "location" -msgstr "emplacement" - -msgid "locations" -msgstr "emplacements" - -msgid "IPA Locations" -msgstr "Emplacements IPA" - -msgid "IPA Location" -msgstr "Emplacement IPA" - -msgid "Location name" -msgstr "Nom de l'emplacement" - -msgid "IPA location name" -msgstr "Nom de l'emplacement IPA" - -msgid "IPA Location description" -msgstr "Description de l'emplacement IPA" - -msgid "Servers" -msgstr "Serveurs" - -msgid "Servers that belongs to the IPA location" -msgstr "Serveurs appartenants à l'emplacement IPA" - -msgid "Advertised by servers" -msgstr "Publié par les serveurs" - -msgid "List of servers which advertise the given location" -msgstr "Liste des serveurs qui publient un emplacement donné" - -msgid "Add a new IPA location." -msgstr "Ajouter un nouvel emplacement IPA." - -#, python-format -msgid "Added IPA location \"%(value)s\"" -msgstr "Emplacement IPA « %(value)s » ajouté" - -msgid "Delete an IPA location." -msgstr "Supprimer un emplacement IPA." - -#, python-format -msgid "Deleted IPA location \"%(value)s\"" -msgstr "Emplacement IPA « %(value)s » supprimé" - -msgid "Modify information about an IPA location." -msgstr "Modifier les informations d'un emplacement IPA." - -#, python-format -msgid "Modified IPA location \"%(value)s\"" -msgstr "Emplacement IPA « %(value)s » modifié" - -msgid "Search for IPA locations." -msgstr "Rechercher des emplacements IPA." - -#, python-format -msgid "%(count)d IPA location matched" -msgid_plural "%(count)d IPA locations matched" -msgstr[0] "%(count)d emplacement IPA correspondant" -msgstr[1] "%(count)d emplacements IPA correspondants" - -msgid "Display information about an IPA location." -msgstr "Afficher les informations d'un emplacement IPA." - -msgid "Servers in location" -msgstr "Serveurs situés à l'emplacement" - -msgid "" -"\n" -"RADIUS Proxy Servers\n" -msgstr "" -"\n" -"Serveurs mandataires RADIUS\n" - -msgid "" -"\n" -"Manage RADIUS Proxy Servers.\n" -msgstr "" -"\n" -"Gestion des serveurs mandataires RADIUS.\n" - -msgid "" -"\n" -"IPA supports the use of an external RADIUS proxy server for krb5 OTP\n" -"authentications. This permits a great deal of flexibility when\n" -"integrating with third-party authentication services.\n" -msgstr "" -"\n" -"IPA prend en charge l'utilisation d'un serveur mandataire externe RADIUS\n" -"pour des authentifications OTP « krb5 ». Cela procure une grande souplesse\n" -"pour l'intégration des services d'authentification tierce partie.\n" - -msgid "" -"\n" -" Add a new server:\n" -" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" -msgstr "" -"\n" -" Ajouter un nouveau serveur :\n" -" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" - -msgid "" -"\n" -" Find all servers whose entries include the string \"example.com\":\n" -" ipa radiusproxy-find example.com\n" -msgstr "" -"\n" -" Trouver tous serveurs dont les entrées incluent la chaîne « example." -"com » :\n" -" ipa radiusproxy-find example.com\n" - -msgid "" -"\n" -" Examine the configuration:\n" -" ipa radiusproxy-show MyRADIUS\n" -msgstr "" -"\n" -" Examiner la configuration :\n" -" ipa radiusproxy-show MyRADIUS\n" - -msgid "" -"\n" -" Change the secret:\n" -" ipa radiusproxy-mod MyRADIUS --secret\n" -msgstr "" -"\n" -" Changer le secret :\n" -" ipa radiusproxy-mod MyRADIUS --secret\n" - -msgid "" -"\n" -" Delete a configuration:\n" -" ipa radiusproxy-del MyRADIUS\n" -msgstr "" -"\n" -" Supprimer une configuration:\n" -" ipa radiusproxy-del MyRADIUS\n" - -msgid "invalid attribute name" -msgstr "nom d'attribut invalide" - -msgid "invalid port number" -msgstr "numéro de port invalide" - -msgid "RADIUS proxy server" -msgstr "Serveur mandataire RADIUS" - -msgid "RADIUS proxy servers" -msgstr "Serveurs mandataires RADIUS" - -msgid "RADIUS Servers" -msgstr "Serveurs RADIUS" - -msgid "RADIUS Server" -msgstr "Serveur RADIUS" - -#, python-format -msgid "Added RADIUS proxy server \"%(value)s\"" -msgstr "Serveur mandataire RADIUS « %(value)s » ajouté" - -#, python-format -msgid "Deleted RADIUS proxy server \"%(value)s\"" -msgstr "Serveur mandataire RADIUS « %(value)s » supprimé" - -#, python-format -msgid "Modified RADIUS proxy server \"%(value)s\"" -msgstr "Serveur mandataire RADIUS « %(value)s » modifié" - -#, python-format -msgid "%(count)d RADIUS proxy server matched" -msgid_plural "%(count)d RADIUS proxy servers matched" -msgstr[0] "%(count)d serveur mandataire RADIUS correspondant" -msgstr[1] "%(count)d serveurs mandataires RADIUS correspondant" - -#, python-format -msgid "" -"Insufficient 'write' privilege to the 'krbLastPwdChange' attribute of entry " -"'%s'." -msgstr "" -"Privilège « write » insuffisant pour l'attribut « krbLastPwdChange » de " -"l'entrée « %s »." - -msgid "" -"\n" -"Manage Certificate Profiles\n" -"\n" -"Certificate Profiles are used by Certificate Authority (CA) in the signing " -"of\n" -"certificates to determine if a Certificate Signing Request (CSR) is " -"acceptable,\n" -"and if so what features and extensions will be present on the certificate.\n" -"\n" -"The Certificate Profile format is the property-list format understood by " -"the\n" -"Dogtag or Red Hat Certificate System CA.\n" -"\n" -"PROFILE ID SYNTAX:\n" -"\n" -"A Profile ID is a string without spaces or punctuation starting with a " -"letter\n" -"and followed by a sequence of letters, digits or underscore (\"_\").\n" +"Commands used as building blocks for sudo\n" "\n" "EXAMPLES:\n" "\n" -" Import a profile that will not store issued certificates:\n" -" ipa certprofile-import ShortLivedUserCert \\\n" -" --file UserCert.profile --desc \"User Certificates\" \\\n" -" --store=false\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" "\n" -" Delete a certificate profile:\n" -" ipa certprofile-del ShortLivedUserCert\n" -"\n" -" Show information about a profile:\n" -" ipa certprofile-show ShortLivedUserCert\n" -"\n" -" Save profile configuration to a file:\n" -" ipa certprofile-show caIPAserviceCert --out caIPAserviceCert.cfg\n" -"\n" -" Search for profiles that do not store certificates:\n" -" ipa certprofile-find --store=false\n" -"\n" -"PROFILE CONFIGURATION FORMAT:\n" -"\n" -"The profile configuration format is the raw property-list format\n" -"used by Dogtag Certificate System. The XML format is not supported.\n" -"\n" -"The following restrictions apply to profiles managed by FreeIPA:\n" -"\n" -"- When importing a profile the \"profileId\" field, if present, must\n" -" match the ID given on the command line.\n" -"\n" -"- The \"classId\" field must be set to \"caEnrollImpl\"\n" -"\n" -"- The \"auth.instance_id\" field must be set to \"raCertAuth\"\n" -"\n" -"- The \"certReqInputImpl\" input class and \"certOutputImpl\" output\n" -" class must be used.\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" "\n" msgstr "" "\n" -"Gestion des profils de certificats\n" +"Commandes sudo\n" "\n" -"Les profils de certificats sont utilisés par l'autorité de certification " -"(AC) dans\n" -"la signature de certificats afin de déterminer si une demande de signature " -"de\n" -"certificat (Certificate Signing Request, CSR) est acceptable, et si oui, " -"quelles\n" -"fonctionnalités et extensions doivent figurer dans le certificat.\n" -"\n" -"Le format du profil de certificat est un format de liste de propriétés qui " -"sera\n" -"compris par une autorité de certification Dogtag ou Red Hat Certificate " -"System.\n" -"\n" -"SYNTAXE DE L'IDENTIFIANT DE PROFIL :\n" -"\n" -"Un identifiant de profil est une chaîne de caractères sans espaces ni " -"caractère de\n" -"ponctuation débutant par une lettre suivie d'une séquence de lettres, de " -"chiffres et\n" -"de caractère souligné (« _ »).\n" +"Commandes utilisées en tant que briques de base pour sudo\n" "\n" "EXEMPLES :\n" "\n" -" Importer un profil qui ne stockera pas les certificats émis :\n" -" ipa certprofile-import ShortLivedUserCert \\\n" -" --file UserCert.profile --summary \"User Certificates\" \\\n" -" --store=false\n" +" Ajouter une nouvelle commande\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" "\n" -" Supprimer un profil de certificat :\n" -" ipa certprofile-del ShortLivedUserCert\n" +" Supprimer une commande\n" +" ipa sudocmd-del /usr/bin/less\n" "\n" -" Afficher les informations sur un profil :\n" -" ipa certprofile-show ShortLivedUserCert\n" -"\n" -" Enregistrer la configuration du profil dans un fichier :\n" -" ipa certprofile-show caIPAserviceCert --out caIPAserviceCert.cfg\n" -"\n" -" Rechercher des profils ne stockant pas les certificats :\n" -" ipa certprofile-find --store=false\n" -"\n" -"FORMAT DE LA CONFIGURATION DE PROFIL :\n" -"\n" -"Le format de configuration de profil est un format brut de liste de \n" -"propriété utilisé par Dogtag Certificate System. Le format XML n'est\n" -"pas pris en charge.\n" -"\n" -"Les restrictions suivantes s'appliquent aux profils gérés par FreeIPA :\n" -"\n" -"- Lors de l'import d'un profil, le champ « profileId » s'il est présent " -"doit\n" -" correspondre à l'identifiant donné sur la ligne de commande.\n" -"\n" -"- Le champ « classId » doit être « caEnrollImpl »\n" -"\n" -"- Le champ « auth.instance_id  doit être « raCertAuth »\n" -"\n" -"- Les classe d'entrée « certReqInputImpl » et de sortie « certOutputImpl » " -"doivent \n" -" être utilisées.\n" -msgid "CA is not configured" -msgstr "L'AC n'est pas configurée" +msgid "sudo command" +msgstr "commande sudo" -msgid "invalid Profile ID" -msgstr "Identifiant de profil invalide" +msgid "sudo commands" +msgstr "commandes sudo" -msgid "Certificate Profile" -msgstr "Profil de certificat" - -msgid "Certificate Profiles" -msgstr "Profils de certificats" - -msgid "Profile configuration" -msgstr "Configuration de profil" +msgid "Sudo Commands" +msgstr "Commandes sudo" #, python-format -msgid "%(count)d profile matched" -msgid_plural "%(count)d profiles matched" -msgstr[0] "%(count)d profil correspondant" -msgstr[1] "%(count)d profils correspondants" +msgid "Added Sudo Command \"%(value)s\"" +msgstr "Commande sudo « %(value)s » ajoutée" #, python-format -msgid "Imported profile \"%(value)s\"" -msgstr "Profil « %(value)s » importé" +msgid "Deleted Sudo Command \"%(value)s\"" +msgstr "Commande sudo « %(value)s » supprimée" #, python-format -msgid "Profile ID '%(cli_value)s' does not match profile data '%(file_value)s'" -msgstr "" -"L'identifiant de profil « %(cli_value)s » ne correspond pas aux données du " -"profil « %(file_value)s »" +msgid "Modified Sudo Command \"%(value)s\"" +msgstr "Commande sudo « %(value)s » modifiée" #, python-format -msgid "Deleted profile \"%(value)s\"" -msgstr "Profil « %(value)s » supprimé" - -#, python-format -msgid "Predefined profile '%(profile_id)s' cannot be deleted" -msgstr "Le profil prédéfini « %(profile_id)s » ne peut être supprimé" - -#, python-format -msgid "Modified Certificate Profile \"%(value)s\"" -msgstr "Profil de certificat « %(value)s » modifié" - -msgid "Certificate profiles cannot be renamed" -msgstr "Les profils de certificats ne peuvent être renommés" - -msgid "Role" -msgstr "Rôle" - -#, python-format -msgid "Added role \"%(value)s\"" -msgstr "Rôle « %(value)s » ajouté" - -#, python-format -msgid "Deleted role \"%(value)s\"" -msgstr "Rôle « %(value)s » supprimé" - -#, python-format -msgid "Modified role \"%(value)s\"" -msgstr "Rôle « %(value)s » modifié" - -#, 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 correspondant" - -msgid "" -"\n" -"API Schema\n" -msgstr "" -"\n" -"Schéma de l'API\n" - -msgid "" -"\n" -"Provides API introspection capabilities.\n" -msgstr "" -"\n" -"Fournit des capacités d'introspection de l'API.\n" - -msgid "" -"\n" -" Show user-find details:\n" -" ipa command-show user-find\n" -msgstr "" -"\n" -" Afficher les informations sur user-find :\n" -" ipa command-show user-find\n" - -msgid "" -"\n" -" Find user-find parameters:\n" -" ipa param-find user-find\n" -msgstr "" -"\n" -" Trouver les arguments disponibles pour user-find :\n" -" ipa param-find user-find\n" - -msgid "Documentation" -msgstr "Documentation" - -msgid "Exclude from" -msgstr "Exclure de" - -msgid "Include in" -msgstr "Inclure dans" - -msgid "Help topic" -msgstr "Sujet de l'aide" - -msgid "Parameters" -msgstr "Paramètres" - -msgid "Display information about a command." -msgstr "Afficher des informations sur une commande." - -msgid "Search for commands." -msgstr "Rechercher des commandes." - -msgid "Display information about a help topic." -msgstr "Afficher les informations sur un sujet de l'aide." - -msgid "Search for help topics." -msgstr "Rechercher des sujets de l'aide." - -msgid "Required" -msgstr "Requis" - -msgid "Multi-value" -msgstr "Multi-valué" - -msgid "Always ask" -msgstr "Toujours demander" - -msgid "CLI metavar" -msgstr "Metavariable CLI" - -msgid "CLI name" -msgstr "Nom CLI" - -msgid "Confirm (password)" -msgstr "Confirmer le mot de passe" - -msgid "Default" -msgstr "Par défaut" - -msgid "Default from" -msgstr "Valeur par défaut depuis" - -msgid "Label" -msgstr "Étiquette" - -msgid "Convert on server" -msgstr "Convertir sur le serveur" - -msgid "Option group" -msgstr "Groupe d'options" - -msgid "Sensitive" -msgstr "Sensible" - -msgid "Display information about a command parameter." -msgstr "Afficher des informations sur un paramètre de commande." - -msgid "Search command parameters." -msgstr "Rechercher des paramètres de commandes." - -msgid "Display information about a command output." -msgstr "Afficher les informations sur une sortie de commande." - -msgid "Search for command outputs." -msgstr "Rechercher des sorties de commande." - -msgid "OTP configuration options" -msgstr "Options de configuration pour les mots de passe à usage unique" - -msgid "OTP Configuration" -msgstr "Configuration pour les mots de passe à usage unique" - -msgid "" -"\n" -"OTP Tokens\n" -msgstr "" -"\n" -"Jetons OTP\n" - -msgid "" -"\n" -"Manage OTP tokens.\n" -msgstr "" -"\n" -"Gérer les jetons OTP.\n" - -msgid "" -"\n" -"IPA supports the use of OTP tokens for multi-factor authentication. This\n" -"code enables the management of OTP tokens.\n" -msgstr "" -"\n" -"IPA prend en charge l'utilisation de jetons OTP pour une authentification\n" -"à facteurs multiples. Ce code active la gestion des jetons OTP.\n" - -msgid "" -"\n" -" Add a new token:\n" -" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" -msgstr "" -"\n" -" Ajouter un nouveau jeton :\n" -" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" - -msgid "" -"\n" -" Examine the token:\n" -" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" -msgstr "" -"\n" -" Examiner un jeton :\n" -" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" - -msgid "" -"\n" -" Change the vendor:\n" -" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" -"\"\n" -msgstr "" -"\n" -" Modifier le fournisseur :\n" -" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" -"\"\n" - -msgid "" -"\n" -" Delete a token:\n" -" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" -msgstr "" -"\n" -" Supprimer un jeton :\n" -" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" - -msgid "OTP token" -msgstr "jeton OTP" - -msgid "OTP tokens" -msgstr "jetons OTP" - -msgid "OTP Tokens" -msgstr "Jetons OTP" - -msgid "OTP Token" -msgstr "Jeton OTP" - -msgid "URI" -msgstr "URI" - -#, python-format -msgid "Added OTP token \"%(value)s\"" -msgstr "Jeton OTP « %(value)s » ajouté" - -msgid "cannot be empty" -msgstr "ne peut pas être vide" - -#, python-format -msgid "Deleted OTP token \"%(value)s\"" -msgstr "Jeton OTP « %(value)s » supprimé" - -#, python-format -msgid "Modified OTP token \"%(value)s\"" -msgstr "Jeton OTP « %(value)s » modifié" - -#, python-format -msgid "%(count)d OTP token matched" -msgid_plural "%(count)d OTP tokens matched" -msgstr[0] "%(count)d jeton OTP correspond" -msgstr[1] "%(count)d jetons OTP correspondant" - -msgid "host groups" -msgstr "groupes d'hôtes" - -msgid "Host Group" -msgstr "Groupe d'hôtes" - -#, python-format -msgid "Added hostgroup \"%(value)s\"" -msgstr "Groupe d'hôtes « %(value)s » ajouté" - -#, python-format -msgid "" -"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " -"common namespace" -msgstr "" -"Un groupe réseau nommé « %s » existe déjà. Les groupes d'hôtes et les " -"groupes réseau partagent un même espace de noms." - -#, python-format -msgid "Deleted hostgroup \"%(value)s\"" -msgstr "Groupe d'hôtes « %(value)s » supprimé" - -msgid "hostgroup" -msgstr "groupe d'hôtes" - -msgid "privileged hostgroup" -msgstr "groupe d'hôtes privilégiés" - -#, python-format -msgid "Modified hostgroup \"%(value)s\"" -msgstr "Groupe d'hôtes « %(value)s » modifié" - -#, python-format -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "%(count)d groupe d'hôtes correspondant" -msgstr[1] "%(count)d groupes d'hôtes correspondant" - -msgid "netgroups" -msgstr "groupes réseau" - -msgid "Netgroup" -msgstr "Groupe réseau" - -#, python-format -msgid "Added netgroup \"%(value)s\"" -msgstr "Groupe réseau « %(value)s » ajouté" - -#, python-format -msgid "" -"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " -"common namespace" -msgstr "" -"Un groupe d'hôtes nommé « %s » existe déjà. Les groupes d'hôtes et les " -"groupes réseau partagent le même espace de nommage" - -#, python-format -msgid "Deleted netgroup \"%(value)s\"" -msgstr "Groupe réseau « %(value)s » supprimé" - -#, python-format -msgid "Modified netgroup \"%(value)s\"" -msgstr "Groupe réseau « %(value)s » supprimé" - -#, python-format -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "%(count)d groupe réseau correspondant" -msgstr[1] "%(count)d groupes réseau correspondant" - -msgid "commands for controlling sudo configuration" -msgstr "commandes pour contrôler la configuration sudo" +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "%(count)d commande sudo correspondant" +msgstr[1] "%(count)d commandes sudo correspondant" msgid "" "\n" @@ -17405,1260 +17774,857 @@ msgstr "Résultat de la commande" msgid "Dry run" msgstr "Essai à blanc" -msgid "The deny type has been deprecated." -msgstr "Le type « deny » est obsolète." - -msgid "HBAC rules" -msgstr "Règles HBAC" - -msgid "HBAC Rules" -msgstr "Règles HBAC" - #, python-format -msgid "Added HBAC rule \"%(value)s\"" -msgstr "Règle HBAC « %(value)s » ajoutée" +msgid "Changed password for \"%(value)s\"" +msgstr "Mot de passe modifié pour « %(value)s »" -#, python-format -msgid "Deleted HBAC rule \"%(value)s\"" -msgstr "Règle HBAC « %(value)s » supprimée" +#, python-brace-format +msgid "{role}: role not found" +msgstr "{role} : rôle introuvable" -#, python-format -msgid "Modified HBAC rule \"%(value)s\"" -msgstr "Règle HBAC « %(value)s » modifiée" +#, python-brace-format +msgid "{attr}: no such attribute" +msgstr "{attr} : attribut introuvable" -#, 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" +msgid "A dictionary representing an LDAP entry" +msgstr "Un annuaire représentant une entrée LDAP" -#, python-format -msgid "Enabled HBAC rule \"%(value)s\"" -msgstr "Règle HBAC « %(value)s » activée" +msgid "A list of LDAP entries" +msgstr "Une liste d'entrées LDAP" -#, python-format -msgid "Disabled HBAC rule \"%(value)s\"" -msgstr "Règle HBAC « %(value)s » désactivée" +msgid "All commands should at least have a result" +msgstr "Toutes les commandes doivent avoir au moins un résultat" -msgid "Access time" -msgstr "Horaire d'accès" - -msgid "" -"\n" -"Simulate use of Host-based access controls\n" -"\n" -"HBAC rules control who can access what services on what hosts.\n" -"You can use HBAC to control which users or groups can access a service,\n" -"or group of services, on a target host.\n" -"\n" -"Since applying HBAC rules implies use of a production environment,\n" -"this plugin aims to provide simulation of HBAC rules evaluation without\n" -"having access to the production environment.\n" -"\n" -" Test user coming to a service on a named host against\n" -" existing enabled rules.\n" -"\n" -" ipa hbactest --user= --host= --service=\n" -" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" -" [--sizelimit= ]\n" -"\n" -" --user, --host, and --service are mandatory, others are optional.\n" -"\n" -" If --rules is specified simulate enabling of the specified rules and test\n" -" the login of the user using only these rules.\n" -"\n" -" If --enabled is specified, all enabled HBAC rules will be added to " -"simulation\n" -"\n" -" If --disabled is specified, all disabled HBAC rules will be added to " -"simulation\n" -"\n" -" If --nodetail is specified, do not return information about rules matched/" -"not matched.\n" -"\n" -" If both --rules and --enabled are specified, apply simulation to --rules " -"_and_\n" -" all IPA enabled rules.\n" -"\n" -" If no --rules specified, simulation is run against all IPA enabled rules.\n" -" By default there is a IPA-wide limit to number of entries fetched, you can " -"change it\n" -" with --sizelimit option.\n" -"\n" -"EXAMPLES:\n" -"\n" -" 1. Use all enabled HBAC rules in IPA database to simulate:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -" Matched rules: allow_all\n" -"\n" -" 2. Disable detailed summary of how rules were applied:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --nodetail\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -"\n" -" 3. Test explicitly specified HBAC rules:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" -" --rules=myrule --rules=my-second-rule\n" -" ---------------------\n" -" Access granted: False\n" -" ---------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: myrule\n" -"\n" -" 4. Use all enabled HBAC rules in IPA database + explicitly specified " -"rules:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" -" --rules=myrule --rules=my-second-rule --enabled\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -" Matched rules: allow_all\n" -"\n" -" 5. Test all disabled HBAC rules in IPA database:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --disabled\n" -" ---------------------\n" -" Access granted: False\n" -" ---------------------\n" -" Not matched rules: new-rule\n" -"\n" -" 6. Test all disabled HBAC rules in IPA database + explicitly specified " -"rules:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" -" --rules=myrule --rules=my-second-rule --disabled\n" -" ---------------------\n" -" Access granted: False\n" -" ---------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -"\n" -" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" -" --enabled --disabled\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -" Not matched rules: new-rule\n" -" Matched rules: allow_all\n" -"\n" -"\n" -"HBACTEST AND TRUSTED DOMAINS\n" -"\n" -"When an external trusted domain is configured in IPA, HBAC rules are also " -"applied\n" -"on users accessing IPA resources from the trusted domain. Trusted domain " -"users and\n" -"groups (and their SIDs) can be then assigned to external groups which can " -"be\n" -"members of POSIX groups in IPA which can be used in HBAC rules and thus " -"allowing\n" -"access to resources protected by the HBAC system.\n" -"\n" -"hbactest plugin is capable of testing access for both local IPA users and " -"users\n" -"from the trusted domains, either by a fully qualified user name or by user " -"SID.\n" -"Such user names need to have a trusted domain specified as a short name\n" -"(DOMAIN\\Administrator) or with a user principal name (UPN), " -"Administrator@ad.test.\n" -"\n" -"Please note that hbactest executed with a trusted domain user as --user " -"parameter\n" -"can be only run by members of \"trust admins\" group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" 1. Test if a user from a trusted domain specified by its shortname " -"matches any\n" -" rule:\n" -"\n" -" $ ipa hbactest --user 'DOMAIN\\Administrator' --host `hostname` --" -"service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 2. Test if a user from a trusted domain specified by its domain name " -"matches\n" -" any rule:\n" -"\n" -" $ ipa hbactest --user 'Administrator@domain.com' --host `hostname` --" -"service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 3. Test if a user from a trusted domain specified by its SID matches any " -"rule:\n" -"\n" -" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n" -" --host `hostname` --service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 4. Test if other user from a trusted domain specified by its SID matches " -"any rule:\n" -"\n" -" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-1203 \\\n" -" --host `hostname` --service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Not matched rules: can_login\n" -"\n" -" 5. Test if other user from a trusted domain specified by its shortname " -"matches\n" -" any rule:\n" -"\n" -" $ ipa hbactest --user 'DOMAIN\\Otheruser' --host `hostname` --service " -"sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Not matched rules: can_login\n" -msgstr "" -"\n" -"Simuler l'utilisation des contrôles d'accès fondés sur l'hôte\n" -"\n" -"Les règles HBAC contrôlent qui peut accéder à quel service sur quels hôtes.\n" -"Vous pouvez utiliser HBAC pour contrôler quels utilisateurs ou quels " -"groupes\n" -"ont accés à un service ou à un groupe de services, sur un hôte cible.\n" -"\n" -"L'application de règles HBAC présuppose un environnement de production ;\n" -"ce greffon a pour objet de fournir une simulation de l'évaluation des " -"règles\n" -"HBAC sans nécessiter d'accès à cet environnement.\n" -"\n" -" Tester l'arrivée d'un utilisateur dans un service sur un hôte donné\n" -" vis à vis des règles actives existantes.\n" -"\n" -"ipa hbactest --user= --host= --service=\\\n" -" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\\\n" -" [--sizelimit= ]\n" -"\n" -"--user, --host et --service sont obligatoires, les autres sont " -"optionnelles.\n" -"\n" -" Si --rules est défini, simule l'activation des règles « rules-list » et\n" -" teste la connexion de l'utilisateur uniquement sur ces règles.\n" -"\n" -" Si --enabled est défini, toutes les règles HBAC activées sont ajoutées à\n" -" la simulation\n" -"\n" -" Si --disabled est défini, toutes les règles HBAC désactivées sont ajoutées\n" -" à la simulation\n" -"\n" -" Si --nodetail est défini, il n'est pas renvoyé d'information sur les " -"règles satisfaites ou non satisfaites.\n" -"\n" -" Si --rules et --enabled sont définis tous deux, la simulation est " -"appliquée\n" -" à --rules _et_ à tous les règles IPA activées.\n" -"\n" -" Si --rules n'est pas défini, la simulation est lancée vis à sis de toutes\n" -" les règles IPA activées.\n" -" Par défaut, il y a une limite globale IPA pour le nombre d'entrées\n" -" renvoyées, vous pouvez la modifier avec l'option « --sizelimit ».\n" -"\n" -"EXEMPLES :\n" -"\n" -" 1. Utiliser toutes les règles HBAC activées dans la base de données IPA\n" -" pour la simulation :\n" -" $ ipa hbactest --user=a1a --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. Désactiver le résumé détaillé sur l'application des règles :\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --nodetail\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -"\n" -" 3. Tester explicitement les règles HBAC indiquées :\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \n" -"--rules=my-second-rule,myrule\n" -" ---------------------\n" -" Access granted: False\n" -" ---------------------\n" -" notmatched: my-second-rule\n" -" notmatched: myrule\n" -"\n" -" 4. Utiliser toutes les règles HBAC activées de la base de données IPA\n" -" plus les règles explicitement définies :\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \n" -"--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. Tester toutes les règles HBAC désactivées de la base de données " -"IPA :\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --disabled\n" -" ---------------------\n" -" Access granted: False\n" -" ---------------------\n" -" notmatched: new-rule\n" -"\n" -" 6. Tester toutes les règles HBAC désactivées de la base de données IPA\n" -" plus les règles explicitement définies :\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \n" -"--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. Tester toutes les règles HBAC (activées et désactivées) de la base\n" -" de données IPA :\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" -" --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" -"\n" -"TEST HBAC ET domaines approuvés\n" -"\n" -"Si un domaine approuvé externe est configuré dans IPA, les règles HBAC\n" -"sont aussi appliquées aux utilisateurs accédant aux ressources IPA à partir\n" -"du domaine approuvé. Les utilisateurs des domaines approuvés et les\n" -"groupes (et leur SID) peuvent être assignés à des groupes externes pouvant\n" -"être membres de groupes POSIX d'IPA éligibles aux règles HBAC, ce qui\n" -"autorise un accès aux ressources protégées par le système HBAC.\n" -"\n" -"Le greffon « hbactest » peut tester des accès, à la fois d'utilisateurs\n" -"IPA locaux et d'utilisateurs de domaines approuvés à partir, soit du\n" -"nom d'utilisateur pleinement qualifié, soit du SID utilisateur. De tels " -"noms\n" -"d'utilisateur doivent avoir un domaine approuvé précisé comme nom court\n" -"(DOMAINE\\Administrateur) ou avec un nom de principal d'utilisateur (UPN),\n" -"Administrator@ad.test.\n" -"\n" -"Veuillez noter que « hbactest » exécuté avec un utilisateur de domaine de\n" -"confiance en tant que paramètre --user ne peut être lancé que par des\n" -"membres du groupe des « administrateurs de confiance ».\n" -"\n" -"EXEMPLES :\n" -"\n" -" 1. Tester si un utilisateur d'un domaine approuvé défini par son\n" -" nom court satisfait à toute règle :\n" -"\n" -" $ ipa hbactest --user 'DOMAIN\\Administrator' --host `hostname` --" -"service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 2. Tester si un utilisateur d'un domaine approuvé défini par son\n" -" nom de domaine satisfait à toute règle :\n" -"\n" -" $ ipa hbactest --user 'Administrator@domain.com' --host `hostname` --" -"service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 3. Tester si un utilisateur d'un domaine approuvé défini par son\n" -" SID satisfait à toute règle :\n" -"\n" -" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n" -" --host `hostname` --service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 4. Tester si un autre utilisateur d'un domaine approuvé défini\n" -" par son SID satisfait à toute règle :\n" -"\n" -" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-1203 \\\n" -" --host `hostname` --service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Not matched rules: can_login\n" -"\n" -" 5. Tester si un autre utilisateur d'un domaine approuvé défini par\n" -" son nom court satisfait à toute règle :\n" -"\n" -" $ ipa hbactest --user 'DOMAIN\\Otheruser' --host `hostname` --service " -"sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Not matched rules: can_login\n" - -msgid "Unresolved rules in --rules" -msgstr "Règles non résolues dans « --rules »" - -msgid "" -"Cannot search in trusted domains without own domain configured. Make sure " -"you have run ipa-adtrust-install on the IPA server first" -msgstr "" -"Impossible d'effectuer une recherche sur les domaines approuvés sans avoir " -"au préalable configuré son propre domaine. Assurez-vous d'avoir au préalable " -"lancé « ipa-adtrust-install » sur le serveur" - -#, python-format -msgid "Access granted: %s" -msgstr "Accès autorisé : %s" - -msgid "Allowed to Impersonate" -msgstr "Autorisé à prendre l'identité" - -msgid "Member principals" -msgstr "Principaux membres de" - -msgid "Add target to a named service delegation." -msgstr "Ajouter des cibles à une délégation de service nommé" - -msgid "Remove member from a named service delegation." -msgstr "Retirer des membres d'une délégation de service nommé" - -msgid "service delegation rule" -msgstr "règle de délégation de service" - -msgid "service delegation rules" -msgstr "règles de délégation de service" - -msgid "Service delegation rules" -msgstr "Règles de délégation de service" - -msgid "Service delegation rule" -msgstr "Règle de délégation de service" - -#, python-format -msgid "Added service delegation rule \"%(value)s\"" -msgstr "Règle de délégation de service « %(value)s » ajoutée" - -#, python-format -msgid "Deleted service delegation \"%(value)s\"" -msgstr "Règle de délégation de service « %(value)s » supprimée" - -msgid "privileged service delegation rule" -msgstr "règle de délégation de service privilégié" - -#, python-format -msgid "%(count)d service delegation rule matched" -msgid_plural "%(count)d service delegation rules matched" -msgstr[0] "%(count)d règle de délégation de service correspondante" -msgstr[1] "%(count)d règles de délégation de service correspondantes" - -msgid "service delegation target" -msgstr "cible de délégation de service" - -msgid "service delegation targets" -msgstr "cibles de délégation de service" - -msgid "Service delegation targets" -msgstr "Cibles de délégation de service" - -msgid "Service delegation target" -msgstr "Cible de délégation de service" - -#, python-format -msgid "Added service delegation target \"%(value)s\"" -msgstr "Cible de délégation de service « %(value)s » ajoutée" - -#, python-format -msgid "Deleted service delegation target \"%(value)s\"" -msgstr "Cible de délégation de service « %(value)s » supprimée" - -msgid "privileged service delegation target" -msgstr "cible de délégation de service privilégiée" - -#, python-format -msgid "%(count)d service delegation target matched" -msgid_plural "%(count)d service delegation targets matched" -msgstr[0] "%(count)d cible de délégation de service correspondante" -msgstr[1] "%(count)d cibles de délégation de service correspondantes" +msgid "Additional instructions:" +msgstr "Instructions complémentaires :" #, python-format msgid "" -"cannot add permission \"%(perm)s\" with bindtype \"%(bindtype)s\" to a " -"privilege" +"API Version number was not sent, forward compatibility not guaranteed. " +"Assuming server's API version, %(server_version)s" msgstr "" -"impossible d'ajouter la permission « %(perm)s » avec le type de liaison " -"« %(bindtype)s » à un privilège" +"Le numéro de version de l'API n'a pas été envoyé, la compatibilité " +"ascendante n'est pas garantie. La version de l'API du serveur est supposée " +"être %(server_version)s" -msgid "Privilege" -msgstr "Privilège" +msgid "" +"DNS forwarder semantics changed since IPA 4.0.\n" +"You may want to use forward zones (dnsforwardzone-*) instead.\n" +"For more details read the docs." +msgstr "" +"La sémantique de redirection DNS a été modifié depuis IPA 4.0.\n" +"Utilisez à la place les redirections de zones (dnsforwardzone-*).\n" +"Pour plus de détails, lisez la documentation." #, python-format -msgid "Added privilege \"%(value)s\"" -msgstr "Privilège « %(value)s » ajouté" +msgid "" +"DNSSEC support is experimental.\n" +"%(additional_info)s" +msgstr "" +"La prise en charge de DNSSEC est expérimentale.\n" +"%(additional_info)s" #, python-format -msgid "Deleted privilege \"%(value)s\"" -msgstr "Privilège « %(value)s » supprimé" +msgid "'%(option)s' option is deprecated. %(additional_info)s" +msgstr "L'option « %(option)s » est obsolète. %(additional_info)s" #, python-format -msgid "Modified privilege \"%(value)s\"" -msgstr "Privilège « %(value)s » supprimé" +msgid "" +"Semantic of %(label)s was changed. %(current_behavior)s\n" +"%(hint)s" +msgstr "" +"La sémantique de %(label)s a changé. %(current_behavior)s\n" +"%(hint)s" #, 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 correspondant" +msgid "DNS server %(server)s: %(error)s." +msgstr "Serveur DNS %(server)s : %(error)s." + +#, python-format +msgid "" +"DNS server %(server)s does not support DNSSEC: %(error)s.\n" +"If DNSSEC validation is enabled on IPA server(s), please disable it." +msgstr "" +"Le serveur DNS %(server)s ne prend pas en charge : %(error)s.\n" +"Si la validation DNSSEC est activée sur le ou les serveurs IPA, merci de la " +"désactiver." + +#, python-format +msgid "" +"forward zone \"%(fwzone)s\" is not effective because of missing proper NS " +"delegation in authoritative zone \"%(authzone)s\". Please add NS record " +"\"%(ns_rec)s\" to parent zone \"%(authzone)s\"." +msgstr "" +"La zone redirigiée « %(fwzone)s » n'est pas en fonction car il lui manque " +"une délégation NS correcte dans la zone faisant autorité « %(authzone)s ». " +"Merci d'ajouter les enregistrement NS « %(ns_rec)s » à la zone " +"« %(authzone)s »." + +#, python-format +msgid "" +"DNS server %(server)s does not support EDNS0 (RFC 6891): %(error)s.\n" +"If DNSSEC validation is enabled on IPA server(s), please disable it." +msgstr "" +"Le serveur DNS %(server)s ne prend pas en charge EDNS0 (RFC 6891) : " +"%(error)s.\n" +"Si la validation DNSSEC est activée sur le ou les serveurs, merci de la " +"désactiver." + +#, python-format +msgid "" +"DNSSEC validation failed: %(error)s.\n" +"Please verify your DNSSEC configuration or disable DNSSEC validation on all " +"IPA servers." +msgstr "" +"Échec de la validation DNSSEC : %(error)s.\n" +"Merci de vérifier votre configuration DNSSEC ou de désactiver la validation " +"DNSSEC sur tous les serveurs IPA." + +#, python-format +msgid "" +"The _kerberos TXT record from domain %(domain)s could not be created " +"(%(error)s).\n" +"This can happen if the zone is not managed by IPA. Please create the record " +"manually, containing the following value: '%(realm)s'" +msgstr "" +"L'enregistrement TXT _kerberos du domaine %(domain)s ne peut être créé " +"(%(error)s).\n" +"Cela peut arriver si la zone n'est pas gérée par IPA. Merci de créer " +"manuellement l'enregistrement, qui doit contenir la valeur suivante : " +"« %(realm)s »" + +#, python-format +msgid "" +"The _kerberos TXT record from domain %(domain)s could not be removed " +"(%(error)s).\n" +"This can happen if the zone is not managed by IPA. Please remove the record " +"manually." +msgstr "" +"L'enregistrement TXT _kerberos du domaine %(domain)s ne peut être supprimé " +"(%(error)s).\n" +"Cela peut arriver si la zone n'est pas gérée par IPA. Merci de le supprimer " +"manuellement." + +msgid "" +"No DNSSEC key master is installed. DNSSEC zone signing will not work until " +"the DNSSEC key master is installed." +msgstr "" +"Aucune clé maîtresse DNSSEC n'est installée. La signature de zone DNSSEC ne " +"pourra pas fonctionner tant qu'une clé maîtresse n'est installée." + +#, python-format +msgid "" +"Relative record name '%(record)s' contains the zone name '%(zone)s' as a " +"suffix, which results in FQDN '%(fqdn)s'. This is usually a mistake caused " +"by a missing dot at the end of the name specification." +msgstr "" +"Le nom d'enregistrement relatif « %(record)s » contient le nom de la zone " +"« %(zone)s » comme suffixe, ce qui aboutit au FQDN « %(fqdn)s ». Cela " +"constitue généralement une erreur du fait du point final manquant à la fin " +"du nom indiqué." + +#, python-format +msgid "'%(command)s' is deprecated. %(additional_info)s" +msgstr "La commande « %(command)s » est obsolète. %(additional_info)s" + +#, python-format +msgid "%(line)s" +msgstr "%(line)s" + +#, python-format +msgid "Search result has been truncated: %(reason)s" +msgstr "Les résultats de la recherche ont été tronqués : %(reason)s" + +#, python-format +msgid "" +"Your trust to %(domain)s is broken. Please re-create it by running 'ipa " +"trust-add' again." +msgstr "" +"Votre relation d'approbation avec %(domain)s est cassée. Merci de la recréer " +"à l'aide de « ipa trust-add »." + +#, python-format +msgid "DNS record(s) of host %(host)s could not be removed. (%(reason)s)" +msgstr "" +"Le ou les enregistrements DNS de l'hôte %(host)s n'ont pu être supprimés. " +"(%(reason)s)" + +msgid "" +"Forwarding policy conflicts with some automatic empty zones. Queries for " +"zones specified by RFC 6303 will ignore forwarding and recursion and always " +"result in NXDOMAIN answers. To override this behavior use forward policy " +"'only'." +msgstr "" +"La politique de transfert entre en conflit avec certaines zones automatiques " +"vides. Les requêtes pour les zones spécifiées dans la RFC 6303 ignoreront le " +"transfert et la récursion et résulteront toujours en des réponses NXDOMAIN. " +"Pour surcharger ce comportement, utiliser la politique de transfert « only »." + +#, python-format +msgid "Update of system record '%(record)s' failed with error: %(error)s" +msgstr "" +"Échec de la à jour de l'enregistrement du système « %(record)s », erreur : " +"%(error)s" + +#, python-format +msgid "" +"IPA does not manage the zone %(zone)s, please add records to your DNS server " +"manually" +msgstr "" +"IPA ne gère pas la zone %(zone)s, merci de modifier vos serveurs " +"DNS manuellement" + +msgid "" +"Automatic update of DNS system records failed. Please re-run update of " +"system records manually to get list of missing records." +msgstr "" +"Échec de la mise à jour automatique des enregistrements DNS du système. " +"Merci de relancer la mise à jour des enregistrements du système manuellement " +"pour obtenir la liste des enregistrements manquants." + +#, python-format +msgid "" +"Service %(service)s requires restart on IPA server %(server)s to apply " +"configuration changes." +msgstr "" +"Le service %(service)s doit être redémarré sur le serveur IPA %(server)s " +"pour permettre la prise en compte de la nouvelle configuration." + +#, python-format +msgid "" +"No DNS servers in IPA location %(location)s. Without DNS servers location is " +"not working as expected." +msgstr "" +"Aucun serveur DNS dans l'emplacement IPA %(location)s. Sans serveur DNS, " +"l'emplacement ne fonctionnera pas comme attendu." + +msgid "Results are truncated, try a more specific search" +msgstr "Résultats tronqués, essayer un recherche plus précise" + +msgid "any of the configured servers" +msgstr "n'importe quel serveur configuré" + +#, python-format +msgid "%(count)d variables" +msgstr "%(count)d variables" + +#, 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" + +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "Entrer à nouveau %(label)s pour validation :" + +msgid "No matching entries found" +msgstr "Aucune entrée correspondante trouvée" + +msgid "Topic or Command" +msgstr "Thème ou commande" + +msgid "The topic or command name." +msgstr "Le nom du thème ou de la commande." + +msgid "Topic commands:" +msgstr "Commandes du thème :" + +msgid "To get command help, use:" +msgstr "Pour obtenir de l'aide, utiliser :" + +msgid " ipa --help" +msgstr " ipa --help" + +msgid "Command name" +msgstr "Nom de commande" + +msgid "Positional arguments" +msgstr "Arguments positionnels" + +#, python-format +msgid "Same as --%s" +msgstr "Identique à --%s" + +msgid "Deprecated options" +msgstr "Options obsolètes" + +msgid "No file to read" +msgstr "Pas de fichier à lire" + +msgid "incorrect type" +msgstr "type incorrect" + +msgid "Only one value is allowed" +msgstr "Une seule valeur est autorisée" + +msgid "this option is deprecated" +msgstr "cette option est obsolète" + +msgid "must be True or False" +msgstr "doit être « True » ou « False »" + +msgid "must be an integer" +msgstr "doit être un nombre entier" + +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "doit être supérieur ou égal à %(minvalue)d" + +#, python-format +msgid "can be at most %(maxvalue)d" +msgstr "doit être inférieur ou égal à %(maxvalue)d" + +msgid "must be a decimal number" +msgstr "doit être un nombre décimal" + +#, python-format +msgid "must be at least %(minvalue)s" +msgstr "doit valoir a minima %(minvalue)s" + +#, python-format +msgid "can be at most %(maxvalue)s" +msgstr "doit valoir au plus %(maxvalue)s" + +#, python-format +msgid "" +"number class '%(cls)s' is not included in a list of allowed number classes: " +"%(allowed)s" +msgstr "" +"La classe de nombres « %(cls)s » n'est pas dans la liste des classes de " +"nombres autorisées : %(allowed)s" + +#, python-format +msgid "must match pattern \"%(pattern)s\"" +msgstr "doit correspondre au motif « %(pattern)s »" + +msgid "must be binary data" +msgstr "doivent être des données binaires" + +#, python-format +msgid "must be at least %(minlength)d bytes" +msgstr "doit être d'au moins %(minlength)d octets" + +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "peut être d'au plus %(maxlength)d octets" + +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "doit être d'exactement %(length)d octets" #, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "Échec dans le décodage du « Certificate Signing Request » : %s" +msgid "must be Unicode text" +msgstr "doit être un texte Unicode" + +msgid "Leading and trailing spaces are not allowed" +msgstr "Les espaces de début et de fin ne sont pas autorisées" + #, python-format -msgid "" -"Principal '%(principal)s' is not permitted to use CA '%(ca)s' with profile " -"'%(profile_id)s' for certificate issuance." -msgstr "" -"Le principal '%(principal)s' n'est pas autorisé à utiliser l'AC '%(ca)s' " -"avec le profil '%(profile_id)s' pour l'émission de certificat." +msgid "must be at least %(minlength)d characters" +msgstr "doit être d'au moins %(minlength)d caractères" -msgid "Issuing CA" -msgstr "AC émettrice" +#, python-format +msgid "can be at most %(maxlength)d characters" +msgstr "peut être d'au plus %(maxlength)d caractères" -msgid "Name of issuing CA" -msgstr "Nom de l'AC émettrice" +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "doit être d'exactement %(length)d caractères" -msgid "Serial number (hex)" -msgstr "Numéro de série (hex)" +#, python-format +msgid "The character %(char)r is not allowed." +msgstr "Le caractère « %(char)r » n'est pas autorisé." -msgid "Request status" -msgstr "État de la demande" +#, python-format +msgid "must be '%(value)s'" +msgstr "doit être « %(value)s »" -msgid "No Common Name was found in subject of request." -msgstr "Aucun « Common Name » n'a été trouvé dans le sujet de cette demande." +#, python-format +msgid "must be one of %(values)s" +msgstr "doit être une valeur parmi %(values)s" + +msgid "must be datetime value" +msgstr "doit être une valeur date/heure" + +msgid "does not match any of accepted formats: " +msgstr "ne correspond à aucun des formats acceptés :" + +msgid "incomplete time value" +msgstr "valeur de temps incomplète" + +msgid "must be DNS name" +msgstr "doit être un nom de DNS" + +msgid "must be absolute" +msgstr "doit être absolu" + +msgid "must be relative" +msgstr "doit être relatif" + +msgid "must be dictionary" +msgstr "doit être un dictionnaire" + +msgid "Filename is empty" +msgstr "Le nom de fichier est vide" + +#, python-format +msgid "Permission denied: %(file)s" +msgstr "Autorisation refusée : %(file)s" + +msgid "empty DNS label" +msgstr "libellé DNS vide" + +msgid "DNS label cannot be longer that 63 characters" +msgstr "un libellé DNS ne peut pas dépasser 63 caractères" #, python-format msgid "" -"hostname in subject of request '%(cn)s' does not match principal hostname " -"'%(hostname)s'" +"only letters, numbers, %(chars)s are allowed. DNS label may not start or end " +"with %(chars2)s" msgstr "" -"Le nom d'hôte indiqué dans le sujet de la demande « %(cn)s » ne correspond " -"pas au nom d'hôte du principal « %(hostname)s »" +"uniquement lettres, nombres, %(chars)s sont autorisés. Les noms DNS ne " +"peuvent commencer ou se terminer par %(chars2)s" -msgid "DN commonName does not match user's login" -msgstr "" -"Le « commonName » du DN ne correspond pas à l'identifiant de connexion de " -"l'utilisateur" +msgid "too many '@' characters" +msgstr "trop de caractères « @ »" -msgid "DN emailAddress does not match any of user's email addresses" -msgstr "" -"L'adresse email du DN ne correspond à aucune des adresses email de " -"l'utilisateur" +msgid "cannot be longer that 255 characters" +msgstr "ne peut pas dépasser 255 caractères." + +msgid "hostname contains empty label (consecutive dots)" +msgstr "le nom d'hôte contient un libellé vide (plusieurs points consécutifs)" + +msgid "not fully qualified" +msgstr "pas pleinement qualifié" + +msgid "invalid SSH public key" +msgstr "clé publique SSH invalide" + +msgid "options are not allowed" +msgstr "les options ne sont pas autorisées" + +msgid "invalid hostmask" +msgstr "masque d'hôte invalide" + +#, python-format +msgid "query '%(owner)s %(rtype)s': %(error)s" +msgstr "requête « %(owner)s %(rtype)s » : %(error)s" + +#, python-format +msgid "query '%(owner)s %(rtype)s' with EDNS0: %(error)s" +msgstr "requête « %(owner)s %(rtype)s » avec EDNS0: %(error)s" #, python-format msgid "" -"Insufficient 'write' privilege to the 'userCertificate' attribute of entry " -"'%s'." +"answer to query '%(owner)s %(rtype)s' is missing DNSSEC signatures (no RRSIG " +"data)" msgstr "" -"Privilège « write » insuffisant sur l'attribut « userCertificate » de " -"l'entrée « %s »." +"la réponse à la requête « %(owner)s %(rtype)s » ne comporte pas de " +"signatures DNSSEC (pas de données RRSIG)" #, python-format -msgid "subject alt name type %s is forbidden for user principals" +msgid "record '%(owner)s %(rtype)s' failed DNSSEC validation on server %(ip)s" msgstr "" -"Il est interdit d'utiliser un « subject alt name » (nom alternatif) de type " -"%s pour les principaux d'utilisateurs." +"la validation DNSSEC de l'enregistrement « %(owner)s %(rtype)s » a échoué " +"sur le serveur %(ip)s" + +msgid "invalid escape code in domain name" +msgstr "code d'échappement invalide dans le nom du domaine" + +msgid "domain name cannot be longer than 255 characters" +msgstr "le nom de domaine ne peut pas dépasser 255 caractères" + +msgid "DNS label cannot be longer than 63 characters" +msgstr "un libellé de DNS ne peut pas dépasser 63 caractères" + +msgid "invalid domain name" +msgstr "nom de domaine invalide" + +#, python-format +msgid "domain name '%(domain)s' should be normalized to: %(normalized)s" +msgstr "" +"le nom de domaine « %(domain)s » doit être normalisé à : %(normalized)s" + +#, python-format +msgid "invalid domain-name: %s" +msgstr "nom de domaine invalide : %s" + +#, python-format +msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!" +msgstr "" +"version d'adresse IP invalide (est %(value)d, doit être %(required_value)d) !" + +msgid "invalid IP address format" +msgstr "format d'adresse IP invalide" + +#, python-format +msgid "%(port)s is not a valid port" +msgstr "%(port)s n'est pas un port valide" + +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at '%(server)s'" +msgstr "Client %(cver)s incompatible avec le serveur %(sver)s à « %(server)s »" + +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" +msgstr "Erreur %(code)d inconnue renvoyée par %(server)s : %(error)s" + +msgid "an internal error has occurred" +msgstr "une erreur interne est survenue" + +#, python-format +msgid "an internal error has occurred on server at '%(server)s'" +msgstr "une erreur interne est survenue sur le serveur à « %(server)s »" + +#, python-format +msgid "unknown command '%(name)s'" +msgstr "commande « %(name)s » inconnue" + +#, python-format +msgid "error on server '%(server)s': %(error)s" +msgstr "erreur sur le serveur « %(server)s » : %(error)s" + +#, python-format +msgid "cannot connect to '%(uri)s': %(error)s" +msgstr "impossible de se connecter à « %(uri)s » : %(error)s" + +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" +msgstr "Requête JSON-RPC invalide : %(error)s" + +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" +msgstr "erreur de conversion des données lors du transport XML-RPC : %(error)s" + +#, python-format +msgid "Missing or invalid HTTP Referer, %(referer)s" +msgstr "Référence HTTP manquante ou invalide, %(referer)s" + +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" +msgstr "Erreur Kerberos : %(major)s/%(minor)s" + +msgid "did not receive Kerberos credentials" +msgstr "Justificatifs Kerberos non reçus" + +#, python-format +msgid "Service '%(service)s' not found in Kerberos database" +msgstr "Service « %(service)s » introuvable dans la base de données Kerberos" + +msgid "No credentials cache found" +msgstr "Cache des justificatifs d'identité introuvable" + +msgid "Ticket expired" +msgstr "Ticket périmé" + +msgid "Credentials cache permissions incorrect" +msgstr "Droits d'accès incorrects au cache des justificatifs d'identité" + +msgid "Bad format in credentials cache" +msgstr "Mauvais format de cache des justificatifs d'identité" + +msgid "Cannot resolve KDC for requested realm" +msgstr "Impossible de résoudre le KDC pour le domaine demandé" + +msgid "Session error" +msgstr "Erreur de session" + +#, python-format +msgid "Principal %(principal)s cannot be authenticated: %(message)s" +msgstr "Le principal %(principal)s n'a pas pu être authentifié : %(message)s" + +#, python-format +msgid "Insufficient access: %(info)s" +msgstr "Accès insuffisant : %(info)s" + +#, python-format +msgid "command '%(name)s' takes no arguments" +msgstr "la commande « %(name)s » ne prend pas d'argument" + +#, python-format +msgid "command '%(name)s' takes at most %(count)d argument" +msgid_plural "command '%(name)s' takes at most %(count)d arguments" +msgstr[0] "la commande « %(name)s » prend au plus %(count)d argument" +msgstr[1] "la commande « %(name)s » prend au plus %(count)d arguments" + +#, python-format +msgid "overlapping arguments and options: %(names)s" +msgstr "les arguments et options se chevauchent : %(names)s" + +#, python-format +msgid "'%(name)s' is required" +msgstr "« %(name)s » est requis" + +#, python-format +msgid "invalid '%(name)s': %(error)s" +msgstr "« %(name)s » invalide : %(error)s" + +#, python-format +msgid "api has no such namespace: '%(name)s'" +msgstr "l'API n'a pas un tel espace de noms : « %(name)s »" + +msgid "Passwords do not match" +msgstr "Les mots de passe ne correspondent pas" + +msgid "Command not implemented" +msgstr "Commande non implémentée" + +msgid "Client is not configured. Run ipa-client-install." +msgstr "Le client n'est pas configuré. Lancer « ipa-client-install »." + +#, python-format +msgid "Could not get %(name)s interactively" +msgstr "Impossible d'obtenir %(name)s de façon interactive" + +#, python-format +msgid "Command '%(name)s' has been deprecated" +msgstr "La commande « %(name)s » a été abandonnée." + +#, python-format +msgid "Domain '%(domain)s' is not a root domain for forest '%(forest)s'" +msgstr "" +"Le domaine « %(domain)s » n'est pas un domaine racine pour la forêt " +"« %(forest)s »" + +#, python-format +msgid "%(reason)s" +msgstr "%(reason)s" + +msgid "This entry already exists" +msgstr "Cette entrée existe déjà" + +msgid "You must enroll a host in order to create a host service" +msgstr "Vous devez enregistrer un hôte afin de créer un service" #, python-format msgid "" -"The service principal for subject alt name %s in certificate request does " -"not exist" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" msgstr "" -"Le principal du service pour le nom %s alternatif du sujet dans la demande " -"de certificat n'existe pas" +"Le principal de service n'est pas de la forme : service/fully-qualified host " +"name: %(reason)s" + +msgid "" +"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" + +msgid "This command requires root access" +msgstr "Cette commande requiert un accès administrateur" + +msgid "This is already a posix group" +msgstr "Ce groupe est déjà de type POSIX" + +#, python-format +msgid "Principal is not of the form user@REALM: '%(principal)s'" +msgstr "Le principal n'est pas de la forme user@REALM : « %(principal)s »" + +msgid "This entry is already enabled" +msgstr "Cette entrée est déjà activée" + +msgid "This entry is already disabled" +msgstr "Cette entrée est déjà désactivée" + +msgid "This entry cannot be enabled or disabled" +msgstr "Cette entrée ne peut être activée ou désactivée" + +msgid "This entry is not a member" +msgstr "Cette entrée n'est pas un membre" + +msgid "A group may not be a member of itself" +msgstr "Un groupe ne peut être membre de lui-même" + +msgid "This entry is already a member" +msgstr "Cette entrée est déjà membre" + +#, python-format +msgid "Base64 decoding failed: %(reason)s" +msgstr "Échec du décodage « base64 » : %(reason)s" + +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" + +msgid "The default users group cannot be removed" +msgstr "Le groupe par défaut ne peut être supprimé" + +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é." + +msgid "A managed group cannot have a password policy." +msgstr "Un groupe géré ne peut pas avoir de politique de mot de passe." + +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "'%(entry)s' ne possède pas de certificat." + +#, 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à." #, python-format msgid "" -"Insufficient privilege to create a certificate with subject alt name '%s'." +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" msgstr "" -"Privilège insuffisant pour créer un certificat avec le nom de sujet « %s » " -"alternatif." +"Un problème est survenu en vérifiant que tous les membres étaient %(verb)s : " +"%(exc)s" #, python-format -msgid "Principal '%s' in subject alt name does not match requested principal" -msgstr "" -"Le principal « %s » du nom alternatif ne correspond pas au principal demandé" - -msgid "RFC822Name does not match any of user's email addresses" -msgstr "" -"L'attribut RFC822Name ne correspond à aucune des adresses email de " -"l'utilisateur" - -#, python-format -msgid "subject alt name type %s is forbidden for non-user principals" -msgstr "" -"Il est interdit d'utiliser un « subject alt name » (nom alternatif) de type " -"%s pour les principaux autres qu'utilisateurs." - -#, python-format -msgid "Subject alt name type %s is forbidden" -msgstr "Le type %s de nom alternatif de sujet est interdit" - -#, python-format -msgid "CA '%s' is disabled" -msgstr "L'autorité de certification « %s » est désactivée" - -msgid "Revoked" -msgstr "Révoqué" - -msgid "" -"Reason for revoking the certificate (0-10). Type \"ipa help cert\" for " -"revocation reason details. " -msgstr "" -"Raison de la révocation du certificat (1-10). Utilisez « ipa help cert » " -"pour plus d'informations sur les raisons de révocation." - -#, python-format -msgid "Owner %s" -msgstr "%s propriétaire" +msgid "%(attr)s does not contain '%(value)s'" +msgstr "%(attr)s ne contient pas '%(value)s'" #, python-format msgid "" -"Certificate with serial number %(serial)s issued by CA '%(ca)s' not found" +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -"Certificat de l'AC « %(ca)s » avec le numéro de série %(serial)s introuvable" +"Le critère de recherche n'est pas suffisamment précis. Une valeur attendue, " +"mais %(found)d trouvées." -msgid "7 is not a valid revocation reason" -msgstr "7 n'est pas une raison de révocation valide" +msgid "This group already allows external members" +msgstr "Ce groupe autorise déjà des membres externes" + +msgid "This group cannot be posix because it is external" +msgstr "Ce groupe ne peut être de type POSIX car il est externe" + +msgid "This is already a posix group and cannot be converted to external one" +msgstr "" +"Ce groupe est déjà de type POSIX et ne peut être converti en groupe externe" #, python-format -msgid "%(count)d certificate matched" -msgid_plural "%(count)d certificates matched" -msgstr[0] "%(count)d certificat correspondant" -msgstr[1] "%(count)d certificats correspondants" +msgid "Server removal aborted: %(reason)s." +msgstr "Arrêt brutal de la suppression du serveur : %(reason)s." -msgid "Non-Active Directory domain" -msgstr "Domaine autre que Active Directory" +#, python-format +msgid "no command nor help topic '%(topic)s'" +msgstr "pas de commande ou de sujet d'aide pour « %(topic)s »" -msgid "RFC4120-compliant Kerberos realm" -msgstr "Domaine Kerberos conforme à la RFC4120" +msgid "change collided with another change" +msgstr "la modification s'est heurtée à une autre" -msgid "" -"Non-transitive external trust to a domain in another Active Directory forest" +msgid "no modifications to be performed" +msgstr "pas de modification à effectuer" + +#, python-format +msgid "%(desc)s: %(info)s" +msgstr "%(desc)s : %(info)s" + +msgid "limits exceeded for this query" +msgstr "limites dépassées pour cette requête" + +#, python-format +msgid "%(info)s" +msgstr "%(info)s" + +msgid "modifying primary key is not allowed" +msgstr "la modification de clé principale n'est pas autorisée" + +#, python-format +msgid "%(attr)s: Only one value allowed." +msgstr "%(attr)s : une seule valeur autorisée." + +#, python-format +msgid "%(attr)s: Invalid syntax." +msgstr "%(attr)s : syntaxe invalide." + +#, python-format +msgid "Bad search filter %(info)s" +msgstr "Filtre de recherche invalide %(info)s" + +msgid "Not allowed on non-leaf entry" +msgstr "Interdit sur une entrée qui n'est pas une feuille" + +msgid "LDAP timeout" +msgstr "Délai d'expiration LDAP" + +#, python-format +msgid "%(task)s LDAP task timeout, Task DN: '%(task_dn)s'" msgstr "" -"Relation d'approbation externe non transitive vers un domaine dans une autre " -"forêt Active Directory" +"Délai échu pour la tâche LDAP %(task)s, DN de la tâche : « %(task_dn)s »" -msgid "Trusting forest" -msgstr "Forêt en cours de mise en confiance" +msgid "Configured time limit exceeded" +msgstr "Limite configurée de durée dépassée" -msgid "Trusted forest" -msgstr "Forêt de confiance" +msgid "Configured size limit exceeded" +msgstr "Limite configurée de taille dépassée" -msgid "Established and verified" -msgstr "Établie et vérifiée" +msgid "Configured administrative server limit exceeded" +msgstr "Limite configurée côté serveur dépassée" -msgid "Waiting for confirmation by remote side" -msgstr "En attente de confirmation par la partie distante" +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" +msgstr "L'opération de certification ne peut être effectuée : %(error)s" -msgid "Unknown" -msgstr "Inconnu" +#, python-format +msgid "Certificate format error: %(error)s" +msgstr "Erreur de format de certificat : %(error)s" + +msgid "Already registered" +msgstr "Déjà enregistré" + +msgid "Not registered yet" +msgstr "Pas encore enregistré" + +#, python-format +msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it" +msgstr "" +"%(key)s ne peut pas être supprimé car %(label)s %(dependent)s le requiert" #, python-format msgid "" -" Alternatively, following servers are capable of running this command: " -"%(masters)s" +"%(key)s cannot be deleted or disabled because it is the last member of " +"%(label)s %(container)s" msgstr "" -" De manière alternative, les serveurs suivants sont capables d'exécuter " -"cette commande : %(masters)s" - -msgid "AD Trust setup" -msgstr "Configuration de la confiance AD" - -msgid "" -"Cannot perform the selected command without Samba 4 support installed. Make " -"sure you have installed server-trust-ad sub-package of IPA." -msgstr "" -"Impossible d'effectuer la commande sélectionnée sans installation de " -"Samba 4. Assurez-vous de bien avoir installé sur le serveur le paquet IPA " -"« server-trust-ad »." - -msgid "" -"Cannot perform the selected command without Samba 4 instance configured on " -"this machine. Make sure you have run ipa-adtrust-install on this server." -msgstr "" -"Impossible d'effectuer la commande sélectionnée sans configuration de Samba " -"4. Assurez-vous de bien avoir configuré ce serveur avec la commande « ipa-" -"adtrust-install »." - -msgid "" -"Fetching domains from trusted forest failed. See details in the error_log" -msgstr "" -"Échec de la récupération des domaines depuis la forêt approuvée. Voir les " -"informations détaillées dans le journal d'erreur." - -msgid "trust" -msgstr "confiance" - -msgid "trusts" -msgstr "confiances" - -msgid "Trust" -msgstr "Confiance" - -msgid "UPN suffixes" -msgstr "Suffixes UPN" +"%(key)s ne peut être supprimé ou désactivé étant le dernier membre de " +"%(container)s %(label)s" #, python-format -msgid "invalid SID: %(value)s" -msgstr "SID invalide : %(value)s" +msgid "%(label)s %(key)s cannot be deleted/modified: %(reason)s" +msgstr "%(label)s %(key)s ne peut être supprimé ou modifié : %(reason)s" -#, python-brace-format -msgid "Type of trusted domain ID range, one of {vals}" +#, python-format +msgid "%(name)s certificate is not valid" +msgstr "le certificat %(name)s est invalide" + +#, python-format +msgid "Host '%(hostname)s' does not have corresponding DNS A/AAAA record" msgstr "" -"Type de plage d'ID de domaine approuvé, une valeur à prendre parmi {vals}" +"L'hôte « %(hostname)s » n'a pas d'enregistrement DNS de type A/" +"AAAA correspondant" -msgid "External trust" -msgstr "Relation d'approbation externe" - -msgid "" -"Establish external trust to a domain in another forest. The trust is not " -"transitive beyond the domain." +#, python-format +msgid "DNS check failed: Expected {%(expected)s} got {%(got)s}" msgstr "" -"Établit une relation d'approbation externe vers un domaine dans une autre " -"forêt. La relation n'est pas transitive au delà du domaine." +"Échec de vérification du DNS : {%(expected)s} attendu, {%(got)s} obtenu" #, python-format -msgid "Added Active Directory trust for realm \"%(value)s\"" -msgstr "Confiance Active Directory ajoutée pour le royaume « %(value)s »" +msgid "%(exception)s" +msgstr "%(exception)s" -#, python-format -msgid "Re-established trust to domain \"%(value)s\"" -msgstr "Rétablissement de la confiance pour le domaine « %(value)s »" +msgid "Out of memory\n" +msgstr "Mémoire saturée\n" -msgid "missing base_id" -msgstr "« base_id » manquant" +msgid "Warning unrecognized encryption type.\n" +msgstr "Avertissement, type de chiffrement inconnu.\n" -msgid "pysss_murmur is not available on the server and no base-id is given." -msgstr "" -"« pysss_murmur » non disponible sur le serveur et aucun « base-id » fourni." +msgid "Warning unrecognized salt type.\n" +msgstr "Avertissement, type « salt » inconnu.\n" -msgid "trust type" -msgstr "type de confiance" +msgid "Out of memory!?\n" +msgstr "Mémoire saturée !?\n" -msgid "only \"ad\" is supported" -msgstr "seul « ad » est pris en charge" +msgid "Enctype comparison failed!\n" +msgstr "Échec de comparaison du « enctype » !\n" -msgid "" -"Cannot establish a trust to AD deployed in the same domain as IPA. Such " -"setup is not supported." -msgstr "" -"Impossible d'établir une relation d'approbation vers un AD déployé dans le " -"même domaine que IPA. Une telle configuration ne peut être prise en charge." +msgid "Failed to create random key!\n" +msgstr "Échec de création d'une clé aléatoire !\n" -msgid "Realm-domain mismatch" -msgstr "Incohérence domaine-royaume" +msgid "Failed to create key!\n" +msgstr "Échec de création de la clé !\n" -msgid "" -"To establish trust with Active Directory, the domain name and the realm name " -"of the IPA server must match" -msgstr "" -"Pour établir la confiance avec Active Directory, le nom de domaine et le nom " -"de royaume du serveur IPA doivent correspondre" - -#, python-format -msgid "" -"Trusted domain %(domain)s is included among IPA realm domains. It needs to " -"be removed prior to establishing the trust. See the \"ipa realmdomains-mod --" -"del-domain\" command." -msgstr "" -"Le domaine approuvé %(domain)s est inclus parmi les royaumes de domaines " -"IPA. Il doit être retiré de manière préalable à l'établissement de la " -"relation d'approbation. Cf. la commande « ipa realmdomains-mod --del-" -"domain »." - -msgid "Trusted domain and administrator account use different realms" -msgstr "" -"Le domaine approuvé et le compte administrateur utilisent des domaines " -"différents" - -msgid "Realm administrator password should be specified" -msgstr "Le mot de passe de l'administrateur du domaine doit être indiqué" - -msgid "id range type" -msgstr "type de plage d'id" - -msgid "" -"Only the ipa-ad-trust and ipa-ad-trust-posix are allowed values for --range-" -"type when adding an AD trust." -msgstr "" -"Seules les valeurs « ipa-ad-trust » et « ipa-ad-trust-posix » sont " -"autorisées pour « --range-type » lors de l'ajout d'une relation de confiance " -"AD." - -msgid "id range" -msgstr "plage id" - -msgid "" -"An id range already exists for this trust. You should either delete the old " -"range, or exclude --base-id/--range-size options from the command." -msgstr "" -"Une plage d'identifiants existe déjà pour cette relation de confiance. Vous " -"devez soit supprimer l'ancienne plage, soit exclure les options « --base-" -"id » ou « --range-size » de la commande." - -msgid "range exists" -msgstr "la plage existe" - -msgid "" -"ID range with the same name but different domain SID already exists. The ID " -"range for the new trusted domain must be created manually." -msgstr "" -"Une plage d'ID avec le même nom, mais pour un SID de domaine différent " -"existe déjà. La plage d'ID pour le nouveau domaine approuvé doit être créée " -"manuellement." - -msgid "range type change" -msgstr "modifier le type de plage" - -msgid "" -"ID range for the trusted domain already exists, but it has a different type. " -"Please remove the old range manually, or do not enforce type via --range-" -"type option." -msgstr "" -"La plage ID existe déjà pour ce domaine approuvé, mais est d'un type " -"différent. Vous devez soit supprimer l'ancienne plage manuellement, soit ne " -"pas forcer le type via l'option « --range-type »." - -#, python-format -msgid "Unable to resolve domain controller for '%s' domain. " -msgstr "Impossible de résoudre le contrôleur de domaine du domaine « %s »." - -msgid "" -"Forward policy is defined for it in IPA DNS, perhaps forwarder points to " -"incorrect host?" -msgstr "" -"La politique de redirection est définie pour lui dans le DNS d'IPA, peut-" -"être le redirecteur pointe-t'il vers un hôte incorrect ?" - -#, python-format -msgid "" -"IPA manages DNS, please verify your DNS configuration and make sure that " -"service records of the '%(domain)s' domain can be resolved. Examples how to " -"configure DNS with CLI commands or the Web UI can be found in the " -"documentation. " -msgstr "" -"IPA administre les DNS, merci de vérifier votre configuration DNS et de vous " -"assurer que les enregistrement de service du domaine « %(domain)s » peuvent " -"être résolus. La documentation apporte des exemples sur la manière de " -"configurer DNS à l'aide de commandes en ligne ou avec l'interface web." - -#, python-format -msgid "" -"Since IPA does not manage DNS records, ensure DNS is configured to resolve " -"'%(domain)s' domain from IPA hosts and back." -msgstr "" -"Puisque IPA ne gère pas les enregistrements DNS, s'assurer que les DNS sont " -"bien configurés pour résoudre le domaine « %(domain)s » depuis les serveurs " -"IPA, en résolution directe et inverse." - -msgid "Unable to verify write permissions to the AD" -msgstr "Impossible de vérifier les permissions en écriture vers AD" - -msgid "Not enough arguments specified to perform trust setup" -msgstr "Arguments insuffisants pour établir la relation de confiance" - -#, python-format -msgid "Deleted trust \"%(value)s\"" -msgstr "Confiance « %(value)s » supprimée" - -msgid "" -"\n" -" Modify a trust (for future use).\n" -"\n" -" Currently only the default option to modify the LDAP attributes is\n" -" available. More specific options will be added in coming releases.\n" -" " -msgstr "" -"\n" -" Modifier la confiance (pour utilisation future).\n" -"\n" -" Actuellement seule l'option par défaut pour modifier les attributs LDAP\n" -" est disponible. D'autres options particulières seront ajoutées\n" -" dans les versions à venir.\n" -" " - -#, python-format -msgid "Modified trust \"%(value)s\" (change will be effective in 60 seconds)" -msgstr "" -"Relation de confiance « %(value)s » modifiée (la modification sera effective " -"dans 60 secondes)" - -#, python-format -msgid "%(count)d trust matched" -msgid_plural "%(count)d trusts matched" -msgstr[0] "%(count)d confiance correspondante" -msgstr[1] "%(count)d confiances correspondantes" - -msgid "trust configuration" -msgstr "configuration des relations d'approbation" - -msgid "Global Trust Configuration" -msgstr "Configuration globale des relations d'approbation" - -msgid "IPA AD trust agents" -msgstr "Agents IPA de relation d'approbation AD" - -msgid "IPA servers configured as AD trust agents" -msgstr "Serveurs IPA configurés comme agents de relation d'approbation AD" - -msgid "IPA AD trust controllers" -msgstr "Contrôleurs IPA de relation d'approbation AD" - -msgid "IPA servers configured as AD trust controllers" -msgstr "Serveurs IPA configurés comme contrôleurs de relation d'approbation AD" - -msgid "unsupported trust type" -msgstr "type de relation de confiance non pris en charge" - -#, python-format -msgid "Modified \"%(value)s\" trust configuration" -msgstr "Configuration de la relation de confiance « %(value)s » modifiée." - -msgid "SID" -msgstr "SID" - -msgid "sidgen_was_run" -msgstr "« sidgen_was_run »" - -msgid "" -"This command relies on the existence of the \"editors\" group, but this " -"group was not found." -msgstr "" -"Cette commande s'appuie sur l'existence du groupe « editors », mais ce " -"groupe n'a pas été trouvé." - -msgid "trust domain" -msgstr "domaine approuvé" - -msgid "trust domains" -msgstr "domaines approuvés" - -msgid "Trusted domains" -msgstr "domaines approuvés" - -msgid "Trusted domain" -msgstr "domaine approuvé" - -msgid "Domain enabled" -msgstr "Domaine activé" - -#, python-format -msgid "Removed information about the trusted domain \"%(value)s\"" -msgstr "Informations sur le domaine approuvé « %(value)s » supprimées" - -msgid "" -"cannot delete root domain of the trust, use trust-del to delete the trust " -"itself" -msgstr "" -"impossible de supprimer le domaine racine de la relation de confiance, " -"utiliser la commande « trust-del » pour supprimer la relation de confiance" - -msgid "" -"List of trust domains successfully refreshed. Use trustdomain-find command " -"to list them." -msgstr "" -"Liste des domaines approuvés rafraîchie avec succès. Utiliser la commande " -"« trustdomain-find » pour les énumérer." - -#, python-format -msgid "Enabled trust domain \"%(value)s\"" -msgstr "Activation du domaine approuvé « %(value)s »" - -msgid "Root domain of the trust is always enabled for the existing trust" -msgstr "" -"Le domaine racine de la relation de confiance est toujours activé pour la " -"confiance existante" - -#, python-format -msgid "Disabled trust domain \"%(value)s\"" -msgstr "domaine approuvé « %(value)s » désactivé" - -msgid "" -"cannot disable root domain of the trust, use trust-del to delete the trust " -"itself" -msgstr "" -"impossible de désactiver le domaine racine de la relation de confiance, " -"utiliser la commande « trust-del » pour supprimer la relation de confiance " -"elle-même" - -msgid "configuration options" -msgstr "options de configuration" - -msgid "Configuration" -msgstr "Configuration" - -msgid "IPA masters" -msgstr "Maîtres IPA" - -msgid "List of all IPA masters" -msgstr "Liste des maîtres IPA" - -msgid "IPA CA servers" -msgstr "Serveurs d'AC IPA" - -msgid "IPA servers configured as certificate authority" -msgstr "Serveurs IPA configurés comme autorité de certification" - -msgid "IPA NTP servers" -msgstr "Serveurs NTP IPA" - -msgid "IPA servers with enabled NTP" -msgstr "Serveurs IPA où NTP est activé" - -msgid "IPA CA renewal master" -msgstr "Maître de renouvellement d'AC IPA" - -msgid "Renewal master for IPA certificate authority" -msgstr "Maître en charge du renouvellement de l'autorité de certification" - -msgid "The group doesn't exist" -msgstr "Le groupe n'existe pas" - -#, python-format -msgid "attribute \"%s\" not allowed" -msgstr "attribut « %s » interdit" - -msgid "May not be empty" -msgstr "Ne peut pas être vide" - -#, python-format -msgid "%(obj)s default attribute %(attr)s would not be allowed!" -msgstr "L'attribut par défaut %(attr)s de %(obj)s n'est pas autorisé !" - -msgid "A list of SELinux users delimited by $ expected" -msgstr "Est attendue une liste des utilisateurs SELinux, délimités par des $" - -#, python-format -msgid "SELinux user '%(user)s' is not valid: %(error)s" -msgstr "L'utilisateur SELinux « %(user)s » n'est pas valide : %(error)s" - -msgid "SELinux user map default user not in order list" -msgstr "" -"L'utilisateur par défaut de la mappe utilisateur SELinux n'est pas dans la " -"liste d'ordre" - -msgid "" -"\n" -"Stageusers\n" -"\n" -"Manage stage user entries.\n" -"\n" -"Stage user entries are directly under the container: \"cn=stage users,\n" -"cn=accounts, cn=provisioning, SUFFIX\".\n" -"Users can not authenticate with those entries (even if the entries\n" -"contain credentials). Those entries are only candidate to become Active " -"entries.\n" -"\n" -"Active user entries are Posix users directly under the container: " -"\"cn=accounts, SUFFIX\".\n" -"Users can authenticate with Active entries, at the condition they have\n" -"credentials.\n" -"\n" -"Deleted user entries are Posix users directly under the container: " -"\"cn=deleted users,\n" -"cn=accounts, cn=provisioning, SUFFIX\".\n" -"Users can not authenticate with those entries, even if the entries contain " -"credentials.\n" -"\n" -"The stage user container contains entries:\n" -" - created by 'stageuser-add' commands that are Posix users,\n" -" - created by external provisioning system.\n" -"\n" -"A valid stage user entry MUST have:\n" -" - entry RDN is 'uid',\n" -" - ipaUniqueID is 'autogenerate'.\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" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new stageuser:\n" -" ipa stageuser-add --first=Tim --last=User --password tuser1\n" -"\n" -" Add a stageuser from the deleted users container:\n" -" ipa stageuser-add --first=Tim --last=User --from-delete tuser1\n" -"\n" -msgstr "" -"\n" -"Utilisateurs en attente\n" -"\n" -"Gestion des entrées des utilisateurs en attente (« stage users »).\n" -"\n" -"Les entrées des utilisateurs en attente sont situées directement dans le \n" -"conteneur « cn=stage users, cn=accounts, cn=provisioning, SUFFIXE x.\n" -"Les utilisateurs ne peuvent utiliser ces entrées pour s'authentifier (même\n" -"si les entrées contiennent des données d'authentification) et ne sont que\n" -"candidates à devenir des entrées actives.\n" -"\n" -"Les entrées d'utilisateurs actifs sont des utilisateurs Posix situées dans " -"le \n" -"conteneur « cn=accounts, SUFFIXE ». Les utilisateurs peuvent les utiliser " -"pour \n" -"s'authentifier à la condition qu'elles comportent des données " -"d'authentification.\n" -"\n" -"Les entrées d'utilisateurs supprimés sont des entrées d'utilisateurs Posix " -"situées\n" -"dans le conteneur « cn=deleted users, cn=accounts, cn=provisioning, " -"SUFFIXE ».\n" -"Un utilisateur ne peut s'authentifier à l'aide de ces entrées , même si " -"elles contiennent\n" -"des données d'authentification valides.\n" -"\n" -"Le conteneur d'entrées utilisateurs en attente contient des entrées :\n" -" - créées par les commandes « stageuser-add », qui sont des utilisateurs " -"Posix,\n" -" - créées par des systèmes d'approvisionnement externes.\n" -"\n" -"Un utilisateur en attente valide DOIT posséder les propriétés suivantes :\n" -" - le RDN de l'entrée est « uid »\n" -" - l'attribut « ipaUniqueID » est « autogenerate »\n" -"\n" -"IPA prend en charge une grande variété de formats de noms d'utilisateurs, " -"mais\n" -"il est important de savoir que des restrictions peuvent s'appliquer dans un " -"environnement\n" -"particulier. Ainsi, les noms d'utilisateurs débutant par un chiffre ou ceux " -"excédant une \n" -"certaine taille peuvent poser problème sur certains systèmes UNIX.\n" -"Utiliser la commande « ipa config-mod » pour modifier le format autorisé par " -"les outils IPA.\n" -"\n" -"\n" -"EXEMPLES :\n" -"\n" -" Ajouter un nouvel utilisateur en attente :\n" -" ipa stageuser-add --first=Tim --last=User --password tuser1\n" -"\n" -" Ajouter un utilisateur en attente depuis le conteneur des utilisateurs " -"supprimés :\n" -" ipa stageuser-add --first=Tim --last=User --from-delete tuser1\n" - -msgid "Stage Users" -msgstr "Mettre en attente les utilisateurs" - -msgid "Stage User" -msgstr "Mettre en attente l'utilisateur" - -msgid "stage user" -msgstr "utilis" - -msgid "stage users" -msgstr "utilisateurs en attente" - -#, python-format -msgid "Added stage user \"%(value)s\"" -msgstr "Utilisateur en attente « %(value)s » ajouté" - -msgid "givenname is required" -msgstr "givenname est requis" - -msgid "sn is required" -msgstr "sn est requis" - -#, python-format -msgid "Deleted stage user \"%(value)s\"" -msgstr "Utilisateur en attente « %(value)s » supprimé" - -#, python-format -msgid "Modified stage user \"%(value)s\"" -msgstr "Utilisateur en attente « %(value)s » modifié" - -#, python-format -msgid "Activate a stage user \"%(value)s\"" -msgstr "Activer un utilisateur en attente « %(value)s »" - -msgid "Entry RDN is not 'uid'" -msgstr "Le RDN de l'entrée n'est pas l'attribut « uid »" - -#, python-format -msgid "Entry has no '%(attribute)s'" -msgstr "L'entrée ne possède aucun attribut « %(attribute)s »" - -#, python-format -msgid "active user with name \"%(user)s\" already exists" -msgstr "L'utilisateur actif nommé « %(user)s » existe déjà" - -#, python-format -msgid "Stage user %s activated" -msgstr "Utilisateur en attente %s activé" - -msgid "Request must be a dict" -msgstr "La requête doit être un dictionnaire" - -msgid "Request is missing \"method\"" -msgstr "Il manque le paramètre « method » à la requête" - -msgid "Request is missing \"params\"" -msgstr "Il manque le paramètre « params » à la requête" - -msgid "params must be a list" -msgstr "« params » doit être une liste" - -msgid "params must contain [args, options]" -msgstr "« params » doit contenir [args, options]" - -msgid "params[0] (aka args) must be a list" -msgstr "« params[0] » (alias « args ») doit être une liste" - -msgid "params[1] (aka options) must be a dict" -msgstr "« params[1] » (alias « options ») doit être un dictionnaire " - -#, python-format -msgid "Unable to communicate with CMS (status %d)" -msgstr "Impossible de communiquer avec le CMS (état %d)" +msgid "Bad or unsupported salt type.\n" +msgstr "Type « salt » non-conforme ou non pris en compte.\n" diff --git a/po/hi.po b/po/hi.po index dc1954222..6d7c889ec 100644 --- a/po/hi.po +++ b/po/hi.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -14,6 +14,29 @@ msgstr "" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +#, c-format +msgid "Passwords do not match!" +msgstr "पासवर्ड मेल नहीं खाते" + +msgid "A list of LDAP entries" +msgstr "LDAP प्रविष्टियों की सूची" + +msgid "All commands should at least have a result" +msgstr "सभी आदेशों का कम से कम परिणाम होना चाहिए" + +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "सत्यापित करने के लिए फिर से %(label)s दर्ज करें:" + +msgid "incorrect type" +msgstr "गलत प्रकार" + +msgid "Only one value is allowed" +msgstr "केवल एक मान की अनुमति है" + +msgid "must be True or False" +msgstr "सही या गलत होना चाहिए" + msgid "an internal error has occurred" msgstr "एक आंतरिक त्रुटि हुई है" @@ -50,26 +73,3 @@ msgstr "एक समूह खुद के ही सदस्य नहीं #, python-format msgid "Base64 decoding failed: %(reason)s" msgstr "बेस६४ डिकोडिंग विफल: %(reason)s" - -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "सत्यापित करने के लिए फिर से %(label)s दर्ज करें:" - -#, c-format -msgid "Passwords do not match!" -msgstr "पासवर्ड मेल नहीं खाते" - -msgid "incorrect type" -msgstr "गलत प्रकार" - -msgid "Only one value is allowed" -msgstr "केवल एक मान की अनुमति है" - -msgid "must be True or False" -msgstr "सही या गलत होना चाहिए" - -msgid "A list of LDAP entries" -msgstr "LDAP प्रविष्टियों की सूची" - -msgid "All commands should at least have a result" -msgstr "सभी आदेशों का कम से कम परिणाम होना चाहिए" diff --git a/po/hu.po b/po/hu.po index 8cb3bc5ba..e43fa2e49 100644 --- a/po/hu.po +++ b/po/hu.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -14,6 +14,126 @@ msgstr "" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +msgid "Description" +msgstr "Leírás" + +msgid "GID" +msgstr "GID" + +msgid "Max lifetime (days)" +msgstr "Élettartam legfeljebb (nap)" + +msgid "Maximum password lifetime (in days)" +msgstr "Jelszó maximális élettartama (nap)" + +msgid "Min lifetime (hours)" +msgstr "Minimális élettartam (óra)" + +msgid "Minimum password lifetime (in hours)" +msgstr "Jelszó minimális élettartama (óra)" + +msgid "Password history size" +msgstr "Megőrzött jelszavak (darab)" + +msgid "Character classes" +msgstr "Karakterosztályok" + +msgid "Rule name" +msgstr "Szabály neve" + +msgid "Permissions" +msgstr "Jogosultságok" + +msgid "User group" +msgstr "Felhasználói csport" + +msgid "Certificate" +msgstr "Tanúsítvány" + +msgid "Services" +msgstr "Szolgáltatások" + +msgid "Service Groups" +msgstr "Szolgáltatás-csoportok" + +msgid "Service name" +msgstr "Szolgáltatás neve" + +msgid "Service group name" +msgstr "Szolgáltatás-csoport neve" + +msgid "HBAC service group description" +msgstr "HBAC szolgáltatás-csoport leírása" + +msgid "Default shell" +msgstr "Alapértelmezett shell" + +msgid "Default users group" +msgstr "Alapértelmezett csoport" + +msgid "LDAP URI" +msgstr "LDAP URI" + +msgid "Subject" +msgstr "Tárgy" + +msgid "Reason" +msgstr "Ok" + +msgid "Serial number" +msgstr "Sorozatszám" + +msgid "Request id" +msgstr "Igénylés azonosítója" + +msgid "GID (use this option to set it manually)" +msgstr "GID (kézzel történő beállításhoz)" + +msgid "change to a POSIX group" +msgstr "POSIX-csoportra módosít" + +msgid "Zone name (FQDN)" +msgstr "Zóna neve (FQDN)" + +msgid "SOA serial" +msgstr "SOA sorozatszám" + +msgid "Issuer" +msgstr "Kibocsátó" + +msgid "Not Before" +msgstr "Érvényesség kezdete" + +msgid "Not After" +msgstr "Érvényesség vége" + +msgid "Fingerprint (SHA1)" +msgstr "Ujjlenyomat (SHA1)" + +msgid "Revocation reason" +msgstr "Visszavonás oka" + +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "A %(value)s szolgáltatás hozzáadva" + +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "A %(value)s szolgáltatás eltávolítva" + +#, python-format +msgid "Group '%s' does not exist" +msgstr "A '%s' csoport nem létezik" + +msgid "Request status" +msgstr "Igénylés állapota" + +msgid "Revoked" +msgstr "Visszavont" + +msgid "A list of LDAP entries" +msgstr "LDAP-bejegyzések listája" + msgid "Passwords do not match" msgstr "A jelszavak nem egyeznek meg" @@ -36,123 +156,3 @@ msgstr "Az alapértelmezett csoport nem távolítható el" #, python-format msgid "Certificate format error: %(error)s" msgstr "Tanúsítványhiba: %(error)s" - -msgid "A list of LDAP entries" -msgstr "LDAP-bejegyzések listája" - -msgid "Certificate" -msgstr "Tanúsítvány" - -msgid "Rule name" -msgstr "Szabály neve" - -msgid "Description" -msgstr "Leírás" - -msgid "Permissions" -msgstr "Jogosultságok" - -msgid "Service group name" -msgstr "Szolgáltatás-csoport neve" - -msgid "HBAC service group description" -msgstr "HBAC szolgáltatás-csoport leírása" - -msgid "User group" -msgstr "Felhasználói csport" - -msgid "Service name" -msgstr "Szolgáltatás neve" - -msgid "LDAP URI" -msgstr "LDAP URI" - -msgid "Max lifetime (days)" -msgstr "Élettartam legfeljebb (nap)" - -msgid "Maximum password lifetime (in days)" -msgstr "Jelszó maximális élettartama (nap)" - -msgid "Min lifetime (hours)" -msgstr "Minimális élettartam (óra)" - -msgid "Minimum password lifetime (in hours)" -msgstr "Jelszó minimális élettartama (óra)" - -msgid "Password history size" -msgstr "Megőrzött jelszavak (darab)" - -msgid "Character classes" -msgstr "Karakterosztályok" - -msgid "GID" -msgstr "GID" - -msgid "GID (use this option to set it manually)" -msgstr "GID (kézzel történő beállításhoz)" - -msgid "change to a POSIX group" -msgstr "POSIX-csoportra módosít" - -msgid "Zone name (FQDN)" -msgstr "Zóna neve (FQDN)" - -msgid "SOA serial" -msgstr "SOA sorozatszám" - -msgid "Services" -msgstr "Szolgáltatások" - -msgid "Service Groups" -msgstr "Szolgáltatás-csoportok" - -msgid "Serial number" -msgstr "Sorozatszám" - -msgid "Reason" -msgstr "Ok" - -msgid "Request id" -msgstr "Igénylés azonosítója" - -msgid "Default shell" -msgstr "Alapértelmezett shell" - -msgid "Default users group" -msgstr "Alapértelmezett csoport" - -msgid "Subject" -msgstr "Tárgy" - -msgid "Revocation reason" -msgstr "Visszavonás oka" - -msgid "Issuer" -msgstr "Kibocsátó" - -msgid "Not Before" -msgstr "Érvényesség kezdete" - -msgid "Not After" -msgstr "Érvényesség vége" - -msgid "Fingerprint (SHA1)" -msgstr "Ujjlenyomat (SHA1)" - -#, python-format -msgid "Added service \"%(value)s\"" -msgstr "A %(value)s szolgáltatás hozzáadva" - -#, python-format -msgid "Deleted service \"%(value)s\"" -msgstr "A %(value)s szolgáltatás eltávolítva" - -#, python-format -msgid "Group '%s' does not exist" -msgstr "A '%s' csoport nem létezik" - -msgid "Request status" -msgstr "Igénylés állapota" - -msgid "Revoked" -msgstr "Visszavont" diff --git a/po/id.po b/po/id.po index aea9db8fe..d76707a1a 100644 --- a/po/id.po +++ b/po/id.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -14,6 +14,116 @@ msgstr "" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=1; plural=0\n" +#, c-format +msgid "Passwords do not match!" +msgstr "Kata sandi tidak cocok!" + +msgid "priority cannot be set on global policy" +msgstr "prioritas tidak dapat ditetapkan pada kebijakan global" + +#, python-format +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "%(count)d pengguna sesuai" + +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" + +#, python-format +msgid "Group '%s' does not exist" +msgstr "Grup '%s' tidak ada" + +#, python-format +msgid "ACI with name \"%s\" not found" +msgstr "ACI dengan nama \"%s\" tidak ditemukan" + +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "ACI \"%(value)s\" telah dibuat" + +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "ACI \"%(value)s\" telah dihapus" + +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "ACI \"%(value)s\" telah dimodifikasi" + +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "%(count)d ACI sesuai" + +#, python-format +msgid "Added host \"%(value)s\"" +msgstr "Host \"%(value)s\" telah ditambahkan" + +#, python-format +msgid "Deleted host \"%(value)s\"" +msgstr "Host \"%(value)s\" telah dihapus" + +#, python-format +msgid "Modified host \"%(value)s\"" +msgstr "Host \"%(value)s\" telah dimodifikasi" + +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "%(count)d host sesuai" + +#, python-format +msgid "Added hostgroup \"%(value)s\"" +msgstr "hostgroup \"%(value)s\" telah ditambahkan" + +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" +msgstr "hostgroup \"%(value)s\" telah dihapus" + +#, python-format +msgid "Modified hostgroup \"%(value)s\"" +msgstr "hostgroup \"%(value)s\" telah dimodifikasi" + +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "%(count)d hostgroup sesuai" + +#, python-format +msgid "Added user \"%(value)s\"" +msgstr "Pengguna \"%(value)s\" telah ditambahkan" + +#, python-format +msgid "Deleted user \"%(value)s\"" +msgstr "Pengguna \"%(value)s\" telah dihapus" + +#, python-format +msgid "Modified user \"%(value)s\"" +msgstr "Pengguna \"%(value)s\" telah dimodifikasi" + +#, python-format +msgid "Added group \"%(value)s\"" +msgstr "Grup \"%(value)s\" telah ditambahkan" + +#, python-format +msgid "Deleted group \"%(value)s\"" +msgstr "Grup \"%(value)s\" telah dihapus" + +#, python-format +msgid "Modified group \"%(value)s\"" +msgstr "Grup \"%(value)s\" telah dimodifikasi" + +#, python-format +msgid "%(count)d group matched" +msgid_plural "%(count)d groups matched" +msgstr[0] "%(count)d grup sesuai" + +msgid "Results are truncated, try a more specific search" +msgstr "Hasil yang terpotong, coba cari dengan lebih spesifik" + #, python-format msgid "%(count)d variables" msgstr "%(count)d variabel" @@ -23,6 +133,71 @@ msgid "%(count)d plugin loaded" msgid_plural "%(count)d plugins loaded" msgstr[0] "%(count)d pengaya telah dimuat" +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "Masukkan %(label)s lagi untuk verifikasi:" + +msgid "incorrect type" +msgstr "type salah" + +msgid "Only one value is allowed" +msgstr "Hanya satu nilai yang diperbolehkan" + +msgid "must be True or False" +msgstr "harus True atau False" + +msgid "must be an integer" +msgstr "harus merupakan bilangan bulat" + +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "setidaknya harus %(minvalue)d" + +#, python-format +msgid "can be at most %(maxvalue)d" +msgstr "nilai maksimum yang diperbolehkan %(maxvalue)d" + +msgid "must be a decimal number" +msgstr "harus merupakan angka desimal" + +#, python-format +msgid "must match pattern \"%(pattern)s\"" +msgstr "harus cocok dengan pola \"%(pattern)s\"" + +msgid "must be binary data" +msgstr "harus merupakan data binari" + +#, python-format +msgid "must be at least %(minlength)d bytes" +msgstr "panjang minimum yang diperbolehkan %(minlength)d byte" + +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "panjang maksimum yang diperbolehkan %(maxlength)d byte" + +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "harus tepat %(length)d byte" + +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" +msgstr "Gagal mengurai Permintaan Penandatanganan Sertifikat: %s" + +msgid "must be Unicode text" +msgstr "harus teks Unicode" + +#, python-format +msgid "must be at least %(minlength)d characters" +msgstr "setidaknya minimum harus %(minlength)d karakter" + +#, python-format +msgid "can be at most %(maxlength)d characters" +msgstr "panjang maksimum yang diperbolehkan %(maxlength)d karakter" + +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "harus tepat %(length)d karakter" + #, python-format msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "kesalahan %(code)d tidak dikenal dari %(server)s: %(error)s" @@ -90,178 +265,3 @@ msgstr "%(info)s" #, python-format msgid "Certificate operation cannot be completed: %(error)s" msgstr "Operasi sertifikat tidak dapat diselesaikan: %(error)s" - -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "Masukkan %(label)s lagi untuk verifikasi:" - -#, c-format -msgid "Passwords do not match!" -msgstr "Kata sandi tidak cocok!" - -msgid "Results are truncated, try a more specific search" -msgstr "Hasil yang terpotong, coba cari dengan lebih spesifik" - -msgid "incorrect type" -msgstr "type salah" - -msgid "Only one value is allowed" -msgstr "Hanya satu nilai yang diperbolehkan" - -msgid "must be True or False" -msgstr "harus True atau False" - -msgid "must be an integer" -msgstr "harus merupakan bilangan bulat" - -#, python-format -msgid "must be at least %(minvalue)d" -msgstr "setidaknya harus %(minvalue)d" - -#, python-format -msgid "can be at most %(maxvalue)d" -msgstr "nilai maksimum yang diperbolehkan %(maxvalue)d" - -msgid "must be a decimal number" -msgstr "harus merupakan angka desimal" - -#, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "harus cocok dengan pola \"%(pattern)s\"" - -msgid "must be binary data" -msgstr "harus merupakan data binari" - -#, python-format -msgid "must be at least %(minlength)d bytes" -msgstr "panjang minimum yang diperbolehkan %(minlength)d byte" - -#, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "panjang maksimum yang diperbolehkan %(maxlength)d byte" - -#, python-format -msgid "must be exactly %(length)d bytes" -msgstr "harus tepat %(length)d byte" - -msgid "must be Unicode text" -msgstr "harus teks Unicode" - -#, python-format -msgid "must be at least %(minlength)d characters" -msgstr "setidaknya minimum harus %(minlength)d karakter" - -#, python-format -msgid "can be at most %(maxlength)d characters" -msgstr "panjang maksimum yang diperbolehkan %(maxlength)d karakter" - -#, python-format -msgid "must be exactly %(length)d characters" -msgstr "harus tepat %(length)d karakter" - -#, python-format -msgid "Added host \"%(value)s\"" -msgstr "Host \"%(value)s\" telah ditambahkan" - -#, python-format -msgid "Deleted host \"%(value)s\"" -msgstr "Host \"%(value)s\" telah dihapus" - -#, python-format -msgid "Modified host \"%(value)s\"" -msgstr "Host \"%(value)s\" telah dimodifikasi" - -#, python-format -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "%(count)d host sesuai" - -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" - -#, python-format -msgid "Group '%s' does not exist" -msgstr "Grup '%s' tidak ada" - -#, python-format -msgid "ACI with name \"%s\" not found" -msgstr "ACI dengan nama \"%s\" tidak ditemukan" - -#, python-format -msgid "Created ACI \"%(value)s\"" -msgstr "ACI \"%(value)s\" telah dibuat" - -#, python-format -msgid "Deleted ACI \"%(value)s\"" -msgstr "ACI \"%(value)s\" telah dihapus" - -#, python-format -msgid "Modified ACI \"%(value)s\"" -msgstr "ACI \"%(value)s\" telah dimodifikasi" - -#, python-format -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "%(count)d ACI sesuai" - -msgid "priority cannot be set on global policy" -msgstr "prioritas tidak dapat ditetapkan pada kebijakan global" - -#, python-format -msgid "Added user \"%(value)s\"" -msgstr "Pengguna \"%(value)s\" telah ditambahkan" - -#, python-format -msgid "Deleted user \"%(value)s\"" -msgstr "Pengguna \"%(value)s\" telah dihapus" - -#, python-format -msgid "Modified user \"%(value)s\"" -msgstr "Pengguna \"%(value)s\" telah dimodifikasi" - -#, python-format -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "%(count)d pengguna sesuai" - -#, python-format -msgid "Added group \"%(value)s\"" -msgstr "Grup \"%(value)s\" telah ditambahkan" - -#, python-format -msgid "Deleted group \"%(value)s\"" -msgstr "Grup \"%(value)s\" telah dihapus" - -#, python-format -msgid "Modified group \"%(value)s\"" -msgstr "Grup \"%(value)s\" telah dimodifikasi" - -#, python-format -msgid "%(count)d group matched" -msgid_plural "%(count)d groups matched" -msgstr[0] "%(count)d grup sesuai" - -#, python-format -msgid "Added hostgroup \"%(value)s\"" -msgstr "hostgroup \"%(value)s\" telah ditambahkan" - -#, python-format -msgid "Deleted hostgroup \"%(value)s\"" -msgstr "hostgroup \"%(value)s\" telah dihapus" - -#, python-format -msgid "Modified hostgroup \"%(value)s\"" -msgstr "hostgroup \"%(value)s\" telah dimodifikasi" - -#, python-format -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "%(count)d hostgroup sesuai" - -#, python-format -msgid "Failure decoding Certificate Signing Request: %s" -msgstr "Gagal mengurai Permintaan Penandatanganan Sertifikat: %s" diff --git a/po/ja.po b/po/ja.po index 6843ed327..93ca0e6b3 100644 --- a/po/ja.po +++ b/po/ja.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -14,121 +14,81 @@ msgstr "" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=1; plural=0\n" -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" -msgstr "%(server)s から未知のエラー %(code)d: %(error)s" - -msgid "an internal error has occurred" -msgstr "内部エラーが発生しました" - -#, python-format -msgid "Invalid JSON-RPC request: %(error)s" -msgstr "無効な JSON-RPC リクエスト: %(error)s" - -#, python-format -msgid "Kerberos error: %(major)s/%(minor)s" -msgstr "Kerberos エラー: %(major)s/%(minor)s" - -msgid "Passwords do not match" -msgstr "パスワードが違います" - -msgid "Command not implemented" -msgstr "コマンドが実装されていません" - -#, python-format -msgid "%(reason)s" -msgstr "%(reason)s" - -msgid "This entry already exists" -msgstr "このエントリーはすでに存在します" - -#, python-format -msgid "Base64 decoding failed: %(reason)s" -msgstr "Base64 形式のデコードに失敗: %(reason)s" - -#, python-format -msgid "%(desc)s: %(info)s" -msgstr "%(desc)s: %(info)s" - -#, python-format -msgid "%(info)s" -msgstr "%(info)s" - -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "確認のため再び %(label)s を入力してください: " - #, c-format msgid "Passwords do not match!" msgstr "パスワードが違います。" -msgid "must be an integer" -msgstr "整数である必要があります" +msgid "hosts" +msgstr "ホスト" -#, python-format -msgid "must be at least %(minvalue)d" -msgstr "少なくとも %(minvalue)d である必要があります" +msgid "Add a new role." +msgstr "新しい役割を追加します。" -#, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "パターン \"%(pattern)s\" が一致する必要があります" +msgid "Delete a role." +msgstr "役割を削除します。" -msgid "must be binary data" -msgstr "バイナリーデータである必要があります" +msgid "Search for roles." +msgstr "役割を検索します。" -#, python-format -msgid "must be at least %(minlength)d bytes" -msgstr "少なくとも %(minlength)d バイトである必要があります" +msgid "Modify a role." +msgstr "役割を変更します。" -#, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "大きくても %(maxlength)d バイトである必要があります" +msgid "Display information about a role." +msgstr "役割に関する情報を表示します。" -#, python-format -msgid "must be exactly %(length)d bytes" -msgstr "ちょうど %(length)d バイトである必要があります" +msgid "user" +msgstr "ユーザー" -msgid "must be Unicode text" -msgstr "Unicode テキストである必要があります" - -#, python-format -msgid "must be at least %(minlength)d characters" -msgstr "少なくとも %(minlength)d 文字である必要があります" - -#, python-format -msgid "must be exactly %(length)d characters" -msgstr "ちょうど %(length)d 文字である必要があります" - -msgid "invalid SSH public key" -msgstr "無効な SSH 公開鍵" - -#, python-format -msgid "invalid domain-name: %s" -msgstr "無効なドメイン名: %s" +msgid "group" +msgstr "グループ" msgid "host" msgstr "ホスト" +msgid "host group" +msgstr "ホストグループ" + msgid "Permissions" msgstr "権限" -msgid "Filter" -msgstr "フィルター" +msgid "User group" +msgstr "ユーザーグループ" -msgid "Add a new host." -msgstr "新しいホストを追加します。" +msgid "Create a new HBAC rule." +msgstr "新しい HBAC ルールを作成します。" -msgid "IP Address" -msgstr "IP アドレス" +msgid "Delete an HBAC rule." +msgstr "HBAC ルールを削除します。" -msgid "Delete a host." -msgstr "ホストを削除します。" +msgid "Disable an HBAC rule." +msgstr "HBAC ルールを無効化します。" -msgid "Search for hosts." -msgstr "ホストを検索します。" +msgid "Enable an HBAC rule." +msgstr "HBAC ルールを有効化します。" -msgid "host group" -msgstr "ホストグループ" +msgid "Search for HBAC rules." +msgstr "HBAC ルールを検索します。" + +msgid "Modify an HBAC rule." +msgstr "HBAC ルールを変更します。" + +msgid "Display the properties of an HBAC rule." +msgstr "HBAC ルールのプロパティーを表示します。" + +msgid "Add a new HBAC service." +msgstr "新しい HBAC サービスを追加します。" + +msgid "Delete an existing HBAC service." +msgstr "既存の HBAC サービスを削除します。" + +msgid "Search for HBAC services." +msgstr "HBAC サービスを検索します。" + +msgid "Modify an HBAC service." +msgstr "HBAC サービスを変更します。" + +msgid "Display information about an HBAC service." +msgstr "HBAC サービスに関する情報を表示します。" msgid "role" msgstr "役割" @@ -136,9 +96,6 @@ msgstr "役割" msgid "sudo rule" msgstr "sudo ルール" -msgid "user" -msgstr "ユーザー" - msgid "Add a new HBAC service group." msgstr "新しい HBAC サービスグループを追加します。" @@ -163,29 +120,23 @@ msgstr "HBAC サービスグループに関する情報を表示します。" msgid "ACI name" msgstr "ACI 名" -msgid "User group" -msgstr "ユーザーグループ" - msgid "Member of a group" msgstr "グループのメンバー" -msgid "Add a new HBAC service." -msgstr "新しい HBAC サービスを追加します。" +msgid "Filter" +msgstr "フィルター" -msgid "Delete an existing HBAC service." -msgstr "既存の HBAC サービスを削除します。" +msgid "Add a new host." +msgstr "新しいホストを追加します。" -msgid "Search for HBAC services." -msgstr "HBAC サービスを検索します。" +msgid "IP Address" +msgstr "IP アドレス" -msgid "Modify an HBAC service." -msgstr "HBAC サービスを変更します。" +msgid "Delete a host." +msgstr "ホストを削除します。" -msgid "Display information about an HBAC service." -msgstr "HBAC サービスに関する情報を表示します。" - -msgid "Sudo Command" -msgstr "sudo コマンド" +msgid "Search for hosts." +msgstr "ホストを検索します。" msgid "Add a new user." msgstr "新しいユーザーを追加します。" @@ -199,9 +150,6 @@ msgstr "ユーザーアカウントを無効化します。" msgid "Enable a user account." msgstr "ユーザーアカウントを有効化します。" -msgid "group" -msgstr "グループ" - msgid "Modify a user." msgstr "ユーザーを変更します。" @@ -217,20 +165,8 @@ msgstr "グループを検索します。" msgid "Modify a group." msgstr "グループを変更します。" -msgid "Add a new role." -msgstr "新しい役割を追加します。" - -msgid "Delete a role." -msgstr "役割を削除します。" - -msgid "Search for roles." -msgstr "役割を検索します。" - -msgid "Modify a role." -msgstr "役割を変更します。" - -msgid "Display information about a role." -msgstr "役割に関する情報を表示します。" +msgid "Sudo Command" +msgstr "sudo コマンド" msgid "Port" msgstr "ポート" @@ -241,35 +177,38 @@ msgstr "フィンガープリント" msgid "Text Data" msgstr "テキストデータ" -msgid "Create a new HBAC rule." -msgstr "新しい HBAC ルールを作成します。" +msgid "roles" +msgstr "役割" -msgid "Delete an HBAC rule." -msgstr "HBAC ルールを削除します。" +msgid "password policy" +msgstr "パスワードポリシー" -msgid "Disable an HBAC rule." -msgstr "HBAC ルールを無効化します。" +msgid "password policies" +msgstr "パスワードポリシー" -msgid "Enable an HBAC rule." -msgstr "HBAC ルールを有効化します。" +msgid "Password Policies" +msgstr "パスワードポリシー" -msgid "Search for HBAC rules." -msgstr "HBAC ルールを検索します。" +msgid "sudo rules" +msgstr "sudo ルール" -msgid "Modify an HBAC rule." -msgstr "HBAC ルールを変更します。" +msgid "Sudo Rules" +msgstr "sudo ルール" -msgid "Display the properties of an HBAC rule." -msgstr "HBAC ルールのプロパティーを表示します。" +msgid "Sudo Rule" +msgstr "sudo ルール" -msgid "hosts" -msgstr "ホスト" +msgid "users" +msgstr "ユーザー" -msgid "Out of memory\n" -msgstr "メモリー不足\n" +msgid "Fingerprint (SHA1)" +msgstr "フィンガープリント (SHA1)" -msgid "Out of memory!?\n" -msgstr "メモリー不足!?\n" +msgid "HBAC services" +msgstr "HBAC サービス" + +msgid "HBAC Service" +msgstr "HBAC サービス" msgid "Refresh" msgstr "更新" @@ -356,24 +295,6 @@ msgstr "アカウント" msgid "Account Status" msgstr "アカウント状態" -msgid "roles" -msgstr "役割" - -msgid "Fingerprint (SHA1)" -msgstr "フィンガープリント (SHA1)" - -msgid "sudo rules" -msgstr "sudo ルール" - -msgid "Sudo Rules" -msgstr "sudo ルール" - -msgid "Sudo Rule" -msgstr "sudo ルール" - -msgid "users" -msgstr "ユーザー" - msgid "HBAC service group" msgstr "HBAC サービスグループ" @@ -407,11 +328,17 @@ msgstr "名前 \"%s\" の ACI が見つかりませんでした" msgid "ACIs" msgstr "ACI" -msgid "HBAC services" -msgstr "HBAC サービス" +msgid "host groups" +msgstr "ホストグループ" -msgid "HBAC Service" -msgstr "HBAC サービス" +msgid "Host Group" +msgstr "ホストグループ" + +msgid "groups" +msgstr "グループ" + +msgid "User Group" +msgstr "ユーザーグループ" msgid "sudo command" msgstr "sudo コマンド" @@ -422,27 +349,6 @@ msgstr "sudo コマンド" msgid "Sudo Commands" msgstr "sudo コマンド" -msgid "password policy" -msgstr "パスワードポリシー" - -msgid "password policies" -msgstr "パスワードポリシー" - -msgid "Password Policies" -msgstr "パスワードポリシー" - -msgid "groups" -msgstr "グループ" - -msgid "User Group" -msgstr "ユーザーグループ" - -msgid "host groups" -msgstr "ホストグループ" - -msgid "Host Group" -msgstr "ホストグループ" - #, python-format msgid "%s record" msgstr "%s レコード" @@ -450,3 +356,97 @@ msgstr "%s レコード" #, python-format msgid "%s Record" msgstr "%s レコード" + +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "確認のため再び %(label)s を入力してください: " + +msgid "must be an integer" +msgstr "整数である必要があります" + +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "少なくとも %(minvalue)d である必要があります" + +#, python-format +msgid "must match pattern \"%(pattern)s\"" +msgstr "パターン \"%(pattern)s\" が一致する必要があります" + +msgid "must be binary data" +msgstr "バイナリーデータである必要があります" + +#, python-format +msgid "must be at least %(minlength)d bytes" +msgstr "少なくとも %(minlength)d バイトである必要があります" + +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "大きくても %(maxlength)d バイトである必要があります" + +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "ちょうど %(length)d バイトである必要があります" + +msgid "must be Unicode text" +msgstr "Unicode テキストである必要があります" + +#, python-format +msgid "must be at least %(minlength)d characters" +msgstr "少なくとも %(minlength)d 文字である必要があります" + +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "ちょうど %(length)d 文字である必要があります" + +msgid "invalid SSH public key" +msgstr "無効な SSH 公開鍵" + +#, python-format +msgid "invalid domain-name: %s" +msgstr "無効なドメイン名: %s" + +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" +msgstr "%(server)s から未知のエラー %(code)d: %(error)s" + +msgid "an internal error has occurred" +msgstr "内部エラーが発生しました" + +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" +msgstr "無効な JSON-RPC リクエスト: %(error)s" + +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" +msgstr "Kerberos エラー: %(major)s/%(minor)s" + +msgid "Passwords do not match" +msgstr "パスワードが違います" + +msgid "Command not implemented" +msgstr "コマンドが実装されていません" + +#, python-format +msgid "%(reason)s" +msgstr "%(reason)s" + +msgid "This entry already exists" +msgstr "このエントリーはすでに存在します" + +#, python-format +msgid "Base64 decoding failed: %(reason)s" +msgstr "Base64 形式のデコードに失敗: %(reason)s" + +#, python-format +msgid "%(desc)s: %(info)s" +msgstr "%(desc)s: %(info)s" + +#, python-format +msgid "%(info)s" +msgstr "%(info)s" + +msgid "Out of memory\n" +msgstr "メモリー不足\n" + +msgid "Out of memory!?\n" +msgstr "メモリー不足!?\n" diff --git a/po/kn.po b/po/kn.po index d4403a992..41f66bf11 100644 --- a/po/kn.po +++ b/po/kn.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -14,10 +14,584 @@ msgstr "" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=2; plural=(n!=1)\n" +#, c-format +msgid "Passwords do not match!" +msgstr "ಗುಪ್ತಪದಗಳು ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತಿಲ್ಲ!" + +msgid "Failed members" +msgstr "ವಿಫಲಗೊಂಡ ಸದಸ್ಯರು" + +msgid "User name" +msgstr "ಬಳಕೆದಾರನ ಹೆಸರು" + +msgid "Manage ticket policy for specific user" +msgstr "ನಿಗದಿತ ಬಳಕೆದಾರನಿಗೆ ಟಿಕೆಟ್ ಪಾಲಿಸಿಯನ್ನು ನಿರ್ವಹಿಸು" + +msgid "Max life" +msgstr "ಗರಿಷ್ಟ ಜೀವಿತಾವಧಿ" + +msgid "Max renew" +msgstr "ಗರಿಷ್ಟ ನವೀಕರಣ" + +msgid "Description" +msgstr "ವಿವರಣೆ" + +msgid "Group name" +msgstr "ಗುಂಪಿನ ಹೆಸರು" + +msgid "GID" +msgstr "GID" + +msgid "User login" +msgstr "ಬಳಕೆದಾರನ ಪ್ರವೇಶ" + +msgid "UID" +msgstr "UID" + +msgid "Login shell" +msgstr "ಪ್ರವೇಶ ಶೆಲ್" + +msgid "Group" +msgstr "ಗುಂಪು" + +msgid "Max lifetime (days)" +msgstr "ಗರಿಷ್ಟ ಜೀವಿತಾವಧಿ (ದಿನಗಳು)" + +msgid "Maximum password lifetime (in days)" +msgstr "ಗುಪ್ತಪದದ ಗರಿಷ್ಟ ಜೀವಿತಾವಧಿ (ದಿನಗಳಲ್ಲಿ)" + +msgid "Min lifetime (hours)" +msgstr "ಕನಿಷ್ಟ ಜೀವಿತಾವಧಿ (ಘಂಟೆಗಳು)" + +msgid "Minimum password lifetime (in hours)" +msgstr "ಗುಪ್ತಪದದ ಕನಿಷ್ಟ ಜೀವಿತಾವಧಿ (ಘಂಟೆಗಳಲ್ಲಿ)" + +msgid "History size" +msgstr "ಇತಿಹಾಸದ ಗಾತ್ರ" + +msgid "Password history size" +msgstr "ಗುಪ್ತಪದ ಇತಿಹಾಸದ ಗಾತ್ರ" + +msgid "Character classes" +msgstr "ಕ್ಯಾರೆಕ್ಟರ್ ಕ್ಲಾಸ್‌ಗಳು" + +msgid "Minimum number of character classes" +msgstr "ಕನಿಷ್ಟ ಸಂಖ್ಯೆಯ ಕ್ಯಾರಕ್ಟರ್ ಕ್ಲಾಸ್‌ಗಳು" + +msgid "Min length" +msgstr "ಕನಿಷ್ಟ ಉದ್ದ" + +msgid "Minimum length of password" +msgstr "ಗುಪ್ತಪದದ ಕನಿಷ್ಟ ಉದ್ದ" + +msgid "Priority" +msgstr "ಆದ್ಯತೆ" + +msgid "User" +msgstr "ಬಳಕೆದಾರ" + +msgid "Rule name" +msgstr "ನಿಯಮದ ಹೆಸರು" + +msgid "User category" +msgstr "ಬಳಕೆದಾರನ ವರ್ಗ" + +msgid "User category the rule applies to" +msgstr "ನಿಯಮ ಅನ್ವಯಿಸುವಂತಹ ಬಳಕೆದಾರನ ವರ್ಗ" + +msgid "Host category" +msgstr "ಹೋಸ್ಟ್ ವರ್ಗ" + +msgid "Host category the rule applies to" +msgstr "ನಿಯಮ ಅನ್ವಯಿಸುವಂತಹ ಹೋಸ್ಟ್ ವರ್ಗ" + +msgid "Users" +msgstr "ಬಳಕೆದಾರರು" + +msgid "User Groups" +msgstr "ಬಳಕೆದಾರರ ಗುಂಪುಗಳು" + +msgid "Hosts" +msgstr "ಹೋಸ್ಟ್‌ಗಳು" + +msgid "Host Groups" +msgstr "ಹೋಸ್ಟ್ ಗುಂಪುಗಳು" + +msgid "External host" +msgstr "ಹೊರಗಿನ ಹೋಸ್ಟ್" + +msgid "A description of this role-group" +msgstr "ಈ ರೋಲ್-ಗ್ರೂಪ್‌ನ ವಿವರಣೆ" + +msgid "Member users" +msgstr "ಸದಸ್ಯ ಬಳಕೆದಾರರು" + +msgid "Member groups" +msgstr "ಸದಸ್ಯ ಗುಂಪುಗಳು" + +msgid "Member hosts" +msgstr "ಸದಸ್ಯ ಹೋಸ್ಟ್‌ಗಳು" + +msgid "Member host-groups" +msgstr "ಸದಸ್ಯ ಹೋಸ್ಟ್-ಗ್ರೂಪ್‌ಗಳು" + +msgid "Netgroup name" +msgstr "ನೆಟ್‌ಗ್ರೂಪ್ ಹೆಸರು" + +msgid "Netgroup description" +msgstr "ನೆಟ್‌ಗ್ರೂಪ್ ವಿವರಣೆ" + +msgid "NIS domain name" +msgstr "NIS ಡೊಮೇನ್ ಹೆಸರು" + +msgid "Permissions" +msgstr "ಅನುಮತಿಗಳು" + +msgid "Attributes" +msgstr "ವೈಶಿಷ್ಟ್ಯಗಳು" + +msgid "User group" +msgstr "ಬಳಕೆದಾರ ಗುಂಪು" + +msgid "User group ACI grants access to" +msgstr "User group ACI grants access to" + +msgid "Principal" +msgstr "Principal" + +msgid "Service principal" +msgstr "Service principal" + +msgid "Certificate" +msgstr "ಪ್ರಮಾಣಪತ್ರ" + +msgid "Base-64 encoded server certificate" +msgstr "Base-64 ಎನ್‌ಕೋಡೆಡ್ ಸರ್ವರ್ ಪ್ರಮಾಣಪತ್ರ" + +msgid "Services" +msgstr "ಸೇವೆಗಳು(ಸರ್ವೀಸಸ್)" + +msgid "Service name" +msgstr "ಸೇವೆಯ ಹೆಸರು" + +msgid "First name" +msgstr "ಮೊದಲ ಹೆಸರು" + +msgid "Last name" +msgstr "ಕೊನೆಯ ಹೆಸರು" + +msgid "Kerberos principal" +msgstr "Kerberos principal" + +msgid "Email address" +msgstr "ಇಮೇಲ್ ವಿಳಾಸ" + +msgid "Password" +msgstr "ಗುಪ್ತಪದ" + +msgid "Street address" +msgstr "ಕೇರಿ ವಿಳಾಸ" + +msgid "Class" +msgstr "ವರ್ಗ" + +msgid "Type" +msgstr "ಬಗೆ" + +msgid "Key" +msgstr "ಕೀ" + +msgid "Subtree" +msgstr "ಉಪವೃಕ್ಷ" + +msgid "Target group" +msgstr "Target ಗುಂಪು" + +msgid "ACI name" +msgstr "ACI ಹೆಸರು" + +msgid "Member of" +msgstr "ಸದಸ್ಯ" + +msgid "Member of a group" +msgstr "ಒಂದು ಗುಂಪಿನ ಸದಸ್ಯ" + +msgid "Filter" +msgstr "ಶೋಧಕ (ಫಿಲ್ಟರ್)" + +msgid "Legal LDAP filter (e.g. ou=Engineering)" +msgstr "Legal LDAP filter (e.g. ou=Engineering)" + +msgid "Subtree to apply ACI to" +msgstr "Subtree to apply ACI to" + +msgid "Group to apply ACI to" +msgstr "Group to apply ACI to" + +msgid "Host name" +msgstr "ಹೋಸ್ಟ್ ಹೆಸರು" + +msgid "A description of this host" +msgstr "ಈ ಹೋಸ್ಟ್‌ನ ವಿವರಣೆ" + +msgid "Locality" +msgstr "ಪ್ರದೇಶ" + +msgid "Host locality (e.g. \"Baltimore, MD\")" +msgstr "ಹೋಸ್ಟ್ ತಾಣ (e.g. \"Baltimore, MD\")" + +msgid "Location" +msgstr "ಸ್ಥಳ" + +msgid "Host location (e.g. \"Lab 2\")" +msgstr "ಹೋಸ್ಟ್ ತಾಣ (e.g. \"Lab 2\")" + +msgid "Platform" +msgstr "ಪ್ಲಾಟ್‌ಫಾರ್ಮ್" + +msgid "Host hardware platform (e.g. \"Lenovo T61\")" +msgstr "ಹೋಸ್ಟ್ ಹಾರ್ಡ್‌ವೇರ್ ಪ್ಲ್ಯಾಟ್‌ಫಾರ್ಮ್ (e.g. \"Lenovo T61\")" + +msgid "Operating system" +msgstr "ಕಾರ್ಯಕಾರಿ ವ್ಯವಸ್ಥೆ" + +msgid "Host operating system and version (e.g. \"Fedora 9\")" +msgstr "ಹೋಸ್ಟ್ ಕಾರ್ಯಕಾರಿ ವ್ಯವಸ್ಥೆ ಮತ್ತು ಆವೃತ್ತಿ (e.g. \"Fedora 9\")" + +msgid "User password" +msgstr "ಬಳಕೆದಾರನ ಗುಪ್ತಪದ" + +msgid "Password used in bulk enrollment" +msgstr "ದೊಡ್ಡ ಪ್ರಮಾಣದ ದಾಖಲಾತಿಯಲ್ಲಿ ಬಳಸಲಾದ ಗುಪ್ತಪದ" + +msgid "Principal name" +msgstr "Principal ಹೆಸರು" + +msgid "Member of host-groups" +msgstr "ಹೋಸ್ಟ್-ಗುಂಪಿನ ಸದಸ್ಯ" + +msgid "Kerberos principal name for this host" +msgstr "ಈ ಹೋಸ್ಟ್‌ಗೆ Kerberos principalನ ಹೆಸರು" + +msgid "Host-group" +msgstr "ಹೋಸ್ಟ್-ಗುಂಪು" + +msgid "Name of host-group" +msgstr "ಹೋಸ್ಟ್-ಗುಂಪಿನ ಹೆಸರು" + +msgid "A description of this host-group" +msgstr "ಈ ಹೋಸ್ಟ್-ಗ್ರೂಪ್‌ನ ವಿವರಣೆ" + +msgid "Home directory base" +msgstr "ಹೋಮ್ ಡೈರೆಕ್ಟರೀ ಮೂಲ" + +msgid "Default shell" +msgstr "ಡೀಫಾಲ್ಟ್ ಶೆಲ್" + +msgid "Default users group" +msgstr "ಡಿಫಾಲ್ಟ್ ಬಳಕೆದಾರರ ಗುಂಪು" + +msgid "Search time limit" +msgstr "ಹುಡುಕು ಸಮಯ ಮಿತಿ" + +msgid "Search size limit" +msgstr "ಹುಡುಕು ಗಾತ್ರ ಮಿತಿ" + +msgid "User search fields" +msgstr "ಬಳಕೆದಾರನ ಶೋಧ ಫೀಲ್ಡ್‌ಗಳು" + +msgid "Certificate Subject base" +msgstr "ಪ್ರಮಾಣಪತ್ರದ ವಿಷಯ ಮೂಲ" + +msgid "LDAP URI" +msgstr "LDAP URI" + +msgid "LDAP URI of DS server to migrate from" +msgstr "LDAP URI of DS server to migrate from" + +msgid "Bind DN" +msgstr "ಬೈಂಡ್ DN" + +msgid "User container" +msgstr "ಬಳಕೆದಾರನ ಕಂಟೇನರ್" + +msgid "Group container" +msgstr "ಗುಂಪಿನ ಕಂಟೇನರ್" + +msgid "Group description" +msgstr "ಗುಂಪಿನ ವಿವರಣೆ" + +msgid "Mount information" +msgstr "ಮೌಂಟ್ ಮಾಹಿತಿ" + +msgid "description" +msgstr "ವಿವರಣೆ" + +msgid "Map" +msgstr "ನಕ್ಷೆ" + +msgid "Mount point" +msgstr "ಮೌಂಟ್ ಪಾಯಂಟ್" + +msgid "Parent map" +msgstr "Parent map" + +msgid "Subject" +msgstr "ವಿಷಯ" + +msgid "Reason" +msgstr "ಕಾರಣ" + +msgid "Reason for revoking the certificate (0-10)" +msgstr "ಪ್ರಮಾಣಪತ್ರವನ್ನು (0-10) ರದ್ದು ಮಾಡಲು ಕಾರಣ" + +msgid "Serial number" +msgstr "ಅನುಕ್ರಮ ಸಂಖ್ಯೆ" + +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +msgstr "ಕ್ರಮ ಸಂಖ್ಯೆ ಡೆಸಿಮಲ್‌ನಲ್ಲಿ ಅಥವಾ 0x ಮೊದಲು ಸೇರಿಸಿದ್ದಲ್ಲಿ ಹೆಕ್ಸಾಡೆಸಿಮಲ್‌ನಲ್ಲಿ" + +msgid "automatically add the principal if it doesn't exist" +msgstr "ಸ್ವಯಂಚಾಲಿತವಾಗಿ principal ಸೇರಿಸಿ ಅದು ಅಸ್ತಿತ್ವದಲ್ಲಿ ಇಲ್ಲದಿದ್ದಲ್ಲಿ" + +msgid "Request id" +msgstr "ಬೇಡಿಕೆ ID" + +msgid "GID (use this option to set it manually)" +msgstr "GID (ಇದನ್ನು ಮ್ಯಾನ್ಯೂವಲ್ ಆಗಿ ಸೆಟ್ ಮಾಡಲು ಈ ಆಯ್ಕೆಯನ್ನು ಬಳಸಿ)" + +msgid "Zone name" +msgstr "ವಲಯದ ಹೆಸರು" + +msgid "Zone name (FQDN)" +msgstr "ವಲಯದ ಹೆಸರು (FQDN)" + +msgid "Time to live" +msgstr "ಉಳಿದಿರಬೇಕಾದ ಸಮಯ" + +msgid "SOA serial" +msgstr "SOA serial" + +msgid "SOA refresh" +msgstr "SOA refresh" + +msgid "SOA retry" +msgstr "SOA retry" + +msgid "SOA expire" +msgstr "SOA expire" + +msgid "SOA minimum" +msgstr "SOA minimum" + +msgid "BIND update policy" +msgstr "BIND update policy" + +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +msgstr "ಈ ಪ್ರಮಾಣಪತ್ರಕ್ಕಾಗಿ Service principal (e.g. HTTP/test.example.com)" + +msgid "SOA class" +msgstr "SOA class" + +msgid "Data" +msgstr "ದತ್ತಾಂಶ" + +msgid "Unrevoked" +msgstr "ರದ್ದು ಮಾಡಲಾಗಿಲ್ಲ" + +msgid "Error" +msgstr "ದೋಷ" + +msgid "priority cannot be set on global policy" +msgstr "ಗ್ಲೋಬಲ್ ಪಾಲಿಸಿಯಲ್ಲಿ ಆದ್ಯತೆಯನ್ನು ಸೆಟ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ" + +msgid "Netgroups" +msgstr "ನೆಟ್‌ಗ್ರೂಪ್‌ಗಳು" + +msgid "Revocation reason" +msgstr "ರದ್ದು ಮಾಡುವುದಕ್ಕೆ ಕಾರಣ" + +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "\"%(value)s\" ಸೇವೆ(ಸರ್ವೀಸ್)ಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ" + +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "\"%(value)s\" ಸೇವೆ(ಸರ್ವೀಸ್)ಯನ್ನು ಅಳಿಸಲಾಗಿದೆ" + +msgid "Access time" +msgstr "ಪ್ರವೇಶದ ಸಮಯ" + +msgid "Groups" +msgstr "ಗುಂಪುಗಳು" + +msgid "DNS" +msgstr "DNS" + +msgid "type, filter, subtree and targetgroup are mutually exclusive" +msgstr " ಬಗೆ, ಫಿಲ್ಟರ್, ಸಬ್‌ಟ್ರೀ ಮತ್ತು ಟಾರ್ಗೆಟ್‌ಗ್ರೂಪ್ ಗಳು ಪರಸ್ಪರ ಪ್ರತ್ಯೇಕ" + +msgid "" +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" +msgstr "" +"ಕನಿಷ್ಟ ಒಂದು : ಬಗೆ, ಫಿಲ್ಟರ್, ಸಬ್‌ಟ್ರೀ, ಟಾರ್ಗೆಟ್‌ಗ್ರೂಪ್, attrs ಅಥವಾ memberof ಗಳ ಅಗತ್ಯವಿದೆ" + +#, python-format +msgid "Group '%s' does not exist" +msgstr " '%s' ಗುಂಪು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ" + +#, python-format +msgid "ACI with name \"%s\" not found" +msgstr "\"%s\" ಹೆಸರು ಹೊಂದಿರುವ ACI ಪತ್ತೆಯಾಗಿಲ್ಲ" + +msgid "ACIs" +msgstr "ACIs" + +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "\"%(value)s\" ACIವನ್ನು ರಚಿಸಲಾಗಿದೆ" + +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "\"%(value)s\" ACIವನ್ನು ಅಳಿಸಲಾಗಿದೆ" + +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "\"%(value)s\" ACIವನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" + +#, python-format +msgid "Added host \"%(value)s\"" +msgstr "\"%(value)s\" ಹೋಸ್ಟನ್ನು ಸೇರಿಸಲಾಗಿದೆ" + +#, python-format +msgid "Deleted host \"%(value)s\"" +msgstr "\"%(value)s\" ಹೋಸ್ಟನ್ನು ಅಳಿಸಲಾಗಿದೆ" + +#, python-format +msgid "Modified host \"%(value)s\"" +msgstr "\"%(value)s\" ಹೋಸ್ಟನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" + +#, python-format +msgid "Added hostgroup \"%(value)s\"" +msgstr "\"%(value)s\" ಹೋಸ್ಟ್‌ಗ್ರೂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ" + +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" +msgstr "\"%(value)s\" ಹೋಸ್ಟ್‌ಗ್ರೂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ" + +#, python-format +msgid "Modified hostgroup \"%(value)s\"" +msgstr "\"%(value)s\" ಹೋಸ್ಟ್‌ಗ್ರೂಪನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" + +#, python-format +msgid "Added user \"%(value)s\"" +msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಸೇರಿಸಲಾಗಿದೆ" + +#, python-format +msgid "Deleted user \"%(value)s\"" +msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಅಳಿಸಲಾಗಿದೆ" + +#, python-format +msgid "Modified user \"%(value)s\"" +msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" + +msgid "Automount Maps" +msgstr "ಮ್ಯಾಪ್‌ಗಳ ಆಟೋಮೌಂಟ್" + +msgid "Automount Keys" +msgstr "ಕೀಗಳ ಆಟೋಮೌಂಟ್" + +msgid "Request status" +msgstr "ಬೇಡಿಕೆ ಸ್ಥಿತಿ" + +msgid "Revoked" +msgstr "ರದ್ದು ಮಾಡಲಾಗಿದೆ" + +#, python-format +msgid "Added group \"%(value)s\"" +msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ" + +#, python-format +msgid "Deleted group \"%(value)s\"" +msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ" + +#, python-format +msgid "Modified group \"%(value)s\"" +msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" + +msgid "Results are truncated, try a more specific search" +msgstr "ಫಲಿತಾಂಶಗಳು ಕತ್ತರಿಸಲ್ಪಟ್ಟಿವೆ, ಹೆಚ್ಚ್ಹು ನಿರ್ದಿಷ್ಟವಾದ ಶೋಧನೆ ಪ್ರಯತ್ನಿಸಿ" + #, python-format msgid "%(count)d variables" msgstr "%(count)d ವೇರಿಯೇಬಲ್‌ಗಳು" +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "ಮತ್ತೊಮ್ಮೆ ಪರಿಶೀಲಿಸಲು %(label)s ಎಂಟರ್ ಮಾಡಿ:" + +msgid "incorrect type" +msgstr "ಸರಿಯಲ್ಲದ ಬಗೆ" + +msgid "Only one value is allowed" +msgstr "ಕೇವಲ ಒಂದು ಬೆಲೆ ಮಾತ್ರ ಅನುಮೋದಿಸಲಾಗಿದೆ" + +msgid "must be True or False" +msgstr "ನಿಜ (True) ಅಥವಾ ಸುಳ್ಳು (False) ಆಗಿರಲೇಬೇಕು" + +msgid "must be an integer" +msgstr "ಇನ್ಟೀಜರ್ ಆಗಿರಲೇಬೇಕು" + +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "ಕನಿಷ್ಠವಾಗಿ %(minvalue)d ಆಗಿರಲೇಬೇಕು" + +#, python-format +msgid "can be at most %(maxvalue)d" +msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxvalue)d ಆಗಿರಬಹುದು" + +msgid "must be a decimal number" +msgstr "ದಶಾಂಶ ಸಂಖ್ಯೆ ಆಗಿರಲೇಬೇಕು" + +#, python-format +msgid "must match pattern \"%(pattern)s\"" +msgstr "ನಮೂನೆ \"%(pattern)s\" ಹೊಂದಾಣಿಕೆಯಾಗಲೇಬೇಕು" + +msgid "must be binary data" +msgstr "ಬೈನರಿ ಡಾಟಾ ಆಗಿರಲೇಬೇಕು" + +#, python-format +msgid "must be at least %(minlength)d bytes" +msgstr "ಕನಿಷ್ಠವಾಗಿ %(minlength)d ಬೈಟ್ಸ್ ಆಗಿರಲೇಬೇಕು" + +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxlength)d ಬೈಟ್ಸ್ ಆಗಿರಬಹುದು" + +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "ನಿಖರವಾಗಿ %(length)d ಬೈಟ್ಸ್ ಆಗಿರಲೇಬೇಕು" + +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" +msgstr "ಪ್ರಮಾಣಪತ್ರದ ಸಹಿಯ ಕೋರಿಕೆಯ ಡಿಕೋಡಿಂಗ್‌ನ ವಿಫಲತೆ: %s" + +msgid "must be Unicode text" +msgstr "ಯುನಿಕೋಡ್ ಪಠ್ಯ ಆಗಿರಲೇಬೇಕು" + +#, python-format +msgid "must be at least %(minlength)d characters" +msgstr "ಕನಿಷ್ಠವಾಗಿ %(minlength)d ಅಕ್ಷರಗಳು ಇರಲೇಬೇಕು" + +#, python-format +msgid "can be at most %(maxlength)d characters" +msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxlength)d ಅಕ್ಷರಗಳು ಇರಬಹುದು" + +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "ನಿಖರವಾಗಿ %(length)d ಅಕ್ಷರಗಳು ಇರಲೇಬೇಕು" + #, python-format msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "%(server)s ಸರ್ವರ್‌ನಿಂದ ಅಜ್ಞಾತ ದೋಷ %(code)d: %(error)s" @@ -119,577 +693,3 @@ msgstr "%(info)s" #, python-format msgid "Certificate operation cannot be completed: %(error)s" msgstr "ಪ್ರಮಾಣಪತ್ರದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಆಗುತ್ತಿಲ್ಲ: %(error)s" - -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "ಮತ್ತೊಮ್ಮೆ ಪರಿಶೀಲಿಸಲು %(label)s ಎಂಟರ್ ಮಾಡಿ:" - -#, c-format -msgid "Passwords do not match!" -msgstr "ಗುಪ್ತಪದಗಳು ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತಿಲ್ಲ!" - -msgid "Results are truncated, try a more specific search" -msgstr "ಫಲಿತಾಂಶಗಳು ಕತ್ತರಿಸಲ್ಪಟ್ಟಿವೆ, ಹೆಚ್ಚ್ಹು ನಿರ್ದಿಷ್ಟವಾದ ಶೋಧನೆ ಪ್ರಯತ್ನಿಸಿ" - -msgid "incorrect type" -msgstr "ಸರಿಯಲ್ಲದ ಬಗೆ" - -msgid "Only one value is allowed" -msgstr "ಕೇವಲ ಒಂದು ಬೆಲೆ ಮಾತ್ರ ಅನುಮೋದಿಸಲಾಗಿದೆ" - -msgid "must be True or False" -msgstr "ನಿಜ (True) ಅಥವಾ ಸುಳ್ಳು (False) ಆಗಿರಲೇಬೇಕು" - -msgid "must be an integer" -msgstr "ಇನ್ಟೀಜರ್ ಆಗಿರಲೇಬೇಕು" - -#, python-format -msgid "must be at least %(minvalue)d" -msgstr "ಕನಿಷ್ಠವಾಗಿ %(minvalue)d ಆಗಿರಲೇಬೇಕು" - -#, python-format -msgid "can be at most %(maxvalue)d" -msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxvalue)d ಆಗಿರಬಹುದು" - -msgid "must be a decimal number" -msgstr "ದಶಾಂಶ ಸಂಖ್ಯೆ ಆಗಿರಲೇಬೇಕು" - -#, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "ನಮೂನೆ \"%(pattern)s\" ಹೊಂದಾಣಿಕೆಯಾಗಲೇಬೇಕು" - -msgid "must be binary data" -msgstr "ಬೈನರಿ ಡಾಟಾ ಆಗಿರಲೇಬೇಕು" - -#, python-format -msgid "must be at least %(minlength)d bytes" -msgstr "ಕನಿಷ್ಠವಾಗಿ %(minlength)d ಬೈಟ್ಸ್ ಆಗಿರಲೇಬೇಕು" - -#, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxlength)d ಬೈಟ್ಸ್ ಆಗಿರಬಹುದು" - -#, python-format -msgid "must be exactly %(length)d bytes" -msgstr "ನಿಖರವಾಗಿ %(length)d ಬೈಟ್ಸ್ ಆಗಿರಲೇಬೇಕು" - -msgid "must be Unicode text" -msgstr "ಯುನಿಕೋಡ್ ಪಠ್ಯ ಆಗಿರಲೇಬೇಕು" - -#, python-format -msgid "must be at least %(minlength)d characters" -msgstr "ಕನಿಷ್ಠವಾಗಿ %(minlength)d ಅಕ್ಷರಗಳು ಇರಲೇಬೇಕು" - -#, python-format -msgid "can be at most %(maxlength)d characters" -msgstr "ಗರಿಷ್ಠವಾಗಿ %(maxlength)d ಅಕ್ಷರಗಳು ಇರಬಹುದು" - -#, python-format -msgid "must be exactly %(length)d characters" -msgstr "ನಿಖರವಾಗಿ %(length)d ಅಕ್ಷರಗಳು ಇರಲೇಬೇಕು" - -msgid "User name" -msgstr "ಬಳಕೆದಾರನ ಹೆಸರು" - -msgid "Manage ticket policy for specific user" -msgstr "ನಿಗದಿತ ಬಳಕೆದಾರನಿಗೆ ಟಿಕೆಟ್ ಪಾಲಿಸಿಯನ್ನು ನಿರ್ವಹಿಸು" - -msgid "Max life" -msgstr "ಗರಿಷ್ಟ ಜೀವಿತಾವಧಿ" - -msgid "Max renew" -msgstr "ಗರಿಷ್ಟ ನವೀಕರಣ" - -msgid "Password" -msgstr "ಗುಪ್ತಪದ" - -msgid "Principal" -msgstr "Principal" - -msgid "Service principal" -msgstr "Service principal" - -msgid "Certificate" -msgstr "ಪ್ರಮಾಣಪತ್ರ" - -msgid "Base-64 encoded server certificate" -msgstr "Base-64 ಎನ್‌ಕೋಡೆಡ್ ಸರ್ವರ್ ಪ್ರಮಾಣಪತ್ರ" - -msgid "Rule name" -msgstr "ನಿಯಮದ ಹೆಸರು" - -msgid "Description" -msgstr "ವಿವರಣೆ" - -msgid "User category" -msgstr "ಬಳಕೆದಾರನ ವರ್ಗ" - -msgid "User category the rule applies to" -msgstr "ನಿಯಮ ಅನ್ವಯಿಸುವಂತಹ ಬಳಕೆದಾರನ ವರ್ಗ" - -msgid "Host category" -msgstr "ಹೋಸ್ಟ್ ವರ್ಗ" - -msgid "Host category the rule applies to" -msgstr "ನಿಯಮ ಅನ್ವಯಿಸುವಂತಹ ಹೋಸ್ಟ್ ವರ್ಗ" - -msgid "Users" -msgstr "ಬಳಕೆದಾರರು" - -msgid "User Groups" -msgstr "ಬಳಕೆದಾರರ ಗುಂಪುಗಳು" - -msgid "Hosts" -msgstr "ಹೋಸ್ಟ್‌ಗಳು" - -msgid "Host Groups" -msgstr "ಹೋಸ್ಟ್ ಗುಂಪುಗಳು" - -msgid "External host" -msgstr "ಹೊರಗಿನ ಹೋಸ್ಟ್" - -msgid "Group description" -msgstr "ಗುಂಪಿನ ವಿವರಣೆ" - -msgid "Permissions" -msgstr "ಅನುಮತಿಗಳು" - -msgid "Attributes" -msgstr "ವೈಶಿಷ್ಟ್ಯಗಳು" - -msgid "Type" -msgstr "ಬಗೆ" - -msgid "Filter" -msgstr "ಶೋಧಕ (ಫಿಲ್ಟರ್)" - -msgid "Legal LDAP filter (e.g. ou=Engineering)" -msgstr "Legal LDAP filter (e.g. ou=Engineering)" - -msgid "Subtree" -msgstr "ಉಪವೃಕ್ಷ" - -msgid "Target group" -msgstr "Target ಗುಂಪು" - -msgid "Host name" -msgstr "ಹೋಸ್ಟ್ ಹೆಸರು" - -msgid "A description of this host" -msgstr "ಈ ಹೋಸ್ಟ್‌ನ ವಿವರಣೆ" - -msgid "Locality" -msgstr "ಪ್ರದೇಶ" - -msgid "Host locality (e.g. \"Baltimore, MD\")" -msgstr "ಹೋಸ್ಟ್ ತಾಣ (e.g. \"Baltimore, MD\")" - -msgid "Location" -msgstr "ಸ್ಥಳ" - -msgid "Host location (e.g. \"Lab 2\")" -msgstr "ಹೋಸ್ಟ್ ತಾಣ (e.g. \"Lab 2\")" - -msgid "Platform" -msgstr "ಪ್ಲಾಟ್‌ಫಾರ್ಮ್" - -msgid "Host hardware platform (e.g. \"Lenovo T61\")" -msgstr "ಹೋಸ್ಟ್ ಹಾರ್ಡ್‌ವೇರ್ ಪ್ಲ್ಯಾಟ್‌ಫಾರ್ಮ್ (e.g. \"Lenovo T61\")" - -msgid "Operating system" -msgstr "ಕಾರ್ಯಕಾರಿ ವ್ಯವಸ್ಥೆ" - -msgid "Host operating system and version (e.g. \"Fedora 9\")" -msgstr "ಹೋಸ್ಟ್ ಕಾರ್ಯಕಾರಿ ವ್ಯವಸ್ಥೆ ಮತ್ತು ಆವೃತ್ತಿ (e.g. \"Fedora 9\")" - -msgid "User password" -msgstr "ಬಳಕೆದಾರನ ಗುಪ್ತಪದ" - -msgid "Password used in bulk enrollment" -msgstr "ದೊಡ್ಡ ಪ್ರಮಾಣದ ದಾಖಲಾತಿಯಲ್ಲಿ ಬಳಸಲಾದ ಗುಪ್ತಪದ" - -msgid "Principal name" -msgstr "Principal ಹೆಸರು" - -msgid "Member of host-groups" -msgstr "ಹೋಸ್ಟ್-ಗುಂಪಿನ ಸದಸ್ಯ" - -msgid "Kerberos principal name for this host" -msgstr "ಈ ಹೋಸ್ಟ್‌ಗೆ Kerberos principalನ ಹೆಸರು" - -msgid "ACI name" -msgstr "ACI ಹೆಸರು" - -msgid "User group" -msgstr "ಬಳಕೆದಾರ ಗುಂಪು" - -msgid "User group ACI grants access to" -msgstr "User group ACI grants access to" - -msgid "Member of" -msgstr "ಸದಸ್ಯ" - -msgid "Member of a group" -msgstr "ಒಂದು ಗುಂಪಿನ ಸದಸ್ಯ" - -msgid "Subtree to apply ACI to" -msgstr "Subtree to apply ACI to" - -msgid "Group to apply ACI to" -msgstr "Group to apply ACI to" - -msgid "Service name" -msgstr "ಸೇವೆಯ ಹೆಸರು" - -msgid "LDAP URI" -msgstr "LDAP URI" - -msgid "LDAP URI of DS server to migrate from" -msgstr "LDAP URI of DS server to migrate from" - -msgid "Bind DN" -msgstr "ಬೈಂಡ್ DN" - -msgid "User container" -msgstr "ಬಳಕೆದಾರನ ಕಂಟೇನರ್" - -msgid "Group container" -msgstr "ಗುಂಪಿನ ಕಂಟೇನರ್" - -msgid "Key" -msgstr "ಕೀ" - -msgid "Mount information" -msgstr "ಮೌಂಟ್ ಮಾಹಿತಿ" - -msgid "description" -msgstr "ವಿವರಣೆ" - -msgid "Map" -msgstr "ನಕ್ಷೆ" - -msgid "Mount point" -msgstr "ಮೌಂಟ್ ಪಾಯಂಟ್" - -msgid "Parent map" -msgstr "Parent map" - -msgid "Group" -msgstr "ಗುಂಪು" - -msgid "Max lifetime (days)" -msgstr "ಗರಿಷ್ಟ ಜೀವಿತಾವಧಿ (ದಿನಗಳು)" - -msgid "Maximum password lifetime (in days)" -msgstr "ಗುಪ್ತಪದದ ಗರಿಷ್ಟ ಜೀವಿತಾವಧಿ (ದಿನಗಳಲ್ಲಿ)" - -msgid "Min lifetime (hours)" -msgstr "ಕನಿಷ್ಟ ಜೀವಿತಾವಧಿ (ಘಂಟೆಗಳು)" - -msgid "Minimum password lifetime (in hours)" -msgstr "ಗುಪ್ತಪದದ ಕನಿಷ್ಟ ಜೀವಿತಾವಧಿ (ಘಂಟೆಗಳಲ್ಲಿ)" - -msgid "History size" -msgstr "ಇತಿಹಾಸದ ಗಾತ್ರ" - -msgid "Password history size" -msgstr "ಗುಪ್ತಪದ ಇತಿಹಾಸದ ಗಾತ್ರ" - -msgid "Character classes" -msgstr "ಕ್ಯಾರೆಕ್ಟರ್ ಕ್ಲಾಸ್‌ಗಳು" - -msgid "Minimum number of character classes" -msgstr "ಕನಿಷ್ಟ ಸಂಖ್ಯೆಯ ಕ್ಯಾರಕ್ಟರ್ ಕ್ಲಾಸ್‌ಗಳು" - -msgid "Min length" -msgstr "ಕನಿಷ್ಟ ಉದ್ದ" - -msgid "Minimum length of password" -msgstr "ಗುಪ್ತಪದದ ಕನಿಷ್ಟ ಉದ್ದ" - -msgid "Priority" -msgstr "ಆದ್ಯತೆ" - -msgid "User" -msgstr "ಬಳಕೆದಾರ" - -msgid "User login" -msgstr "ಬಳಕೆದಾರನ ಪ್ರವೇಶ" - -msgid "First name" -msgstr "ಮೊದಲ ಹೆಸರು" - -msgid "Last name" -msgstr "ಕೊನೆಯ ಹೆಸರು" - -msgid "Login shell" -msgstr "ಪ್ರವೇಶ ಶೆಲ್" - -msgid "Kerberos principal" -msgstr "Kerberos principal" - -msgid "Email address" -msgstr "ಇಮೇಲ್ ವಿಳಾಸ" - -msgid "UID" -msgstr "UID" - -msgid "GID" -msgstr "GID" - -msgid "Street address" -msgstr "ಕೇರಿ ವಿಳಾಸ" - -msgid "Group name" -msgstr "ಗುಂಪಿನ ಹೆಸರು" - -msgid "GID (use this option to set it manually)" -msgstr "GID (ಇದನ್ನು ಮ್ಯಾನ್ಯೂವಲ್ ಆಗಿ ಸೆಟ್ ಮಾಡಲು ಈ ಆಯ್ಕೆಯನ್ನು ಬಳಸಿ)" - -msgid "Member users" -msgstr "ಸದಸ್ಯ ಬಳಕೆದಾರರು" - -msgid "Member groups" -msgstr "ಸದಸ್ಯ ಗುಂಪುಗಳು" - -msgid "A description of this role-group" -msgstr "ಈ ರೋಲ್-ಗ್ರೂಪ್‌ನ ವಿವರಣೆ" - -msgid "Member hosts" -msgstr "ಸದಸ್ಯ ಹೋಸ್ಟ್‌ಗಳು" - -msgid "Member host-groups" -msgstr "ಸದಸ್ಯ ಹೋಸ್ಟ್-ಗ್ರೂಪ್‌ಗಳು" - -msgid "Host-group" -msgstr "ಹೋಸ್ಟ್-ಗುಂಪು" - -msgid "Name of host-group" -msgstr "ಹೋಸ್ಟ್-ಗುಂಪಿನ ಹೆಸರು" - -msgid "A description of this host-group" -msgstr "ಈ ಹೋಸ್ಟ್-ಗ್ರೂಪ್‌ನ ವಿವರಣೆ" - -msgid "Netgroup name" -msgstr "ನೆಟ್‌ಗ್ರೂಪ್ ಹೆಸರು" - -msgid "Netgroup description" -msgstr "ನೆಟ್‌ಗ್ರೂಪ್ ವಿವರಣೆ" - -msgid "NIS domain name" -msgstr "NIS ಡೊಮೇನ್ ಹೆಸರು" - -msgid "Time to live" -msgstr "ಉಳಿದಿರಬೇಕಾದ ಸಮಯ" - -msgid "Class" -msgstr "ವರ್ಗ" - -msgid "Zone name" -msgstr "ವಲಯದ ಹೆಸರು" - -msgid "Zone name (FQDN)" -msgstr "ವಲಯದ ಹೆಸರು (FQDN)" - -msgid "SOA serial" -msgstr "SOA serial" - -msgid "SOA refresh" -msgstr "SOA refresh" - -msgid "SOA retry" -msgstr "SOA retry" - -msgid "SOA expire" -msgstr "SOA expire" - -msgid "SOA minimum" -msgstr "SOA minimum" - -msgid "SOA class" -msgstr "SOA class" - -msgid "BIND update policy" -msgstr "BIND update policy" - -msgid "Services" -msgstr "ಸೇವೆಗಳು(ಸರ್ವೀಸಸ್)" - -msgid "Serial number" -msgstr "ಅನುಕ್ರಮ ಸಂಖ್ಯೆ" - -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" -msgstr "ಕ್ರಮ ಸಂಖ್ಯೆ ಡೆಸಿಮಲ್‌ನಲ್ಲಿ ಅಥವಾ 0x ಮೊದಲು ಸೇರಿಸಿದ್ದಲ್ಲಿ ಹೆಕ್ಸಾಡೆಸಿಮಲ್‌ನಲ್ಲಿ" - -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" -msgstr "ಈ ಪ್ರಮಾಣಪತ್ರಕ್ಕಾಗಿ Service principal (e.g. HTTP/test.example.com)" - -msgid "automatically add the principal if it doesn't exist" -msgstr "ಸ್ವಯಂಚಾಲಿತವಾಗಿ principal ಸೇರಿಸಿ ಅದು ಅಸ್ತಿತ್ವದಲ್ಲಿ ಇಲ್ಲದಿದ್ದಲ್ಲಿ" - -msgid "Reason" -msgstr "ಕಾರಣ" - -msgid "Reason for revoking the certificate (0-10)" -msgstr "ಪ್ರಮಾಣಪತ್ರವನ್ನು (0-10) ರದ್ದು ಮಾಡಲು ಕಾರಣ" - -msgid "Request id" -msgstr "ಬೇಡಿಕೆ ID" - -msgid "Home directory base" -msgstr "ಹೋಮ್ ಡೈರೆಕ್ಟರೀ ಮೂಲ" - -msgid "Default shell" -msgstr "ಡೀಫಾಲ್ಟ್ ಶೆಲ್" - -msgid "Default users group" -msgstr "ಡಿಫಾಲ್ಟ್ ಬಳಕೆದಾರರ ಗುಂಪು" - -msgid "Search time limit" -msgstr "ಹುಡುಕು ಸಮಯ ಮಿತಿ" - -msgid "Search size limit" -msgstr "ಹುಡುಕು ಗಾತ್ರ ಮಿತಿ" - -msgid "User search fields" -msgstr "ಬಳಕೆದಾರನ ಶೋಧ ಫೀಲ್ಡ್‌ಗಳು" - -msgid "Certificate Subject base" -msgstr "ಪ್ರಮಾಣಪತ್ರದ ವಿಷಯ ಮೂಲ" - -msgid "Subject" -msgstr "ವಿಷಯ" - -msgid "Data" -msgstr "ದತ್ತಾಂಶ" - -msgid "Unrevoked" -msgstr "ರದ್ದು ಮಾಡಲಾಗಿಲ್ಲ" - -msgid "Error" -msgstr "ದೋಷ" - -msgid "Failed members" -msgstr "ವಿಫಲಗೊಂಡ ಸದಸ್ಯರು" - -msgid "Revocation reason" -msgstr "ರದ್ದು ಮಾಡುವುದಕ್ಕೆ ಕಾರಣ" - -msgid "Groups" -msgstr "ಗುಂಪುಗಳು" - -msgid "Netgroups" -msgstr "ನೆಟ್‌ಗ್ರೂಪ್‌ಗಳು" - -msgid "DNS" -msgstr "DNS" - -#, python-format -msgid "Added service \"%(value)s\"" -msgstr "\"%(value)s\" ಸೇವೆ(ಸರ್ವೀಸ್)ಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ" - -#, python-format -msgid "Deleted service \"%(value)s\"" -msgstr "\"%(value)s\" ಸೇವೆ(ಸರ್ವೀಸ್)ಯನ್ನು ಅಳಿಸಲಾಗಿದೆ" - -#, python-format -msgid "Added host \"%(value)s\"" -msgstr "\"%(value)s\" ಹೋಸ್ಟನ್ನು ಸೇರಿಸಲಾಗಿದೆ" - -#, python-format -msgid "Deleted host \"%(value)s\"" -msgstr "\"%(value)s\" ಹೋಸ್ಟನ್ನು ಅಳಿಸಲಾಗಿದೆ" - -#, python-format -msgid "Modified host \"%(value)s\"" -msgstr "\"%(value)s\" ಹೋಸ್ಟನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" - -msgid "type, filter, subtree and targetgroup are mutually exclusive" -msgstr " ಬಗೆ, ಫಿಲ್ಟರ್, ಸಬ್‌ಟ್ರೀ ಮತ್ತು ಟಾರ್ಗೆಟ್‌ಗ್ರೂಪ್ ಗಳು ಪರಸ್ಪರ ಪ್ರತ್ಯೇಕ" - -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" -msgstr "" -"ಕನಿಷ್ಟ ಒಂದು : ಬಗೆ, ಫಿಲ್ಟರ್, ಸಬ್‌ಟ್ರೀ, ಟಾರ್ಗೆಟ್‌ಗ್ರೂಪ್, attrs ಅಥವಾ memberof ಗಳ ಅಗತ್ಯವಿದೆ" - -#, python-format -msgid "Group '%s' does not exist" -msgstr " '%s' ಗುಂಪು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ" - -#, python-format -msgid "ACI with name \"%s\" not found" -msgstr "\"%s\" ಹೆಸರು ಹೊಂದಿರುವ ACI ಪತ್ತೆಯಾಗಿಲ್ಲ" - -msgid "ACIs" -msgstr "ACIs" - -#, python-format -msgid "Created ACI \"%(value)s\"" -msgstr "\"%(value)s\" ACIವನ್ನು ರಚಿಸಲಾಗಿದೆ" - -#, python-format -msgid "Deleted ACI \"%(value)s\"" -msgstr "\"%(value)s\" ACIವನ್ನು ಅಳಿಸಲಾಗಿದೆ" - -#, python-format -msgid "Modified ACI \"%(value)s\"" -msgstr "\"%(value)s\" ACIವನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" - -msgid "Automount Maps" -msgstr "ಮ್ಯಾಪ್‌ಗಳ ಆಟೋಮೌಂಟ್" - -msgid "Automount Keys" -msgstr "ಕೀಗಳ ಆಟೋಮೌಂಟ್" - -msgid "priority cannot be set on global policy" -msgstr "ಗ್ಲೋಬಲ್ ಪಾಲಿಸಿಯಲ್ಲಿ ಆದ್ಯತೆಯನ್ನು ಸೆಟ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ" - -#, python-format -msgid "Added user \"%(value)s\"" -msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಸೇರಿಸಲಾಗಿದೆ" - -#, python-format -msgid "Deleted user \"%(value)s\"" -msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಅಳಿಸಲಾಗಿದೆ" - -#, python-format -msgid "Modified user \"%(value)s\"" -msgstr "\"%(value)s\" ಬಳಕೆದಾರನನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" - -#, python-format -msgid "Added group \"%(value)s\"" -msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ" - -#, python-format -msgid "Deleted group \"%(value)s\"" -msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ" - -#, python-format -msgid "Modified group \"%(value)s\"" -msgstr "\"%(value)s\" ಗುಂಪನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" - -#, python-format -msgid "Added hostgroup \"%(value)s\"" -msgstr "\"%(value)s\" ಹೋಸ್ಟ್‌ಗ್ರೂಪನ್ನು ಸೇರಿಸಲಾಗಿದೆ" - -#, python-format -msgid "Deleted hostgroup \"%(value)s\"" -msgstr "\"%(value)s\" ಹೋಸ್ಟ್‌ಗ್ರೂಪನ್ನು ಅಳಿಸಲಾಗಿದೆ" - -#, python-format -msgid "Modified hostgroup \"%(value)s\"" -msgstr "\"%(value)s\" ಹೋಸ್ಟ್‌ಗ್ರೂಪನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ" - -msgid "Access time" -msgstr "ಪ್ರವೇಶದ ಸಮಯ" - -#, python-format -msgid "Failure decoding Certificate Signing Request: %s" -msgstr "ಪ್ರಮಾಣಪತ್ರದ ಸಹಿಯ ಕೋರಿಕೆಯ ಡಿಕೋಡಿಂಗ್‌ನ ವಿಫಲತೆ: %s" - -msgid "Request status" -msgstr "ಬೇಡಿಕೆ ಸ್ಥಿತಿ" - -msgid "Revoked" -msgstr "ರದ್ದು ಮಾಡಲಾಗಿದೆ" diff --git a/po/mr.po b/po/mr.po index 38a75f218..0dc4a30f5 100644 --- a/po/mr.po +++ b/po/mr.po @@ -1,9 +1,9 @@ # Abhijeet Kasurde , 2015. #zanata msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -14,6 +14,51 @@ msgstr "" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +#, c-format +msgid "Passwords do not match!" +msgstr "पासवर्ड जुळत नाही!" + +msgid "A string searched in all relevant object attributes" +msgstr "एक शब्द सर्व संबंधित ऑब्जेक्ट गुणधर्मात शोधला" + +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "सत्यापित करण्यासाठी आपण पुन्हा %(label)s प्रविष्ट करा:" + +msgid "No matching entries found" +msgstr "कोणतेही जुळणारे नोंदी आढळले" + +msgid "Topic or Command" +msgstr "विषय किंवा आदेश" + +msgid "The topic or command name." +msgstr "विषय किंवा आदेशाचे नाव" + +msgid "Topic commands:" +msgstr "विषय आदेश:" + +msgid "To get command help, use:" +msgstr "आदेशा संबधित मिळवण्यासाठी, वापरा:" + +msgid " ipa --help" +msgstr " ipa --help" + +msgid "Command name" +msgstr "आदेशाचे नाव " + +msgid "Positional arguments" +msgstr "positional वितर्क" + +#, python-format +msgid "Same as --%s" +msgstr "--%s सारखा" + +msgid "Deprecated options" +msgstr "वापरात नसलेले पर्याय" + +msgid "No file to read" +msgstr "कोणतीही फाइल वाचण्यासाठी नाही " + msgid "an internal error has occurred" msgstr "एक अंतर्गत त्रुटी आली आहे" @@ -51,48 +96,3 @@ msgstr "Kerberos credentials प्राप्त झाले नाहीत" #, python-format msgid "Service '%(service)s' not found in Kerberos database" msgstr "सेवा '%(service)s' Kerberos माहितीकोष आढली नाही" - -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "सत्यापित करण्यासाठी आपण पुन्हा %(label)s प्रविष्ट करा:" - -#, c-format -msgid "Passwords do not match!" -msgstr "पासवर्ड जुळत नाही!" - -msgid "No matching entries found" -msgstr "कोणतेही जुळणारे नोंदी आढळले" - -msgid "Topic or Command" -msgstr "विषय किंवा आदेश" - -msgid "The topic or command name." -msgstr "विषय किंवा आदेशाचे नाव" - -msgid "Topic commands:" -msgstr "विषय आदेश:" - -msgid "To get command help, use:" -msgstr "आदेशा संबधित मिळवण्यासाठी, वापरा:" - -msgid " ipa --help" -msgstr " ipa --help" - -msgid "Command name" -msgstr "आदेशाचे नाव " - -msgid "Positional arguments" -msgstr "positional वितर्क" - -#, python-format -msgid "Same as --%s" -msgstr "--%s सारखा" - -msgid "Deprecated options" -msgstr "वापरात नसलेले पर्याय" - -msgid "No file to read" -msgstr "कोणतीही फाइल वाचण्यासाठी नाही " - -msgid "A string searched in all relevant object attributes" -msgstr "एक शब्द सर्व संबंधित ऑब्जेक्ट गुणधर्मात शोधला" diff --git a/po/nl.po b/po/nl.po index 5dc12c112..74c8dfb81 100644 --- a/po/nl.po +++ b/po/nl.po @@ -1,9 +1,9 @@ # Martin Bašti , 2016. #zanata msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" diff --git a/po/pa.po b/po/pa.po index 33a37d935..07de3be5b 100644 --- a/po/pa.po +++ b/po/pa.po @@ -1,9 +1,9 @@ # A S Alam , 2017. #zanata msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -14,10 +14,6 @@ msgstr "" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#, python-format -msgid "Unknown option: %(option)s" -msgstr "ਅਣਪਛਾਤੀ ਚੋਣ: %(option)s" - #, c-format msgid "Out of memory!\n" msgstr "ਮੈਮੋਰੀ ਖ਼ਤਮ ਹੋਈ!\n" @@ -34,17 +30,9 @@ msgstr "ਪੁਰਾਣੀ ਵਾਲਟ ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀ msgid "Invalid vault type" msgstr "ਗ਼ਲਤ ਵਾਲਟ ਕਿਸਮ" -msgid "Out of memory\n" -msgstr "ਮੈਮੋਰੀ ਖ਼ਤਮ ਹੋਈ\n" - -msgid "Warning unrecognized encryption type.\n" -msgstr "ਚੇਤਾਵਨੀ ਅਣਪਛਾਤੀ ਇੰਕ੍ਰਿਪਸ਼ਨ ਕਿਸਮ।\n" - -msgid "Warning unrecognized salt type.\n" -msgstr "ਚੇਤਾਵਨੀ ਅਣਪਛਾਤੀ salt ਕਿਸਮ ਹੈ।\n" - -msgid "Failed to create key!\n" -msgstr "ਕੁੰਜੀ ਬਣਾਉਣ ਲਈ ਅਸਫ਼ਲ ਹੈ!\n" +#, python-format +msgid "Unknown option: %(option)s" +msgstr "ਅਣਪਛਾਤੀ ਚੋਣ: %(option)s" msgid "Hello world" msgstr "ਹੈਲੋ ਵਰਲਡ" @@ -66,3 +54,15 @@ msgstr "ਟਰੱਸਟ ਸੈਟਅੱਪ" msgid "Our domain is not configured" msgstr "ਸਾਡੀ ਡੋਮੇਨ ਸੰਰਚਿਤ ਨਹੀਂ ਹੈ" + +msgid "Out of memory\n" +msgstr "ਮੈਮੋਰੀ ਖ਼ਤਮ ਹੋਈ\n" + +msgid "Warning unrecognized encryption type.\n" +msgstr "ਚੇਤਾਵਨੀ ਅਣਪਛਾਤੀ ਇੰਕ੍ਰਿਪਸ਼ਨ ਕਿਸਮ।\n" + +msgid "Warning unrecognized salt type.\n" +msgstr "ਚੇਤਾਵਨੀ ਅਣਪਛਾਤੀ salt ਕਿਸਮ ਹੈ।\n" + +msgid "Failed to create key!\n" +msgstr "ਕੁੰਜੀ ਬਣਾਉਣ ਲਈ ਅਸਫ਼ਲ ਹੈ!\n" diff --git a/po/pl.po b/po/pl.po index 04879eac1..299090cb0 100644 --- a/po/pl.po +++ b/po/pl.po @@ -1,9 +1,9 @@ # Piotr Drąg , 2016. #zanata msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -15,291 +15,165 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2)\n" -#, python-format -msgid "%(count)d variables" -msgstr "%(count)d zmiennych" +#, c-format +msgid "No keys accepted by KDC\n" +msgstr "Żadne klucze nie zostały zaakceptowane przez KDC\n" -msgid "Dictionary mapping variable name to value" -msgstr "Nazwa zmiennej mapowania słownika do ustawienia jako wartość" +#, c-format +msgid "Out of memory \n" +msgstr "Brak pamięci \n" -msgid "Total number of variables env (>= count)" -msgstr "Całkowita liczba zmiennych środowiskowych (>= licznik)" +#, c-format +msgid "Unable to initialize ldap library!\n" +msgstr "Nie można zainicjować biblioteki LDAP.\n" -msgid "Number of variables returned (<= total)" -msgstr "Liczba zwróconych zmiennych (<= razem)" +#, c-format +msgid "Simple bind failed\n" +msgstr "Proste dowiązanie się nie powiodło\n" -#, 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" +#, c-format +msgid "Missing reply control!\n" +msgstr "Brak kontroli odpowiedzi.\n" -msgid "Number of plugins loaded" -msgstr "Liczba wczytanych wtyczek" +#, c-format +msgid "Out of Memory!\n" +msgstr "Brak pamięci.\n" -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" -msgstr "nieznany błąd %(code)d z %(server)s: %(error)s" +#, c-format +msgid "Failed to create control!\n" +msgstr "Utworzenie kontroli się nie powiodło.\n" -msgid "an internal error has occurred" -msgstr "wystąpił wewnętrzny błąd" +#, c-format +msgid "ber_init() failed, Invalid control ?!\n" +msgstr "ber_init() się nie powiodło, nieprawidłowa kontrola?\n" -#, python-format -msgid "Invalid JSON-RPC request: %(error)s" -msgstr "Nieprawidłowe żądanie JSON-RPC: %(error)s" +msgid "New Principal Password" +msgstr "Nowe hasło naczelnika" -#, python-format -msgid "Kerberos error: %(major)s/%(minor)s" -msgstr "Błąd Kerberosa: %(major)s/%(minor)s" - -msgid "did not receive Kerberos credentials" -msgstr "nie otrzymano danych uwierzytelniających Kerberosa" - -msgid "No credentials cache found" -msgstr "Nie odnaleziono pamięci podręcznej danych uwierzytelniających" - -msgid "Ticket expired" -msgstr "Zgłoszenie wygasło" - -msgid "Credentials cache permissions incorrect" -msgstr "" -"Uprawnienia pamięci podręcznej danych uwierzytelniających są niepoprawne" - -msgid "Bad format in credentials cache" -msgstr "Błędny format w pamięci podręcznej danych uwierzytelniających" - -msgid "Cannot resolve KDC for requested realm" -msgstr "Nie można rozwiązać KDC dla żądanego obszaru" - -#, python-format -msgid "Insufficient access: %(info)s" -msgstr "Niewystarczający dostęp: %(info)s" - -msgid "Passwords do not match" -msgstr "Hasła się nie zgadzają" - -msgid "Command not implemented" -msgstr "Polecenie nie jest zaimplementowane" - -#, python-format -msgid "%(reason)s" -msgstr "%(reason)s" - -msgid "This entry already exists" -msgstr "Ten wpis już istnieje" - -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ę" - -#, python-format -msgid "" -"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" - -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" - -msgid "This command requires root access" -msgstr "To polecenie wymaga dostępu roota" - -msgid "This is already a posix group" -msgstr "To jest już grupa POSIX" - -msgid "A group may not be a member of itself" -msgstr "Grupa nie może być własnym elementem" - -#, python-format -msgid "Base64 decoding failed: %(reason)s" -msgstr "Dekodowanie base64 się nie powiodło: %(reason)s" - -msgid "A group may not be added as a member of itself" -msgstr "Nie można dodać grupy jako elementu jej samej" - -msgid "The default users group cannot be removed" -msgstr "Nie można usunąć domyślnej grupy użytkowników" - -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." - -#, python-format -msgid "%(attr)s does not contain '%(value)s'" -msgstr "%(attr)s nie zawiera „%(value)s”" - -msgid "change collided with another change" -msgstr "zmiana koliduje z inną zmianą" - -msgid "no modifications to be performed" -msgstr "żadne modyfikacje nie zostaną wykonane" - -msgid "limits exceeded for this query" -msgstr "przekroczono ograniczenia dla tego zapytania" - -#, python-format -msgid "%(info)s" -msgstr "%(info)s" - -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" -msgstr "Nie można ukończyć działania na certyfikacie: %(error)s" - -#, python-format -msgid "Certificate format error: %(error)s" -msgstr "Błąd formatu certyfikatu: %(error)s" - -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "Proszę podać %(label)s ponownie, aby sprawdzić: " +msgid "Verify Principal Password" +msgstr "Sprawdzenie hasła naczelnika" #, c-format msgid "Passwords do not match!" msgstr "Hasła się nie zgadzają." -msgid "Results are truncated, try a more specific search" +msgid "Print as little as possible" +msgstr "Wyświetla tak mało, jak to możliwe" + +msgid "Output only on errors" +msgstr "Wyświetla tylko błędy" + +msgid "Contact this specific KDC Server" +msgstr "Kontaktuje się z konkretnym serwerem KDC" + +msgid "Server Name" +msgstr "Nazwa serwera" + +msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -"Wyniki zostały obcięte, proszę spróbować bardziej konkretnego wyszukiwania" - -msgid "Forward to server instead of running locally" -msgstr "Przekazanie do serwera zamiast uruchamiania lokalnie" - -msgid "incorrect type" -msgstr "niepoprawny typ" - -msgid "Only one value is allowed" -msgstr "Dozwolona jest tylko jedna wartość" - -msgid "must be True or False" -msgstr "musi być prawdą lub fałszem" - -msgid "must be an integer" -msgstr "musi być liczba całkowitą" - -#, python-format -msgid "must be at least %(minvalue)d" -msgstr "musi wynosić co najmniej %(minvalue)d" - -#, python-format -msgid "can be at most %(maxvalue)d" -msgstr "może wynosić co najwyżej %(maxvalue)d" - -msgid "must be a decimal number" -msgstr "musi być liczbą dziesiętną" - -#, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "musi pasować do wzorca „%(pattern)s”" - -msgid "must be binary data" -msgstr "musi być danymi binarnymi" - -#, python-format -msgid "must be at least %(minlength)d bytes" -msgstr "musi wynosić co najmniej %(minlength)d bajtów" - -#, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "może wynosić co najwyżej %(maxlength)d bajtów" - -#, python-format -msgid "must be exactly %(length)d bytes" -msgstr "musi wynosić dokładnie %(length)d bajtów" - -msgid "must be Unicode text" -msgstr "musi być tekstem w unikodzie" - -#, python-format -msgid "must be at least %(minlength)d characters" -msgstr "musi wynosić co najmniej %(minlength)d znaków" - -#, python-format -msgid "can be at most %(maxlength)d characters" -msgstr "może wynosić co najwyżej %(maxlength)d znaków" - -#, python-format -msgid "must be exactly %(length)d characters" -msgstr "musi wynosić dokładnie %(length)d znaków" - -msgid "A dictionary representing an LDAP entry" -msgstr "Słownik reprezentujący wpis LDAP" - -msgid "A list of LDAP entries" -msgstr "Lista wpisów LDAP" - -msgid "All commands should at least have a result" -msgstr "Wszystkie polecenia powinny powiadać przynajmniej wynik" - -#, c-format -msgid "cannot open configuration file %s\n" -msgstr "nie można otworzyć pliku konfiguracji %s\n" - -#, c-format -msgid "cannot stat() configuration file %s\n" -msgstr "nie można wykonać stat() na pliku konfiguracji %s\n" - -#, c-format -msgid "read error\n" -msgstr "błąd odczytu\n" - -#, c-format -msgid "Unable to parse principal name\n" -msgstr "Nie można przetworzyć nazwy naczelnika\n" - -#, c-format -msgid "Removing principal %s\n" -msgstr "Usuwanie naczelnika %s\n" - -#, c-format -msgid "Failed to open keytab\n" -msgstr "Otwarcie tablicy kluczy się nie powiodło\n" - -#, c-format -msgid "principal not found\n" -msgstr "nie odnaleziono naczelnika\n" - -#, c-format -msgid "Unable to remove entry\n" -msgstr "Nie można usunąć wpisu\n" - -#, c-format -msgid "kvno %d\n" -msgstr "kvno %d\n" - -#, c-format -msgid "Unable to parse principal\n" -msgstr "Nie można przetworzyć naczelnika\n" - -msgid "Print debugging information" -msgstr "Wyświetlanie informacji o debugowaniu" - -msgid "Debugging output" -msgstr "Wyjście debugowania" +"Naczelnik, dla którego uzyskać tablicę kluczy (np.: ftp/ftp.example." +"com@EXAMPLE.COM)" msgid "Kerberos Service Principal Name" msgstr "Nazwa naczelnika usługi Kerberos" +msgid "File were to store the keytab information" +msgstr "Plik, w którym przechowywać informację o tablicy kluczy" + msgid "Keytab File Name" msgstr "Nazwa pliku tablicy kluczy" -msgid "Remove all principals in this realm" -msgstr "Usuwa wszystkich naczelników w tym obszarze" +msgid "Encryption types to request" +msgstr "Typy szyfrowania do zażądania" -msgid "Realm name" -msgstr "Nazwa obszaru" +msgid "Comma separated encryption types list" +msgstr "Lista typów szyfrowania oddzielonych przecinkami" + +msgid "Show the list of permitted encryption types and exit" +msgstr "Wyświetla listę dozwolonych typów szyfrowania i kończy działanie" + +msgid "Permitted Encryption Types" +msgstr "Dozwolone typy szyfrowania" + +msgid "Asks for a non-random password to use for the principal" +msgstr "Pyta o nielosowe hasło do użycia z naczelnikiem" + +msgid "LDAP DN" +msgstr "DN LDAP" + +msgid "DN to bind as if not using kerberos" +msgstr "DN do dowiązania, jeśli nie jest używany Kerberos" + +msgid "LDAP password" +msgstr "Hasło LDAP" + +msgid "password to use if not using kerberos" +msgstr "hasło do użycia, jeśli nie jest używany Kerberos" #, c-format msgid "Kerberos context initialization failed\n" msgstr "Zainicjowanie kontekstu Kerberosa się nie powiodło\n" #, c-format -msgid "Closing keytab failed\n" +msgid "No system preferred enctypes ?!\n" +msgstr "Brak typów szyfrowania preferowanych przez system?\n" + +#, c-format +msgid "Supported encryption types:\n" +msgstr "Obsługiwane typy szyfrowania:\n" + +#, c-format +msgid "Warning: failed to convert type (#%d)\n" +msgstr "Ostrzeżenie: przekonwertowanie typu (#%d) się nie powiodło\n" + +#, 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" + +#, 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" + +#, c-format +msgid "Invalid Service Principal Name\n" +msgstr "Nieprawidłowa nazwa naczelnika usługi\n" + +#, 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" + +#, 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" + +#, c-format +msgid "Failed to open Keytab\n" +msgstr "Otwarcie tablicy kluczy się nie powiodło\n" + +#, c-format +msgid "Failed to create key material\n" +msgstr "Utworzenie materiału klucza się nie powiodło\n" + +#, c-format +msgid "Failed to add key to the keytab\n" +msgstr "Dodanie klucza do tablicy kluczy się nie powiodło\n" + +#, c-format +msgid "Failed to close the keytab\n" msgstr "Zamknięcie tablicy kluczy się nie powiodło\n" +#, c-format +msgid "Keytab successfully retrieved and stored in: %s\n" +msgstr "Pomyślnie pobrano tablicę kluczy i przechowano ją w: %s\n" + #, c-format msgid "No permission to join this host to the IPA domain.\n" msgstr "Brak uprawnienia do dołączenia do tego komputera w domenie IPA.\n" @@ -446,158 +320,87 @@ msgid "password" msgstr "hasło" #, c-format -msgid "No keys accepted by KDC\n" -msgstr "Żadne klucze nie zostały zaakceptowane przez KDC\n" +msgid "Unable to parse principal name\n" +msgstr "Nie można przetworzyć nazwy naczelnika\n" #, c-format -msgid "Out of memory \n" -msgstr "Brak pamięci \n" +msgid "Removing principal %s\n" +msgstr "Usuwanie naczelnika %s\n" #, c-format -msgid "Unable to initialize ldap library!\n" -msgstr "Nie można zainicjować biblioteki LDAP.\n" +msgid "Failed to open keytab\n" +msgstr "Otwarcie tablicy kluczy się nie powiodło\n" #, c-format -msgid "Simple bind failed\n" -msgstr "Proste dowiązanie się nie powiodło\n" +msgid "principal not found\n" +msgstr "nie odnaleziono naczelnika\n" #, c-format -msgid "Missing reply control!\n" -msgstr "Brak kontroli odpowiedzi.\n" +msgid "Unable to remove entry\n" +msgstr "Nie można usunąć wpisu\n" #, c-format -msgid "Out of Memory!\n" -msgstr "Brak pamięci.\n" +msgid "kvno %d\n" +msgstr "kvno %d\n" #, c-format -msgid "Failed to create control!\n" -msgstr "Utworzenie kontroli się nie powiodło.\n" +msgid "Unable to parse principal\n" +msgstr "Nie można przetworzyć naczelnika\n" + +msgid "Print debugging information" +msgstr "Wyświetlanie informacji o debugowaniu" + +msgid "Debugging output" +msgstr "Wyjście debugowania" + +msgid "Remove all principals in this realm" +msgstr "Usuwa wszystkich naczelników w tym obszarze" + +msgid "Realm name" +msgstr "Nazwa obszaru" #, c-format -msgid "ber_init() failed, Invalid control ?!\n" -msgstr "ber_init() się nie powiodło, nieprawidłowa kontrola?\n" - -msgid "New Principal Password" -msgstr "Nowe hasło naczelnika" - -msgid "Verify Principal Password" -msgstr "Sprawdzenie hasła naczelnika" - -msgid "Print as little as possible" -msgstr "Wyświetla tak mało, jak to możliwe" - -msgid "Output only on errors" -msgstr "Wyświetla tylko błędy" - -msgid "Contact this specific KDC Server" -msgstr "Kontaktuje się z konkretnym serwerem KDC" - -msgid "Server Name" -msgstr "Nazwa serwera" - -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.example." -"com@EXAMPLE.COM)" - -msgid "File were to store the keytab information" -msgstr "Plik, w którym przechowywać informację o tablicy kluczy" - -msgid "Encryption types to request" -msgstr "Typy szyfrowania do zażądania" - -msgid "Comma separated encryption types list" -msgstr "Lista typów szyfrowania oddzielonych przecinkami" - -msgid "Show the list of permitted encryption types and exit" -msgstr "Wyświetla listę dozwolonych typów szyfrowania i kończy działanie" - -msgid "Permitted Encryption Types" -msgstr "Dozwolone typy szyfrowania" - -msgid "Asks for a non-random password to use for the principal" -msgstr "Pyta o nielosowe hasło do użycia z naczelnikiem" - -msgid "LDAP DN" -msgstr "DN LDAP" - -msgid "DN to bind as if not using kerberos" -msgstr "DN do dowiązania, jeśli nie jest używany Kerberos" - -msgid "LDAP password" -msgstr "Hasło LDAP" - -msgid "password to use if not using kerberos" -msgstr "hasło do użycia, jeśli nie jest używany Kerberos" - -#, c-format -msgid "No system preferred enctypes ?!\n" -msgstr "Brak typów szyfrowania preferowanych przez system?\n" - -#, c-format -msgid "Supported encryption types:\n" -msgstr "Obsługiwane typy szyfrowania:\n" - -#, c-format -msgid "Warning: failed to convert type (#%d)\n" -msgstr "Ostrzeżenie: przekonwertowanie typu (#%d) się nie powiodło\n" - -#, 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" - -#, 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" - -#, c-format -msgid "Invalid Service Principal Name\n" -msgstr "Nieprawidłowa nazwa naczelnika usługi\n" - -#, 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" - -#, 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" - -#, c-format -msgid "Failed to open Keytab\n" -msgstr "Otwarcie tablicy kluczy się nie powiodło\n" - -#, c-format -msgid "Failed to create key material\n" -msgstr "Utworzenie materiału klucza się nie powiodło\n" - -#, c-format -msgid "Failed to add key to the keytab\n" -msgstr "Dodanie klucza do tablicy kluczy się nie powiodło\n" - -#, c-format -msgid "Failed to close the keytab\n" +msgid "Closing keytab failed\n" msgstr "Zamknięcie tablicy kluczy się nie powiodło\n" #, c-format -msgid "Keytab successfully retrieved and stored in: %s\n" -msgstr "Pomyślnie pobrano tablicę kluczy i przechowano ją w: %s\n" +msgid "cannot open configuration file %s\n" +msgstr "nie można otworzyć pliku konfiguracji %s\n" -msgid "Dict of I18N messages" -msgstr "Słownik komunikatów umiędzynaradawiania" +#, c-format +msgid "cannot stat() configuration file %s\n" +msgstr "nie można wykonać stat() na pliku konfiguracji %s\n" -msgid "Name of object to export" -msgstr "Nazwa obiektu do wyeksportowania" +#, c-format +msgid "read error\n" +msgstr "błąd odczytu\n" -msgid "Dict of JSON encoded IPA Objects" -msgstr "Słownik obiektów IPA zakodowanych w formacie JSON" +msgid "Failed members" +msgstr "Elementy, które się nie powiodły" + +msgid "Members that could not be added" +msgstr "Elementy, które nie mogły zostać dodane" + +msgid "Number of members added" +msgstr "Liczba dodanych elementów" + +msgid "Continuous mode: Don't stop on errors." +msgstr "Tryb ciągły: bez zatrzymywania po błędach." + +msgid "Time Limit" +msgstr "Ograniczenie czasu" + +msgid "Size Limit" +msgstr "Ograniczenie rozmiaru" + +msgid "Members that could not be removed" +msgstr "Liczba elementów, które nie mogły zostać usunięte" + +msgid "Number of members removed" +msgstr "Liczba usuniętych elementów" + +msgid "Rights" +msgstr "Uprawnienia" msgid "User name" msgstr "Nazwa użytkownika" @@ -617,274 +420,38 @@ msgstr "Maksymalne odnowienie" msgid "Maximum renewable age (seconds)" msgstr "Maksymalny czas, w którym możliwe jest odnowienie (sekundy)" -msgid "Rights" -msgstr "Uprawnienia" - -msgid "Continuous mode: Don't stop on errors." -msgstr "Tryb ciągły: bez zatrzymywania po błędach." - -msgid "Time Limit" -msgstr "Ograniczenie czasu" - -msgid "Time limit of search in seconds" -msgstr "Ograniczenie czasu wyszukiwania w sekundach" - -msgid "Size Limit" -msgstr "Ograniczenie rozmiaru" - -msgid "Maximum number of entries returned" -msgstr "Maksymalna liczba zwróconych wpisów" - -msgid "Password" -msgstr "Hasło" - -msgid "Principal" -msgstr "Naczelnik" - -msgid "Service principal" -msgstr "Naczelnik usługi" - -msgid "Certificate" -msgstr "Certyfikat" - -msgid "Base-64 encoded server certificate" -msgstr "Certyfikat serwera zakodowany za pomocą Base-64" - -msgid "Keytab" -msgstr "Tabela kluczy" - -msgid "force principal name even if not in DNS" -msgstr "wymuszenie nazwy naczelnika, nawet jeśli nie w DNS" - -msgid "Members that could not be added" -msgstr "Elementy, które nie mogły zostać dodane" - -msgid "Number of members added" -msgstr "Liczba dodanych elementów" - -msgid "Members that could not be removed" -msgstr "Liczba elementów, które nie mogły zostać usunięte" - -msgid "Number of members removed" -msgstr "Liczba usuniętych elementów" - -msgid "Rule name" -msgstr "Nazwa reguły" - msgid "Description" msgstr "Opis" -msgid "Enabled" -msgstr "Włączone" +msgid "Group name" +msgstr "Nazwa grupy" -msgid "User category" -msgstr "Kategoria użytkowników" +msgid "GID" +msgstr "GID" -msgid "User category the rule applies to" -msgstr "Kategoria użytkowników, do których zastosowywana jest reguła" +msgid "User login" +msgstr "Login użytkownika" -msgid "Host category" -msgstr "Kategoria komputerów" +msgid "UID" +msgstr "UID" -msgid "Host category the rule applies to" -msgstr "Kategoria komputerów, do których zastosowywana jest reguła" +msgid "Home directory" +msgstr "Katalog domowy" -msgid "Users" -msgstr "Użytkownicy" +msgid "Login shell" +msgstr "Powłoka logowania" -msgid "User Groups" -msgstr "Grupy użytkowników" +msgid "The hostname to register as" +msgstr "Nazwa komputera, pod jaką zarejestrować" -msgid "Hosts" -msgstr "Komputery" +msgid "The IPA realm" +msgstr "Obszar IPA" -msgid "Host Groups" -msgstr "Grupy komputerów" +msgid "Hardware platform of the host (e.g. Lenovo T61)" +msgstr "Platforma sprzętowa komputera (np. Lenovo T61)" -msgid "Sudo Allow Commands" -msgstr "Polecenia zezwolone sudo" - -msgid "Sudo Deny Commands" -msgstr "Polecenia zabronione sudo" - -msgid "External host" -msgstr "Zewnętrzny komputer" - -msgid "Group description" -msgstr "Opis grupy" - -msgid "Commands" -msgstr "Polecenia" - -msgid "Sudo Command Groups" -msgstr "Grupy polecenia sudo" - -msgid "Permissions" -msgstr "Uprawnienia" - -msgid "Attributes" -msgstr "Atrybuty" - -msgid "Type" -msgstr "Typ" - -msgid "Member of group" -msgstr "Członek grupy" - -msgid "Filter" -msgstr "Filtr" - -msgid "Legal LDAP filter (e.g. ou=Engineering)" -msgstr "Dozwolony filtr LDAP (np. ou=Inżynieria)" - -msgid "Subtree" -msgstr "Poddrzewo" - -msgid "Target group" -msgstr "Grupa docelowa" - -msgid "Host name" -msgstr "Nazwa komputera" - -msgid "A description of this host" -msgstr "Opis tego komputera" - -msgid "Locality" -msgstr "Lokalizacja" - -msgid "Host locality (e.g. \"Baltimore, MD\")" -msgstr "Lokalizacja komputera (np. „Baltimore, MD”)" - -msgid "Location" -msgstr "Położenie" - -msgid "Host location (e.g. \"Lab 2\")" -msgstr "Położenie komputera (np. „Laboratorium nr 2”)" - -msgid "Platform" -msgstr "Platforma" - -msgid "Host hardware platform (e.g. \"Lenovo T61\")" -msgstr "Platforma sprzętowa komputera (np. „Lenovo T61”)" - -msgid "Operating system" -msgstr "System operacyjny" - -msgid "Host operating system and version (e.g. \"Fedora 9\")" -msgstr "System operacyjny komputera i jego wersja (np. „Fedora 9”)" - -msgid "User password" -msgstr "Hasło użytkownika" - -msgid "Password used in bulk enrollment" -msgstr "Hasło używane w zapisywaniu większej części" - -msgid "Principal name" -msgstr "Nazwa naczelnika" - -msgid "Member of host-groups" -msgstr "Element grupy komputerów" - -msgid "Roles" -msgstr "Role" - -msgid "force host name even if not in DNS" -msgstr "wymuszenie nazwy komputera, nawet jeśli nie w DNS" - -msgid "Kerberos principal name for this host" -msgstr "Nazwa naczelnika Kerberosa dla tego komputera" - -msgid "Service group name" -msgstr "Nazwa grupy usługi" - -msgid "HBAC service group description" -msgstr "Opis grupy usługi HBAC" - -msgid "ACI name" -msgstr "Nazwa ACI" - -msgid "User group" -msgstr "Grupa użytkowników" - -msgid "User group ACI grants access to" -msgstr "Grupa użytkowników, do której ACI zapewnia dostęp" - -msgid "Member of" -msgstr "Element" - -msgid "Member of a group" -msgstr "Element grupy" - -msgid "Subtree to apply ACI to" -msgstr "Poddrzewo, do którego zastosować ACI" - -msgid "Group to apply ACI to" -msgstr "Grupa, do której zastosować ACI" - -msgid "Target your own entry (self)" -msgstr "Cel własnego wpisu („self”)" - -msgid "Apply ACI to your own entry (self)" -msgstr "Zastosowanie ACI do własnego wpisu („self”)" - -msgid "Service name" -msgstr "Nazwa usługi" - -msgid "LDAP URI" -msgstr "Adres URI LDAP" - -msgid "LDAP URI of DS server to migrate from" -msgstr "Adres URI LDAP serwera DS, z którego migrować" - -msgid "bind password" -msgstr "hasło Bind" - -msgid "Bind DN" -msgstr "DN dowiązania" - -msgid "User container" -msgstr "Kontener użytkownika" - -msgid "Group container" -msgstr "Kontener grupy" - -msgid "LDAP schema" -msgstr "Schemat LDAP" - -msgid "Lists of objects migrated; categorized by type." -msgstr "Lista migrowanych obiektów, ułożonych w kategorie według typu." - -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." - -msgid "False if migration mode was disabled." -msgstr "Fałsz, jeśli wyłączono tryb migracji" - -msgid "Sudo Command" -msgstr "Polecenie sudo" - -msgid "A description of this command" -msgstr "Opis tego polecenia" - -msgid "Key" -msgstr "Klucz" - -msgid "Mount information" -msgstr "Informacje o montowaniu" - -msgid "description" -msgstr "opis" - -msgid "Map" -msgstr "Mapa" - -msgid "Mount point" -msgstr "Punkt montowania" - -msgid "Parent map" -msgstr "Mapa nadrzędna" +msgid "Operating System and version of the host (e.g. Fedora 9)" +msgstr "System operacyjny komputera i jego wersja (np. Fedora 9)" msgid "Group" msgstr "Grupa" @@ -934,8 +501,128 @@ msgstr "Użytkownik" msgid "Display effective policy for a specific user" msgstr "Wyświetlanie aktywnej polityki dla podanego użytkownika" -msgid "User login" -msgstr "Login użytkownika" +msgid "Rule name" +msgstr "Nazwa reguły" + +msgid "Enabled" +msgstr "Włączone" + +msgid "User category" +msgstr "Kategoria użytkowników" + +msgid "User category the rule applies to" +msgstr "Kategoria użytkowników, do których zastosowywana jest reguła" + +msgid "Host category" +msgstr "Kategoria komputerów" + +msgid "Host category the rule applies to" +msgstr "Kategoria komputerów, do których zastosowywana jest reguła" + +msgid "Users" +msgstr "Użytkownicy" + +msgid "User Groups" +msgstr "Grupy użytkowników" + +msgid "Hosts" +msgstr "Komputery" + +msgid "Host Groups" +msgstr "Grupy komputerów" + +msgid "External host" +msgstr "Zewnętrzny komputer" + +msgid "Sudo Allow Commands" +msgstr "Polecenia zezwolone sudo" + +msgid "Sudo Deny Commands" +msgstr "Polecenia zabronione sudo" + +msgid "A description of this role-group" +msgstr "Opis tej grupy rol" + +msgid "Member users" +msgstr "Elementy użytkowników" + +msgid "Member groups" +msgstr "Elementy grupy" + +msgid "Member hosts" +msgstr "Element komputerów" + +msgid "Member host-groups" +msgstr "Element grupy komputerów" + +msgid "Member services" +msgstr "Usługi elementów" + +msgid "Netgroup name" +msgstr "Nazwa grupy sieciowej" + +msgid "Netgroup description" +msgstr "Opis grupy sieciowej" + +msgid "NIS domain name" +msgstr "Nazwa domeny NIS" + +msgid "IPA unique ID" +msgstr "Unikalny identyfikator IPA" + +msgid "Member Host" +msgstr "Komputer elementu" + +msgid "Permissions" +msgstr "Uprawnienia" + +msgid "Attributes" +msgstr "Atrybuty" + +msgid "User group" +msgstr "Grupa użytkowników" + +msgid "User group ACI grants access to" +msgstr "Grupa użytkowników, do której ACI zapewnia dostęp" + +msgid "Principal" +msgstr "Naczelnik" + +msgid "Service principal" +msgstr "Naczelnik usługi" + +msgid "Certificate" +msgstr "Certyfikat" + +msgid "Base-64 encoded server certificate" +msgstr "Certyfikat serwera zakodowany za pomocą Base-64" + +msgid "Roles" +msgstr "Role" + +msgid "Keytab" +msgstr "Tabela kluczy" + +msgid "force principal name even if not in DNS" +msgstr "wymuszenie nazwy naczelnika, nawet jeśli nie w DNS" + +msgid "Rule type" +msgstr "Typ reguły" + +msgid "Service category" +msgstr "Kategoria usług" + +msgid "Service category the rule applies to" +msgstr "Kategoria usług, do których zastosowywana jest reguła" + +msgid "Services" +msgstr "Usługi" + +msgid "Service Groups" +msgstr "Grupy usług" + +msgid "Service name" +msgstr "Nazwa usługi" msgid "First name" msgstr "Imię" @@ -946,29 +633,20 @@ msgstr "Nazwisko" msgid "Full name" msgstr "Pełna nazwa" -msgid "Home directory" -msgstr "Katalog domowy" - -msgid "Login shell" -msgstr "Powłoka logowania" - msgid "Kerberos principal" msgstr "Naczelnik Kerberosa" msgid "Email address" msgstr "Adres e-mail" -msgid "UID" -msgstr "UID" +msgid "Password" +msgstr "Hasło" msgid "User ID Number (system will assign one if not provided)" msgstr "" "Numer identyfikacyjny użytkownika (system go przydzieli, jeśli nie zostanie " "podany)" -msgid "GID" -msgstr "GID" - msgid "Street address" msgstr "Adres zamieszkania" @@ -987,54 +665,132 @@ msgstr "Numer pagera" msgid "Fax Number" msgstr "Numer faksu" +msgid "Class" +msgstr "Klasa" + msgid "Member of groups" msgstr "Członek grup" -msgid "Self" -msgstr "Własny" +msgid "Forward to server instead of running locally" +msgstr "Przekazanie do serwera zamiast uruchamiania lokalnie" -msgid "Display user record for current Kerberos principal" -msgstr "Wyświetlenie wpisu użytkownika dla bieżącego naczelnika Kerberosa" +msgid "Dictionary mapping variable name to value" +msgstr "Nazwa zmiennej mapowania słownika do ustawienia jako wartość" -msgid "Group name" -msgstr "Nazwa grupy" +msgid "Total number of variables env (>= count)" +msgstr "Całkowita liczba zmiennych środowiskowych (>= licznik)" -msgid "GID (use this option to set it manually)" -msgstr "GID (ta opcja umożliwia jego ręczne ustawienie)" +msgid "Number of variables returned (<= total)" +msgstr "Liczba zwróconych zmiennych (<= razem)" -msgid "Member users" -msgstr "Elementy użytkowników" +msgid "Number of plugins loaded" +msgstr "Liczba wczytanych wtyczek" -msgid "Member groups" -msgstr "Elementy grupy" +msgid "Type" +msgstr "Typ" -msgid "change to a POSIX group" -msgstr "zmiana na grupę POSIX" +msgid "Key" +msgstr "Klucz" -msgid "New Password" -msgstr "Nowe hasło" +msgid "Dict of I18N messages" +msgstr "Słownik komunikatów umiędzynaradawiania" -msgid "The hostname to register as" -msgstr "Nazwa komputera, pod jaką zarejestrować" +msgid "Name of object to export" +msgstr "Nazwa obiektu do wyeksportowania" -msgid "The IPA realm" -msgstr "Obszar IPA" +msgid "Dict of JSON encoded IPA Objects" +msgstr "Słownik obiektów IPA zakodowanych w formacie JSON" -msgid "Hardware platform of the host (e.g. Lenovo T61)" -msgstr "Platforma sprzętowa komputera (np. Lenovo T61)" +msgid "Subtree" +msgstr "Poddrzewo" -msgid "Operating System and version of the host (e.g. Fedora 9)" -msgstr "System operacyjny komputera i jego wersja (np. Fedora 9)" +msgid "Member of group" +msgstr "Członek grupy" -msgid "A description of this role-group" -msgstr "Opis tej grupy rol" +msgid "Target group" +msgstr "Grupa docelowa" -msgid "Member hosts" -msgstr "Element komputerów" +msgid "Service group name" +msgstr "Nazwa grupy usługi" -msgid "Member host-groups" +msgid "HBAC service group description" +msgstr "Opis grupy usługi HBAC" + +msgid "ACI name" +msgstr "Nazwa ACI" + +msgid "Member of" +msgstr "Element" + +msgid "Member of a group" +msgstr "Element grupy" + +msgid "Filter" +msgstr "Filtr" + +msgid "Legal LDAP filter (e.g. ou=Engineering)" +msgstr "Dozwolony filtr LDAP (np. ou=Inżynieria)" + +msgid "Subtree to apply ACI to" +msgstr "Poddrzewo, do którego zastosować ACI" + +msgid "Group to apply ACI to" +msgstr "Grupa, do której zastosować ACI" + +msgid "Target your own entry (self)" +msgstr "Cel własnego wpisu („self”)" + +msgid "Apply ACI to your own entry (self)" +msgstr "Zastosowanie ACI do własnego wpisu („self”)" + +msgid "Host name" +msgstr "Nazwa komputera" + +msgid "A description of this host" +msgstr "Opis tego komputera" + +msgid "Locality" +msgstr "Lokalizacja" + +msgid "Host locality (e.g. \"Baltimore, MD\")" +msgstr "Lokalizacja komputera (np. „Baltimore, MD”)" + +msgid "Location" +msgstr "Położenie" + +msgid "Host location (e.g. \"Lab 2\")" +msgstr "Położenie komputera (np. „Laboratorium nr 2”)" + +msgid "Platform" +msgstr "Platforma" + +msgid "Host hardware platform (e.g. \"Lenovo T61\")" +msgstr "Platforma sprzętowa komputera (np. „Lenovo T61”)" + +msgid "Operating system" +msgstr "System operacyjny" + +msgid "Host operating system and version (e.g. \"Fedora 9\")" +msgstr "System operacyjny komputera i jego wersja (np. „Fedora 9”)" + +msgid "User password" +msgstr "Hasło użytkownika" + +msgid "Password used in bulk enrollment" +msgstr "Hasło używane w zapisywaniu większej części" + +msgid "Principal name" +msgstr "Nazwa naczelnika" + +msgid "Member of host-groups" msgstr "Element grupy komputerów" +msgid "force host name even if not in DNS" +msgstr "wymuszenie nazwy komputera, nawet jeśli nie w DNS" + +msgid "Kerberos principal name for this host" +msgstr "Nazwa naczelnika Kerberosa dla tego komputera" + msgid "Host-group" msgstr "Grupa komputerów" @@ -1044,109 +800,6 @@ msgstr "Nazwa grupy komputerów" msgid "A description of this host-group" msgstr "Opis tej grupy komputerów" -msgid "Netgroup name" -msgstr "Nazwa grupy sieciowej" - -msgid "Netgroup description" -msgstr "Opis grupy sieciowej" - -msgid "NIS domain name" -msgstr "Nazwa domeny NIS" - -msgid "IPA unique ID" -msgstr "Unikalny identyfikator IPA" - -msgid "Member Host" -msgstr "Komputer elementu" - -msgid "Time to live" -msgstr "Czas życia" - -msgid "Class" -msgstr "Klasa" - -msgid "Hostname" -msgstr "Nazwa komputera" - -msgid "Target" -msgstr "Cel" - -msgid "Zone name" -msgstr "Nazwa strefy" - -msgid "Zone name (FQDN)" -msgstr "Nazwa strefy (FQDN)" - -msgid "Administrator e-mail address" -msgstr "Adres e-mail administratora" - -msgid "SOA serial" -msgstr "Numer seryjny SOA" - -msgid "SOA refresh" -msgstr "Odświeżenie SOA" - -msgid "SOA retry" -msgstr "Ponowienie SOA" - -msgid "SOA expire" -msgstr "Wygaszenie SOA" - -msgid "SOA minimum" -msgstr "Minimalne SOA" - -msgid "SOA class" -msgstr "Klasa SOA" - -msgid "BIND update policy" -msgstr "Polityka aktualizacji BIND" - -msgid "Active zone" -msgstr "Aktywna strefa" - -msgid "Delete all associated records" -msgstr "Usuń wszystkie powiązane wpisy" - -msgid "Rule type" -msgstr "Typ reguły" - -msgid "Service category" -msgstr "Kategoria usług" - -msgid "Service category the rule applies to" -msgstr "Kategoria usług, do których zastosowywana jest reguła" - -msgid "Services" -msgstr "Usługi" - -msgid "Service Groups" -msgstr "Grupy usług" - -msgid "Serial number" -msgstr "Numer seryjny" - -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" - -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)" - -msgid "automatically add the principal if it doesn't exist" -msgstr "automatycznie dodaj naczelnika, jeśli nie istnieje" - -msgid "Revoke a certificate." -msgstr "Odrzuć certyfikat." - -msgid "Reason" -msgstr "Przyczyna" - -msgid "Reason for revoking the certificate (0-10)" -msgstr "Przyczyna unieważnienia certyfikatu (0-10)" - -msgid "Request id" -msgstr "Identyfikator żądania" - msgid "Home directory base" msgstr "Podstawa katalogu domowego" @@ -1174,12 +827,162 @@ msgstr "Pola wyszukiwania użytkowników" msgid "Certificate Subject base" msgstr "Podstawa tematu certyfikatu" -msgid "Member services" -msgstr "Usługi elementów" +msgid "LDAP URI" +msgstr "Adres URI LDAP" + +msgid "LDAP URI of DS server to migrate from" +msgstr "Adres URI LDAP serwera DS, z którego migrować" + +msgid "bind password" +msgstr "hasło Bind" + +msgid "Bind DN" +msgstr "DN dowiązania" + +msgid "User container" +msgstr "Kontener użytkownika" + +msgid "Group container" +msgstr "Kontener grupy" + +msgid "LDAP schema" +msgstr "Schemat LDAP" + +msgid "Lists of objects migrated; categorized by type." +msgstr "Lista migrowanych obiektów, ułożonych w kategorie według typu." + +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." + +msgid "False if migration mode was disabled." +msgstr "Fałsz, jeśli wyłączono tryb migracji" + +msgid "Group description" +msgstr "Opis grupy" + +msgid "Commands" +msgstr "Polecenia" + +msgid "Sudo Command Groups" +msgstr "Grupy polecenia sudo" + +msgid "Self" +msgstr "Własny" + +msgid "Display user record for current Kerberos principal" +msgstr "Wyświetlenie wpisu użytkownika dla bieżącego naczelnika Kerberosa" + +msgid "Mount information" +msgstr "Informacje o montowaniu" + +msgid "description" +msgstr "opis" + +msgid "Map" +msgstr "Mapa" + +msgid "Mount point" +msgstr "Punkt montowania" + +msgid "Parent map" +msgstr "Mapa nadrzędna" msgid "Subject" msgstr "Temat" +msgid "Reason" +msgstr "Przyczyna" + +msgid "Reason for revoking the certificate (0-10)" +msgstr "Przyczyna unieważnienia certyfikatu (0-10)" + +msgid "Serial number" +msgstr "Numer seryjny" + +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" + +msgid "automatically add the principal if it doesn't exist" +msgstr "automatycznie dodaj naczelnika, jeśli nie istnieje" + +msgid "Revoke a certificate." +msgstr "Odrzuć certyfikat." + +msgid "Request id" +msgstr "Identyfikator żądania" + +msgid "GID (use this option to set it manually)" +msgstr "GID (ta opcja umożliwia jego ręczne ustawienie)" + +msgid "change to a POSIX group" +msgstr "zmiana na grupę POSIX" + +msgid "Sudo Command" +msgstr "Polecenie sudo" + +msgid "A description of this command" +msgstr "Opis tego polecenia" + +msgid "Zone name" +msgstr "Nazwa strefy" + +msgid "Zone name (FQDN)" +msgstr "Nazwa strefy (FQDN)" + +msgid "Active zone" +msgstr "Aktywna strefa" + +msgid "Time to live" +msgstr "Czas życia" + +msgid "Hostname" +msgstr "Nazwa komputera" + +msgid "Target" +msgstr "Cel" + +msgid "Administrator e-mail address" +msgstr "Adres e-mail administratora" + +msgid "SOA serial" +msgstr "Numer seryjny SOA" + +msgid "SOA refresh" +msgstr "Odświeżenie SOA" + +msgid "SOA retry" +msgstr "Ponowienie SOA" + +msgid "SOA expire" +msgstr "Wygaszenie SOA" + +msgid "SOA minimum" +msgstr "Minimalne SOA" + +msgid "BIND update policy" +msgstr "Polityka aktualizacji BIND" + +msgid "Delete all associated records" +msgstr "Usuń wszystkie powiązane wpisy" + +msgid "New Password" +msgstr "Nowe hasło" + +msgid "Time limit of search in seconds" +msgstr "Ograniczenie czasu wyszukiwania w sekundach" + +msgid "Maximum number of entries returned" +msgstr "Maksymalna liczba zwróconych wpisów" + +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)" + +msgid "SOA class" +msgstr "Klasa SOA" + msgid "" "Passwords have been migrated in pre-hashed format.\n" "IPA is unable to generate Kerberos keys unless provided\n" @@ -1194,15 +997,12 @@ msgstr "" "https://twoja.domena/ipa/migration/, zanim będą mogli\n" "używać swoich kont Kerberosa." -msgid "Data" -msgstr "Dane" - #, python-format msgid "File %(file)s not found" msgstr "Nie odnaleziono pliku %(file)s" -msgid "Delete all?" -msgstr "Usunąć wszystko?" +msgid "Data" +msgstr "Dane" msgid "Unrevoked" msgstr "Cofnięto unieważnienie" @@ -1210,23 +1010,80 @@ msgstr "Cofnięto unieważnienie" msgid "Error" msgstr "Błąd" -msgid "Failed members" -msgstr "Elementy, które się nie powiodły" +msgid "Delete all?" +msgstr "Usunąć wszystko?" -msgid "Out of memory\n" -msgstr "Brak pamięci\n" +#, python-format +msgid "member %s" +msgstr "członek %s" -msgid "Out of memory!?\n" -msgstr "Brak pamięci?\n" +msgid "Kerberos Ticket Policy" +msgstr "Polityka zgłoszeń Kerberosa" -msgid "Enctype comparison failed!\n" -msgstr "Porównanie typów szyfrowania się nie powiodło.\n" +#, 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)" -msgid "Failed to create random key!\n" -msgstr "Utworzenie losowego klucza się nie powiodło.\n" +msgid "Password Policy" +msgstr "Polityka haseł" -msgid "Failed to create key!\n" -msgstr "Utworzenie klucza się nie powiodło.\n" +msgid "Maximum password life must be greater than minimum." +msgstr "Maksymalny czas życia hasła musi być wyższy niż minimalny." + +msgid "priority cannot be set on global policy" +msgstr "nie można ustawiać priorytetu dla globalnej polityki" + +msgid "Netgroups" +msgstr "Grupy sieciowe" + +msgid "Issuer" +msgstr "Wydawca" + +msgid "Not Before" +msgstr "Nie wcześniej" + +msgid "Not After" +msgstr "Nie po" + +msgid "Fingerprint (SHA1)" +msgstr "Odcisk (SHA1)" + +msgid "Revocation reason" +msgstr "Przyczyna unieważnienia" + +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "Dodano usługę „%(value)s”" + +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "Usunięto usługę „%(value)s”" + +#, python-format +msgid "Modified service \"%(value)s\"" +msgstr "Zmodyfikowano usługę „%(value)s”" + +#, 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" + +msgid "DNS is not configured" +msgstr "DNS nie jest skonfigurowany" + +msgid "Access time" +msgstr "Czas dostępu" + +#, python-format +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" msgid "Add" msgstr "Dodaj" @@ -1276,9 +1133,6 @@ msgstr "Zalogowano jako" msgid "Attribute" msgstr "Atrybut" -msgid "Revocation reason" -msgstr "Przyczyna unieważnienia" - msgid "New Certificate" msgstr "Nowy certyfikat" @@ -1288,9 +1142,6 @@ msgstr "Odrzucono certyfikat" msgid "Status" msgstr "Stan" -msgid "Issuer" -msgstr "Wydawca" - msgid "DNS Zone Settings" msgstr "Ustawienia strefy DNS" @@ -1303,15 +1154,6 @@ msgstr "Nazwa komputera" msgid "Set OTP" msgstr "Ustaw OTP" -msgid "Kerberos Ticket Policy" -msgstr "Polityka zgłoszeń Kerberosa" - -msgid "Netgroups" -msgstr "Grupy sieciowe" - -msgid "Password Policy" -msgstr "Polityka haseł" - msgid "Account Settings" msgstr "Ustawienia konta" @@ -1342,75 +1184,6 @@ msgstr "Automatyczne montowanie" msgid "DNS" msgstr "DNS" -msgid "Member service groups" -msgstr "Grupy usługi elementów" - -#, python-format -msgid "container entry (%(container)s) not found" -msgstr "nie odnaleziono wpisu kontenera (%(container)s)" - -#, python-format -msgid "%(parent)s: %(oname)s not found" -msgstr "%(parent)s: nie odnaleziono %(oname)s" - -#, python-format -msgid "%(pkey)s: %(oname)s not found" -msgstr "%(pkey)s: nie odnaleziono %(oname)s" - -msgid "the entry was deleted while being modified" -msgstr "wpis został usunięty podczas modyfikowania" - -#, python-format -msgid "member %s" -msgstr "członek %s" - -msgid "Not Before" -msgstr "Nie wcześniej" - -msgid "Not After" -msgstr "Nie po" - -msgid "Fingerprint (SHA1)" -msgstr "Odcisk (SHA1)" - -#, python-format -msgid "Added service \"%(value)s\"" -msgstr "Dodano usługę „%(value)s”" - -#, python-format -msgid "Deleted service \"%(value)s\"" -msgstr "Usunięto usługę „%(value)s”" - -#, python-format -msgid "Modified service \"%(value)s\"" -msgstr "Zmodyfikowano usługę „%(value)s”" - -#, 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" - -#, python-format -msgid "Added host \"%(value)s\"" -msgstr "Dodano komputer „%(value)s”" - -#, python-format -msgid "Deleted host \"%(value)s\"" -msgstr "Usunięto komputer „%(value)s”" - -#, python-format -msgid "Modified host \"%(value)s\"" -msgstr "Zmodyfikowano komputer „%(value)s”" - -#, 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" - msgid "A list of ACI values" msgstr "Lista wartości ACI" @@ -1459,8 +1232,64 @@ msgstr[0] "Pasuje %(count)d ACI" msgstr[1] "Pasują %(count)d ACI" msgstr[2] "Pasuje %(count)d ACI" -msgid "DNS is not configured" -msgstr "DNS nie jest skonfigurowany" +msgid "Member service groups" +msgstr "Grupy usługi elementów" + +#, python-format +msgid "container entry (%(container)s) not found" +msgstr "nie odnaleziono wpisu kontenera (%(container)s)" + +#, python-format +msgid "%(parent)s: %(oname)s not found" +msgstr "%(parent)s: nie odnaleziono %(oname)s" + +#, python-format +msgid "%(pkey)s: %(oname)s not found" +msgstr "%(pkey)s: nie odnaleziono %(oname)s" + +msgid "the entry was deleted while being modified" +msgstr "wpis został usunięty podczas modyfikowania" + +#, python-format +msgid "Added host \"%(value)s\"" +msgstr "Dodano komputer „%(value)s”" + +#, python-format +msgid "Deleted host \"%(value)s\"" +msgstr "Usunięto komputer „%(value)s”" + +#, python-format +msgid "Modified host \"%(value)s\"" +msgstr "Zmodyfikowano komputer „%(value)s”" + +#, 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" + +#, python-format +msgid "Added hostgroup \"%(value)s\"" +msgstr "Dodano grupę komputerów „%(value)s”" + +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" +msgstr "Usunięto grupę komputerów „%(value)s”" + +#, python-format +msgid "Modified hostgroup \"%(value)s\"" +msgstr "Zmodyfikowano grupę komputerów „%(value)s”" + +#, 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" + +msgid "Configuration" +msgstr "Konfiguracja" #, python-format msgid "" @@ -1476,24 +1305,6 @@ msgstr "" "Dodanie użytkownika do domyślnej grupy się nie powiodło. Należy użyć " "polecenia „ipa group-add-member”, aby dodać go ręcznie." -msgid "Automount Maps" -msgstr "Automatyczne montowanie map" - -msgid "Automount Keys" -msgstr "Automatyczne montowanie kluczy" - -#, 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)" - -msgid "Maximum password life must be greater than minimum." -msgstr "Maksymalny czas życia hasła musi być wyższy niż minimalny." - -msgid "priority cannot be set on global policy" -msgstr "nie można ustawiać priorytetu dla globalnej polityki" - #, python-format msgid "Added user \"%(value)s\"" msgstr "Dodano użytkownika „%(value)s”" @@ -1506,13 +1317,6 @@ msgstr "Usunięto użytkownika „%(value)s”" msgid "Modified user \"%(value)s\"" msgstr "Zmodyfikowano użytkownika „%(value)s”" -#, python-format -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" - #, python-format msgid "Disabled user account \"%(value)s\"" msgstr "Wyłączono konto użytkownika „%(value)s”" @@ -1521,6 +1325,18 @@ msgstr "Wyłączono konto użytkownika „%(value)s”" msgid "Enabled user account \"%(value)s\"" msgstr "Włączono konto użytkownika „%(value)s”" +msgid "Automount Maps" +msgstr "Automatyczne montowanie map" + +msgid "Automount Keys" +msgstr "Automatyczne montowanie kluczy" + +msgid "Request status" +msgstr "Stan żądania" + +msgid "Revoked" +msgstr "Unieważniono" + #, python-format msgid "Added group \"%(value)s\"" msgstr "Dodano grupę „%(value)s”" @@ -1553,29 +1369,6 @@ msgstr "modyfikowanie wpisów grup nie jest dozwolone" msgid "Not a managed group" msgstr "Nie jest zarządzaną grupą" -#, python-format -msgid "Changed password for \"%(value)s\"" -msgstr "Zmieniono hasło dla „%(value)s”" - -#, python-format -msgid "Added hostgroup \"%(value)s\"" -msgstr "Dodano grupę komputerów „%(value)s”" - -#, python-format -msgid "Deleted hostgroup \"%(value)s\"" -msgstr "Usunięto grupę komputerów „%(value)s”" - -#, python-format -msgid "Modified hostgroup \"%(value)s\"" -msgstr "Zmodyfikowano grupę komputerów „%(value)s”" - -#, 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" - #, python-format msgid "Found '%(value)s'" msgstr "Odnaleziono „%(value)s”" @@ -1584,18 +1377,225 @@ msgstr "Odnaleziono „%(value)s”" msgid "Host '%(host)s' not found" msgstr "Nie odnaleziono komputera „%(host)s”" -msgid "Access time" -msgstr "Czas dostępu" +#, python-format +msgid "Changed password for \"%(value)s\"" +msgstr "Zmieniono hasło dla „%(value)s”" + +msgid "A dictionary representing an LDAP entry" +msgstr "Słownik reprezentujący wpis LDAP" + +msgid "A list of LDAP entries" +msgstr "Lista wpisów LDAP" + +msgid "All commands should at least have a result" +msgstr "Wszystkie polecenia powinny powiadać przynajmniej wynik" + +msgid "Results are truncated, try a more specific search" +msgstr "" +"Wyniki zostały obcięte, proszę spróbować bardziej konkretnego wyszukiwania" + +#, python-format +msgid "%(count)d variables" +msgstr "%(count)d zmiennych" + +#, 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" + +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "Proszę podać %(label)s ponownie, aby sprawdzić: " + +msgid "incorrect type" +msgstr "niepoprawny typ" + +msgid "Only one value is allowed" +msgstr "Dozwolona jest tylko jedna wartość" + +msgid "must be True or False" +msgstr "musi być prawdą lub fałszem" + +msgid "must be an integer" +msgstr "musi być liczba całkowitą" + +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "musi wynosić co najmniej %(minvalue)d" + +#, python-format +msgid "can be at most %(maxvalue)d" +msgstr "może wynosić co najwyżej %(maxvalue)d" + +msgid "must be a decimal number" +msgstr "musi być liczbą dziesiętną" + +#, python-format +msgid "must match pattern \"%(pattern)s\"" +msgstr "musi pasować do wzorca „%(pattern)s”" + +msgid "must be binary data" +msgstr "musi być danymi binarnymi" + +#, python-format +msgid "must be at least %(minlength)d bytes" +msgstr "musi wynosić co najmniej %(minlength)d bajtów" + +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "może wynosić co najwyżej %(maxlength)d bajtów" + +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "musi wynosić dokładnie %(length)d bajtów" #, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "Dekodowanie żądania podpisywania certyfikatu się nie powiodło: %s" -msgid "Request status" -msgstr "Stan żądania" +msgid "must be Unicode text" +msgstr "musi być tekstem w unikodzie" -msgid "Revoked" -msgstr "Unieważniono" +#, python-format +msgid "must be at least %(minlength)d characters" +msgstr "musi wynosić co najmniej %(minlength)d znaków" -msgid "Configuration" -msgstr "Konfiguracja" +#, python-format +msgid "can be at most %(maxlength)d characters" +msgstr "może wynosić co najwyżej %(maxlength)d znaków" + +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "musi wynosić dokładnie %(length)d znaków" + +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" +msgstr "nieznany błąd %(code)d z %(server)s: %(error)s" + +msgid "an internal error has occurred" +msgstr "wystąpił wewnętrzny błąd" + +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" +msgstr "Nieprawidłowe żądanie JSON-RPC: %(error)s" + +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" +msgstr "Błąd Kerberosa: %(major)s/%(minor)s" + +msgid "did not receive Kerberos credentials" +msgstr "nie otrzymano danych uwierzytelniających Kerberosa" + +msgid "No credentials cache found" +msgstr "Nie odnaleziono pamięci podręcznej danych uwierzytelniających" + +msgid "Ticket expired" +msgstr "Zgłoszenie wygasło" + +msgid "Credentials cache permissions incorrect" +msgstr "" +"Uprawnienia pamięci podręcznej danych uwierzytelniających są niepoprawne" + +msgid "Bad format in credentials cache" +msgstr "Błędny format w pamięci podręcznej danych uwierzytelniających" + +msgid "Cannot resolve KDC for requested realm" +msgstr "Nie można rozwiązać KDC dla żądanego obszaru" + +#, python-format +msgid "Insufficient access: %(info)s" +msgstr "Niewystarczający dostęp: %(info)s" + +msgid "Passwords do not match" +msgstr "Hasła się nie zgadzają" + +msgid "Command not implemented" +msgstr "Polecenie nie jest zaimplementowane" + +#, python-format +msgid "%(reason)s" +msgstr "%(reason)s" + +msgid "This entry already exists" +msgstr "Ten wpis już istnieje" + +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ę" + +#, python-format +msgid "" +"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" + +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" + +msgid "This command requires root access" +msgstr "To polecenie wymaga dostępu roota" + +msgid "This is already a posix group" +msgstr "To jest już grupa POSIX" + +msgid "A group may not be a member of itself" +msgstr "Grupa nie może być własnym elementem" + +#, python-format +msgid "Base64 decoding failed: %(reason)s" +msgstr "Dekodowanie base64 się nie powiodło: %(reason)s" + +msgid "A group may not be added as a member of itself" +msgstr "Nie można dodać grupy jako elementu jej samej" + +msgid "The default users group cannot be removed" +msgstr "Nie można usunąć domyślnej grupy użytkowników" + +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." + +#, python-format +msgid "%(attr)s does not contain '%(value)s'" +msgstr "%(attr)s nie zawiera „%(value)s”" + +msgid "change collided with another change" +msgstr "zmiana koliduje z inną zmianą" + +msgid "no modifications to be performed" +msgstr "żadne modyfikacje nie zostaną wykonane" + +msgid "limits exceeded for this query" +msgstr "przekroczono ograniczenia dla tego zapytania" + +#, python-format +msgid "%(info)s" +msgstr "%(info)s" + +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" +msgstr "Nie można ukończyć działania na certyfikacie: %(error)s" + +#, python-format +msgid "Certificate format error: %(error)s" +msgstr "Błąd formatu certyfikatu: %(error)s" + +msgid "Out of memory\n" +msgstr "Brak pamięci\n" + +msgid "Out of memory!?\n" +msgstr "Brak pamięci?\n" + +msgid "Enctype comparison failed!\n" +msgstr "Porównanie typów szyfrowania się nie powiodło.\n" + +msgid "Failed to create random key!\n" +msgstr "Utworzenie losowego klucza się nie powiodło.\n" + +msgid "Failed to create key!\n" +msgstr "Utworzenie klucza się nie powiodło.\n" diff --git a/po/pt_BR.po b/po/pt_BR.po index e68ff49c9..9c6e50d1e 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -1,9 +1,9 @@ # Marco Aurélio Krause , 2015. #zanata msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -14,12 +14,6 @@ msgstr "" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -msgid "Passwords do not match" -msgstr "As senhas não coincidem." - -msgid "Command not implemented" -msgstr "Comando não implementado" - #, c-format msgid "Passwords do not match!" msgstr "As senhas não coincidem!" @@ -50,3 +44,9 @@ msgstr "Opções obsoletas" msgid "No file to read" msgstr "Nenhum arquivo para ler" + +msgid "Passwords do not match" +msgstr "As senhas não coincidem." + +msgid "Command not implemented" +msgstr "Comando não implementado" diff --git a/po/ru.po b/po/ru.po index 530e45b7c..05a1ac818 100644 --- a/po/ru.po +++ b/po/ru.po @@ -1,9 +1,9 @@ # Alex , 2015. #zanata msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -15,10 +15,1492 @@ msgstr "" "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" +#, c-format +msgid "Passwords do not match!" +msgstr "Пароли не совпадают!" + +msgid "LDAP DN" +msgstr "LDAP DN" + +msgid "LDAP password" +msgstr "Пароль LDAP" + +msgid "hostname" +msgstr "Имя узла" + +msgid "LDAP basedn" +msgstr "LDAP basedn" + +msgid "basedn" +msgstr "basedn" + +#, c-format +msgid "kvno %d\n" +msgstr "kvno %d\n" + +#, c-format +msgid "cannot open configuration file %s\n" +msgstr "невозможно открыть конфигурационный файл %s\n" + #, python-format msgid "objectclass %s not found" msgstr "класс объектов %s не найден" +msgid "Failed to remove" +msgstr "Ошибка при удалении" + +msgid "Failed RunAs" +msgstr "Ошибка \"запустить как\"" + +msgid "Failed RunAsGroup" +msgstr "Ошибка \"запустить как группа\"" + +msgid "Failed profiles" +msgstr "Ошибка профилей" + +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." +msgstr "" +"Добавить пару атрибут/значение. Формат атрибут=значение. Атрибут\n" +"должен быть частью схемы." + +msgid "Number of members added" +msgstr "Количество добавленных членов" + +msgid "A string searched in all relevant object attributes" +msgstr "Поиск по всем атрибутам объекта" + +msgid "Time Limit" +msgstr "Ограничение по времени" + +msgid "Size Limit" +msgstr "Ограничение по размеру" + +msgid "Primary key only" +msgstr "Только главный ключ" + +msgid "Number of entries returned" +msgstr "Количество вернутых значений" + +msgid "True if not all results were returned" +msgstr "Верно если не все результаты были возвращены" + +msgid "Members that could not be removed" +msgstr "Члены не могут быть удалены" + +msgid "Number of members removed" +msgstr "Количество удалённых членов" + +msgid "Rights" +msgstr "Права" + +msgid "Description" +msgstr "Описание" + +msgid "Group name" +msgstr "Имя группы" + +msgid "GID" +msgstr "ID группы" + +msgid "Group ID Number" +msgstr "ID группы" + +msgid "User login" +msgstr "Логин пользователя" + +msgid "UID" +msgstr "UID" + +msgid "GECOS" +msgstr "GECOS" + +msgid "Home directory" +msgstr "Домашний каталог" + +msgid "Login shell" +msgstr "Оболочка входа" + +msgid "SSH public key" +msgstr "SSH публичный ключ" + +msgid "Rename" +msgstr "Переименовать" + +msgid "hosts" +msgstr "узлы" + +msgid "Hardware platform of the host (e.g. Lenovo T61)" +msgstr "Аппаратная платформа узла (например, Lenovo T61)" + +msgid "Operating System and version of the host (e.g. Fedora 9)" +msgstr "Операционная система и версия узла (например, Fedora 9)" + +msgid "Priority" +msgstr "Приоритет" + +msgid "User" +msgstr "Пользователь" + +msgid "Rule name" +msgstr "Имя правила" + +msgid "Enabled" +msgstr "Включено" + +msgid "User category" +msgstr "Категория пользователя" + +msgid "Host category" +msgstr "Категория хоста" + +msgid "Users" +msgstr "Пользователи" + +msgid "User Groups" +msgstr "Группы пользователей" + +msgid "Hosts" +msgstr "Узлы" + +msgid "Host Groups" +msgstr "Группы узлов" + +msgid "External host" +msgstr "Внешний узел" + +msgid "user" +msgstr "пользователь" + +msgid "group" +msgstr "группа" + +msgid "host" +msgstr "узел" + +msgid "host group" +msgstr "группа узлов" + +msgid "Permissions" +msgstr "Разрешения" + +msgid "Attributes" +msgstr "Атрибуты" + +msgid "User group" +msgstr "Группа пользователей" + +msgid "User group ACI grants access to" +msgstr "Добавить пользовательскую группу ACL на" + +msgid "Principal" +msgstr "Основной" + +msgid "Certificate" +msgstr "Сертификат" + +msgid "Base-64 encoded server certificate" +msgstr "Base-64 шифрованый сертификат сервера" + +msgid "Roles" +msgstr "Роли" + +msgid "Force" +msgstr "Принудительно" + +msgid "Rule type" +msgstr "Тип правила" + +msgid "Service category" +msgstr "Категория службы" + +msgid "Services" +msgstr "Службы" + +msgid "Service Groups" +msgstr "Группы сервисов" + +msgid "permission" +msgstr "разрешение" + +msgid "permissions" +msgstr "разрешения" + +msgid "Service name" +msgstr "Имя службы" + +msgid "First name" +msgstr "Имя" + +msgid "Last name" +msgstr "Фамилия" + +msgid "Full name" +msgstr "Полное имя" + +msgid "Display name" +msgstr "Отображаемое имя" + +msgid "Initials" +msgstr "Инициалы" + +msgid "Kerberos principal" +msgstr "Kerberos владелец" + +msgid "Email address" +msgstr "Электронный адрес" + +msgid "Password" +msgstr "Пароль" + +msgid "Prompt to set the user password" +msgstr "Запросить пароль у пользователя" + +msgid "Generate a random user password" +msgstr "Сгенерировать случайный пользовательский пароль" + +msgid "Random password" +msgstr "Случайный пароль" + +msgid "User ID Number (system will assign one if not provided)" +msgstr "ID пользователя (если не указан, система назначит его самостоятельно)" + +msgid "Street address" +msgstr "Адрес" + +msgid "City" +msgstr "Город" + +msgid "State/Province" +msgstr "Область/республика" + +msgid "ZIP" +msgstr "Индекс" + +msgid "Telephone Number" +msgstr "Телефонный номер" + +msgid "Mobile Telephone Number" +msgstr "Мобильный телефонный номер" + +msgid "Pager Number" +msgstr "Номер пейджера" + +msgid "Fax Number" +msgstr "Номер факса" + +msgid "Org. Unit" +msgstr "Отдел" + +msgid "Job Title" +msgstr "Должность" + +msgid "Manager" +msgstr "Руководитель" + +msgid "Car License" +msgstr "Номер автомобиля" + +msgid "User authentication types" +msgstr "Типы авторизации пользователей" + +msgid "Types of supported user authentication" +msgstr "Типы авторизаций поддерживаемые пользователем" + +msgid "Class" +msgstr "Класс" + +msgid "RADIUS proxy configuration" +msgstr "RADIUS конфигурация прокси" + +msgid "RADIUS proxy username" +msgstr "RADIUS имя пользователя прокси" + +msgid "Department Number" +msgstr "Номер отдела" + +msgid "Preferred Language" +msgstr "Предпочитаемый язык" + +msgid "Kerberos keys available" +msgstr "Kerberos ключей доступно" + +msgid "role" +msgstr "роль" + +msgid "Server" +msgstr "Сервер" + +msgid "Profile ID" +msgstr "Идентификатор профиля" + +msgid "Type" +msgstr "Тип" + +msgid "Key" +msgstr "Ключ" + +msgid "Algorithm" +msgstr "Алгоритм" + +msgid "Grouping Type" +msgstr "Тип группировки" + +msgid "Inclusive Regex" +msgstr "Включая регулярные выражения" + +msgid "Exclusive Regex" +msgstr "Исключая регулярные выражения" + +msgid "Attribute Key" +msgstr "Значение атрибута" + +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a " +"user" +msgstr "" +"Атрибут для поиска по регулярным выражениям. Для примера полное имя для " +"хоста, или руководитель для пользователя" + +msgid "No wait" +msgstr "Не ждать" + +msgid "Subtree" +msgstr "Поддерево" + +msgid "Target group" +msgstr "Целевая группа" + +msgid "ACI name" +msgstr "Имя ACI" + +msgid "Permission" +msgstr "Разрешения" + +msgid "Permission ACI grants access to" +msgstr "Добавить разрешения ACL на" + +msgid "Permissions to grant(read, write, add, delete, all)" +msgstr "Установить разрешения (для чтения, записи, добавления, удаления, все)" + +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +msgstr "" +"Тип объекта IPA (пользователь, группа, хост, группа хостов, сервис, сетевая " +"группа)" + +msgid "Member of" +msgstr "Член" + +msgid "Member of a group" +msgstr "Член группы" + +msgid "Filter" +msgstr "Фильтр" + +msgid "Group to apply ACI to" +msgstr "Группа для добавления ACL на" + +msgid "ACI prefix" +msgstr "Префикс ACI" + +msgid "Test the ACI syntax but don't write anything" +msgstr "Проверить синтаксис ACL, но никуда не записывать" + +msgid "New ACI name" +msgstr "Новое имя ACL" + +msgid "Location of the ACI" +msgstr "Расположение ACL" + +msgid "Location" +msgstr "Расположение" + +msgid "Platform" +msgstr "Платформа" + +msgid "Host hardware platform (e.g. \"Lenovo T61\")" +msgstr "Аппаратная платформа узла (например, «Lenovo T61»)" + +msgid "Operating system" +msgstr "Операционная система" + +msgid "Host operating system and version (e.g. \"Fedora 9\")" +msgstr "Операционная система узла и ее версия (например, «Fedora 9»)" + +msgid "User password" +msgstr "Пароль пользователя" + +msgid "MAC address" +msgstr "MAC-адрес" + +msgid "Hardware MAC address(es) on this host" +msgstr "MAC-адрес(а) данного узла" + +msgid "Add a new host." +msgstr "Добавить новый узел." + +msgid "IP Address" +msgstr "IP-адрес" + +msgid "Delete a host." +msgstr "Удалить узел." + +msgid "Remove entries from DNS" +msgstr "Удалить записи из DNS" + +msgid "Modify information about a host." +msgstr "Изменить информацию об узле." + +msgid "Update DNS entries" +msgstr "Обновить записи DNS" + +msgid "Host-group" +msgstr "Группа узлов" + +msgid "Maximum username length" +msgstr "Максимальная длина имени пользователя" + +msgid "Default location of home directories" +msgstr "Расположение домашних каталогов по умолчанию" + +msgid "Default shell" +msgstr "Оболочка по умолчанию" + +msgid "Default shell for new users" +msgstr "Оболочка по умолчанию для новых пользователей" + +msgid "Default users group" +msgstr "Группа пользователей по умолчанию" + +msgid "Default group for new users" +msgstr "Группа по умолчанию для новых пользователей" + +msgid "Default e-mail domain" +msgstr "Почтовый домен по умолчанию" + +msgid "Default group objectclasses" +msgstr "Классы объектов для групп по умолчанию" + +msgid "Default group objectclasses (comma-separated list)" +msgstr "Классы объектов для групп по умолчанию (через запятую)" + +msgid "Default user objectclasses" +msgstr "Классы объектов для пользователей по умолчанию" + +msgid "Default user objectclasses (comma-separated list)" +msgstr "Классы объектов для пользователей по умолчанию (через запятую)" + +msgid "Password Expiration Notification (days)" +msgstr "Оповещение об истечении пароля (в дня)" + +msgid "ACL name" +msgstr "ACL имя" + +msgid "Profile category" +msgstr "Категория профиля" + +msgid "Profiles" +msgstr "Профили" + +msgid "Create a new CA ACL." +msgstr "Создать новый CA ACL." + +msgid "Add target hosts and hostgroups to a CA ACL." +msgstr "Добавить целевые хосты или группы хостов к CA ACL." + +msgid "Add profiles to a CA ACL." +msgstr "Добавить профили к CA ACL." + +msgid "Add services to a CA ACL." +msgstr "Добавить службы к CA ACL." + +msgid "Add users and groups to a CA ACL." +msgstr "Добавить пользователей и группы в CA ACL." + +msgid "Delete a CA ACL." +msgstr "Удалить CA ACL." + +msgid "Disable a CA ACL." +msgstr "Выключить CA ACL." + +msgid "Enable a CA ACL." +msgstr "Включить CA ACL." + +msgid "Search for CA ACLs." +msgstr "Поиск по CA ACLs." + +msgid "Modify a CA ACL." +msgstr "Изменить CA ACL." + +msgid "Remove target hosts and hostgroups from a CA ACL." +msgstr "Удалить целевые хосты или группы хостов из CA ACL." + +msgid "Remove profiles from a CA ACL." +msgstr "Удалить профили из CA ACL." + +msgid "Remove services from a CA ACL." +msgstr "Удалить службу из CA ACL." + +msgid "Remove users and groups from a CA ACL." +msgstr "Удалить пользователей из CA ACL." + +msgid "Display the properties of a CA ACL." +msgstr "Показать свойства of a CA ACL." + +msgid "Warning" +msgstr "Предупреждение" + +msgid "Bind DN" +msgstr "Bind DN" + +msgid "LDAP schema" +msgstr "Схема LDAP" + +msgid "Group description" +msgstr "Описание группы" + +msgid "Sudo Command Groups" +msgstr "Группы команды SUDO" + +msgid "Account disabled" +msgstr "Учетная запись отключена" + +msgid "Add a new user." +msgstr "Добавить нового пользователя." + +msgid "Don't create user private group" +msgstr "Невозможно создать собственную группу пользователя" + +msgid "Delete a user." +msgstr "Удалить пользователя." + +msgid "Disable a user account." +msgstr "Отключить учетную запись пользователя." + +msgid "Enable a user account." +msgstr "Включить учетную запись пользователя." + +msgid "Search for users." +msgstr "Поиск пользователей." + +msgid "Modify a user." +msgstr "Изменить пользователя." + +msgid "description" +msgstr "описание" + +msgid "Automount location name." +msgstr "Имя расположения автомонтирования." + +msgid "Map" +msgstr "Карта" + +msgid "Create a new automount key." +msgstr "Создать новый ключ автомонтирования." + +msgid "Create a new automount location." +msgstr "Создать новое расположение автомонтирования." + +msgid "Delete an automount location." +msgstr "Удаление расположения автомонтирования." + +msgid "Search for an automount location." +msgstr "Поиск для расположения автомонтирования." + +msgid "Display an automount location." +msgstr "Отобразить расположения автомонтирования." + +msgid "Generate automount files for a specific location." +msgstr "Сгенерировать файлы автомонтирования для особого расположения." + +msgid "Mount point" +msgstr "Точка монтирования" + +msgid "Search for existing certificates." +msgstr "Поиск по существующим сертификатам." + +msgid "Subject" +msgstr "Объект" + +msgid "Reason" +msgstr "Причина" + +msgid "Reason for revoking the certificate (0-10)" +msgstr "Причина для отзыва сертификата (0-10)" + +msgid "minimum serial number" +msgstr "минимальный серийный номер" + +msgid "maximum serial number" +msgstr "Максимальный серийный номер" + +msgid "Revoked on from this date (YYYY-mm-dd)" +msgstr "Отозван с даты (YYYY-mm-dd)" + +msgid "Serial number" +msgstr "Серийный номер" + +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +msgstr "Серийный номер в десятичной или если есть префикс 0x в HEX формате" + +msgid "Submit a certificate signing request." +msgstr "Отправить запрос подписи сертификата." + +msgid "CSR" +msgstr "CSR" + +msgid "Certificate Profile to use" +msgstr "Использовать сертификат профиля" + +msgid "Revoke a certificate." +msgstr "Отозвать сертификат" + +msgid "Retrieve an existing certificate." +msgstr "Получить существующий сертификат." + +msgid "Output filename" +msgstr "Исходящие имя файла" + +msgid "File to store the certificate in." +msgstr "Файл для сохранения сертификата." + +msgid "Check the status of a certificate signing request." +msgstr "Проверьте статус запроса подписи сертификата." + +msgid "Request id" +msgstr "ID запроса" + +msgid "Create a new group." +msgstr "Создать новую группу." + +msgid "Delete group." +msgstr "Удалить группу." + +msgid "Search for groups." +msgstr "Поиск групп." + +msgid "search for private groups" +msgstr "поиск личных групп" + +msgid "Modify a group." +msgstr "Изменить группу." + +msgid "change to a POSIX group" +msgstr "изменить на группу POSIX" + +msgid "Zone name" +msgstr "Имя зоны" + +msgid "Zone name (FQDN)" +msgstr "Имя зоны (FQDN)" + +msgid "Reverse zone IP network" +msgstr "Зона обратных адресов" + +msgid "Time to live" +msgstr "Время жизни" + +msgid "Records" +msgstr "Записи" + +msgid "Record type" +msgstr "Тип записи" + +msgid "Hostname" +msgstr "Имя узла" + +msgid "Certificate/CRL" +msgstr "Сертификат/СОС" + +msgid "Altitude" +msgstr "Высота над уровнем моря" + +msgid "Size" +msgstr "Размер" + +msgid "Regular Expression" +msgstr "Регулярное выражение" + +msgid "Weight" +msgstr "Вес" + +msgid "Port" +msgstr "Порт" + +msgid "SOA serial" +msgstr "Номер SOA" + +msgid "Dynamic update" +msgstr "Динамическое обновление" + +msgid "Allow dynamic updates." +msgstr "Разрешить динамические обновления." + +msgid "Create new DNS zone (SOA record)." +msgstr "Создать новую зону DNS (SOA-запись)" + +msgid "Time limit of search in seconds" +msgstr "Ограничение времени поиска в секундах" + +msgid "Maximum number of entries returned" +msgstr "Максимальное количество совпадений возвращено" + +msgid "Username" +msgstr "Имя пользователя" + +msgid "Failed to add" +msgstr "Ошибка при добавлении" + +msgid "Master file" +msgstr "Главный файл" + +msgid "Automount master file." +msgstr "Главный файл автомонтирования." + +#, python-format +msgid "File %(file)s not found" +msgstr "Файл %(file)s не найден" + +#, python-format +msgid "key %(key)s already exists" +msgstr "ключ %(key)s уже существует" + +msgid "Data" +msgstr "Данные" + +msgid "Unrevoked" +msgstr "Неотозванный" + +msgid "Error" +msgstr "Ошибка" + +msgid "Delete all?" +msgstr "Удалить все?" + +msgid "" +"\n" +"EXAMPLES:\n" +msgstr "" +"\n" +"ПРИМЕРЫ:\n" + +#, python-format +msgid "Unknown option: %(option)s" +msgstr "Неизвестная опция: %(option)s" + +#, python-format +msgid "member %s" +msgstr "член %s" + +msgid "roles" +msgstr "роли" + +msgid "PKINIT" +msgstr "PKINIT" + +msgid "priority cannot be set on global policy" +msgstr "приоритет не может быть задан для глобальной политики" + +msgid "users" +msgstr "пользователи" + +msgid "Role" +msgstr "Роль" + +msgid "delegation" +msgstr "делегирование" + +msgid "delegations" +msgstr "делегирования" + +msgid "Delegations" +msgstr "Делегирования" + +msgid "Delegation" +msgstr "Делегирование" + +msgid "ACI" +msgstr "ACI" + +msgid "Issuer" +msgstr "Издатель" + +msgid "Not Before" +msgstr "Недействителен до" + +msgid "Not After" +msgstr "Недействителен после" + +msgid "Fingerprint (SHA1)" +msgstr "Отпечаток (SHA1)" + +msgid "Revocation reason" +msgstr "Причина отзыва" + +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "Добавлена служба «%(value)s»" + +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "Удалена служба «%(value)s»" + +msgid "Access time" +msgstr "Время доступа" + +#, python-format +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "Найден %(count)d пользователь" +msgstr[1] "Найдено %(count)d пользователя" +msgstr[2] "Найдено %(count)d пользователей" + +msgid "CA is not configured" +msgstr "CA не настроен" + +msgid "Add" +msgstr "Добавить" + +msgid "Add and Close" +msgstr "Добавить и закрыть" + +msgid "Add and Edit" +msgstr "Добавить и редактировать" + +msgid "Cancel" +msgstr "Отменить" + +msgid "Close" +msgstr "Закрыть" + +msgid "OK" +msgstr "OK" + +msgid "Refresh" +msgstr "Обновить" + +msgid "Delete" +msgstr "Удалить" + +msgid "Reset" +msgstr "Сбросить" + +msgid "Restore" +msgstr "Восстановить" + +msgid "Retry" +msgstr "Получить" + +msgid "Revoke" +msgstr "Отозвать" + +msgid "Set" +msgstr "Уставновить" + +msgid "Update" +msgstr "Обновить" + +msgid "Collapse All" +msgstr "Свернуть все" + +msgid "Expand All" +msgstr "Развернуть все" + +msgid "Hide details" +msgstr "Скрыть детали" + +msgid "URL" +msgstr "URL" + +msgid "Organization" +msgstr "Организация" + +msgid "Organizational Unit" +msgstr "Организационное подразделение" + +msgid "Reason for Revocation" +msgstr "Причина отзыва" + +msgid "User Options" +msgstr "Параметры пользователя" + +msgid "DNS Zone Settings" +msgstr "Настройки зоны DNS" + +msgid "Rules" +msgstr "Правила" + +msgid "Host Certificate" +msgstr "Сертификат узла" + +msgid "Host Name" +msgstr "Имя узла" + +msgid "Kerberos Key" +msgstr "Ключ Kerberos" + +msgid "One-Time-Password" +msgstr "Одноразовый пароль" + +msgid "Reset OTP" +msgstr "Сбросить ОРП" + +msgid "Reset One-Time-Password" +msgstr "Сбросить одноразовый пароль" + +msgid "Set OTP" +msgstr "Установить ОРП" + +msgid "Set One-Time-Password" +msgstr "Установить одноразовый пароль" + +msgid "Host" +msgstr "Узел" + +msgid "SSH public keys" +msgstr "Открытые ключи SSH" + +msgid "Audit" +msgstr "Аудит" + +msgid "DNS" +msgstr "DNS" + +msgid "Sudo" +msgstr "Sudo" + +msgid "Next" +msgstr "Далее" + +msgid "Page" +msgstr "Страница" + +msgid "Prev" +msgstr "Назад" + +msgid "" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +msgstr "" +"\n" +"Добавить хост:\n" +" ipa host-add web1.example.com\n" + +msgid "" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +msgstr "" +"\n" +" Добавить пользователя:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" + +#, python-format +msgid "%(otype)s \"%(oname)s\" not found" +msgstr "%(otype)s \"%(oname)s\" не найден(а)" + +#, python-format +msgid "%s is not a valid attribute." +msgstr "%s неправильный атрибут" + +msgid "" +"\n" +" Remove default (fallback) group for all unmatched entries.\n" +" " +msgstr "" +"\n" +" Удаление групп по умолчанию для всех не выбранных.\n" +" " + +msgid "No default (fallback) group set" +msgstr "Группа по умолчанию не установлена" + +msgid "Task DN" +msgstr "Задача DN" + +msgid "DN of the started task" +msgstr "DN для запущеной задачи" + +msgid "at least one of options: type, users, hosts must be specified" +msgstr "больше одной опции: тип, пользователи, хосты должны быть указаны " + +msgid "users and hosts cannot both be set" +msgstr "пользователи и хосты не могут быть установлены вместе" + +msgid "hosts cannot be set when type is 'group'" +msgstr "хосты не могут быть установлены когда тип 'группа'" + +msgid "users cannot be set when type is 'hostgroup'" +msgstr "пользователи не могут быть установлены для 'группа хостов'" + +#, python-format +msgid "Task DN = '%s'" +msgstr "Задача DN = '%s'" + +msgid "A list of ACI values" +msgstr "Список значений ACI" + +msgid "type, filter, subtree and targetgroup are mutually exclusive" +msgstr "type, filter, subtree и targetgroup являются взаимоисключающими" + +msgid "ACI prefix is required" +msgstr "Требуется ACL префикс" + +msgid "" +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" +msgstr "" +"требуется как минимум одно из: type, filter, subtree, targetgroup, attrs или " +"memberof" + +msgid "One of group, permission or self is required" +msgstr "Требуется одно из групп, разрешений или владелец" + +#, python-format +msgid "Group '%s' does not exist" +msgstr "Группа «%s» не существует" + +msgid "empty filter" +msgstr "пустой фильтр" + +#, python-format +msgid "Syntax Error: %(error)s" +msgstr "Ошибка синтаксиса: %(error)s" + +#, python-format +msgid "invalid DN (%s)" +msgstr "Неправильный DN (%s)" + +#, python-format +msgid "ACI with name \"%s\" not found" +msgstr "ACI с именем «%s» не найдена" + +msgid "ACIs" +msgstr "ACI" + +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "Создана ACI «%(value)s»" + +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "Удалена ACI «%(value)s»" + +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "Изменена ACI «%(value)s»" + +#, 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" + +#, python-format +msgid "Renamed ACI to \"%(value)s\"" +msgstr "Переименовать ACL в \"%(value)s\"" + +msgid "Invalid format. Should be name=value" +msgstr "Неправильный формат. Должно быть имя=значение" + +msgid "An IPA master host cannot be deleted or disabled" +msgstr "Главный хост IPA не может быть удалён или выключен" + +msgid "entry" +msgstr "запись" + +msgid "entries" +msgstr "записи" + +msgid "Entry" +msgstr "Запись" + +#, python-format +msgid "%(parent)s: %(oname)s not found" +msgstr "%(parent)s: %(oname)s не найден" + +#, python-format +msgid "%(pkey)s: %(oname)s not found" +msgstr "%(pkey)s: %(oname)s не найден" + +#, python-format +msgid "attribute \"%(attribute)s\" not allowed" +msgstr "атрибут \"%(attribute)s\" запрещён" + +#, python-format +msgid "%s" +msgstr "%s" + +#, python-format +msgid "%s to add" +msgstr "%s к добавлению" + +#, python-format +msgid "%s to remove" +msgstr "%s к удалению" + +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" +msgstr "Результаты должны содержать только атрибуты главного ключа (\"%s\")" + +#, python-format +msgid "" +"Search for %(searched_object)s with these %(relationship)s %(ldap_object)s." +msgstr "" +"Поиск для %(searched_object)s с такими %(relationship)s %(ldap_object)s." + +#, python-format +msgid "" +"Search for %(searched_object)s without these %(relationship)s " +"%(ldap_object)s." +msgstr "" +"Поиск для %(searched_object)s без таких %(relationship)s %(ldap_object)s." + +msgid "SSH public key fingerprint" +msgstr "SSH публичный отпечатков ключей" + +#, python-format +msgid "Added host \"%(value)s\"" +msgstr "Добавлен узел «%(value)s»" + +#, python-format +msgid "Deleted host \"%(value)s\"" +msgstr "Удален узел «%(value)s»" + +#, python-format +msgid "Modified host \"%(value)s\"" +msgstr "Изменен узел «%(value)s»" + +#, 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 узлов" + +msgid "host groups" +msgstr "группы узлов" + +msgid "Host Group" +msgstr "Группа узлов" + +#, python-format +msgid "Added hostgroup \"%(value)s\"" +msgstr "Добавлена группа узлов «%(value)s»" + +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" +msgstr "Удалена группа узлов «%(value)s»" + +#, python-format +msgid "Modified hostgroup \"%(value)s\"" +msgstr "Изменена группа узлов «%(value)s»" + +#, 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 групп узлов" + +msgid "Configuration" +msgstr "Настройка" + +msgid "CA ACL" +msgstr "CA ACL" + +msgid "CA ACLs" +msgstr "CA ACLs" + +#, python-format +msgid "Added CA ACL \"%(value)s\"" +msgstr "Добавлен CA ACL \"%(value)s\"" + +#, python-format +msgid "Deleted CA ACL \"%(value)s\"" +msgstr "Удален CA ACL \"%(value)s\"" + +#, python-format +msgid "Modified CA ACL \"%(value)s\"" +msgstr "Изменён CA ACL \"%(value)s\"" + +#, python-format +msgid "Enabled CA ACL \"%(value)s\"" +msgstr "Включен CA ACL \"%(value)s\"" + +#, python-format +msgid "Disabled CA ACL \"%(value)s\"" +msgstr "Выключен CA ACL \"%(value)s\"" + +#, python-format +msgid "%i user or group added." +msgstr "%i пользователь или группа добавлены." + +#, python-format +msgid "%i users or groups added." +msgstr "%i пользователи или группы добавлены." + +#, python-format +msgid "%i user or group removed." +msgstr "%i пользователь или группа удалена." + +#, python-format +msgid "%i users or groups removed." +msgstr "%i пользователи или группы удалены." + +#, python-format +msgid "%i host or hostgroup added." +msgstr "%i хост или группа добавлены." + +#, python-format +msgid "%i hosts or hostgroups added." +msgstr "%i хосты или группы добавлены." + +#, python-format +msgid "%i host or hostgroup removed." +msgstr "%i хост или группа хостов удалены." + +#, python-format +msgid "%i hosts or hostgroups removed." +msgstr "%i хосты или группы хостов удалены." + +#, python-format +msgid "%i service added." +msgstr "%i службу добавлен." + +#, python-format +msgid "%i services added." +msgstr "%i службы добавлены." + +#, python-format +msgid "%i service removed." +msgstr "%i служба удалена." + +#, python-format +msgid "%i services removed." +msgstr "%i службы удалены." + +#, python-format +msgid "%i profile added." +msgstr "%i профиль добавлен." + +#, python-format +msgid "%i profiles added." +msgstr "%i профили добавлены." + +#, python-format +msgid "%i profile removed." +msgstr "%i профиль удалён." + +#, python-format +msgid "%i profiles removed." +msgstr "%i профили удалены." + +msgid "must be TRUE or FALSE" +msgstr "должно быть TRUE или FALSE" + +#, python-format +msgid "invalid e-mail format: %(email)s" +msgstr "неправильный формат почты: %(email)s" + +#, python-format +msgid "manager %(manager)s not found" +msgstr "руководитель %(manager)s не найден" + +#, python-format +msgid "Added user \"%(value)s\"" +msgstr "Добавлен пользователь «%(value)s»" + +#, python-format +msgid "Deleted user \"%(value)s\"" +msgstr "Удален пользователь «%(value)s»" + +#, python-format +msgid "Modified user \"%(value)s\"" +msgstr "Изменен пользователь «%(value)s»" + +#, python-format +msgid "Disabled user account \"%(value)s\"" +msgstr "Учетная запись пользователя «%(value)s» отключена" + +#, python-format +msgid "Enabled user account \"%(value)s\"" +msgstr "Учетная запись пользователя «%(value)s» включена" + +#, python-format +msgid "Unlocked account \"%(value)s\"" +msgstr "Учетная запись «%(value)s» разблокирована" + +msgid "Failed logins" +msgstr "Ошибка входа" + +msgid "Last successful authentication" +msgstr "Последний успешный вход" + +msgid "Last failed authentication" +msgstr "Последняя ошибка входа" + +msgid "Time now" +msgstr "Время сейчас" + +msgid "automount location" +msgstr "расположение автомонтирования" + +msgid "automount locations" +msgstr "расположения автомонтирования" + +msgid "Automount Locations" +msgstr "Расположения Автомонтирования" + +msgid "Automount Location" +msgstr "Расположение Автомонтирования" + +#, python-format +msgid "Added automount location \"%(value)s\"" +msgstr "Добавление расположения автомонтирования \"%(value)s\"" + +#, python-format +msgid "Deleted automount location \"%(value)s\"" +msgstr "Удаление расположения автомонтирования. \"%(value)s\"" + +#, python-format +msgid "key named %(key)s already exists" +msgstr "ключ с именем %(key)s уже существует" + +msgid "Serial number (hex)" +msgstr "Серийный номер (hex)" + +msgid "Request status" +msgstr "Статус запроса" + +msgid "RFC822Name does not match any of user's email addresses" +msgstr "RFC822 Имя не совпадает ни с одним пользователем электронной почты" + +msgid "Revoked" +msgstr "Отозван" + +msgid "7 is not a valid revocation reason" +msgstr "7 неверная причина отзыва сертификата" + +msgid "groups" +msgstr "группы" + +#, python-format +msgid "Added group \"%(value)s\"" +msgstr "Добавлена группа «%(value)s»" + +#, python-format +msgid "Deleted group \"%(value)s\"" +msgstr "Удалена группа «%(value)s»" + +#, python-format +msgid "Modified group \"%(value)s\"" +msgstr "Изменена группа «%(value)s»" + +#, 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 групп" + +msgid "not allowed to modify user entries" +msgstr "изменение записей пользователя не разрешено" + +msgid "not allowed to modify group entries" +msgstr "изменение записей группы не разрешено" + +msgid "Not a managed group" +msgstr "Нет управляемой группы" + +msgid "invalid IP network format" +msgstr "неправильный формат подсети" + +#, python-format +msgid "(see RFC %s for details)" +msgstr "(см. RFC %s для деталей)" + +#, python-format +msgid "'%s' is a required part of DNS record" +msgstr "\"%s\" является обязательной частью DNS-записи" + +msgid "the value does not follow \"YYYYMMDDHHMMSS\" time format" +msgstr "значение не подходит под формат времени «ГГГГММДДЧЧММСС»" + +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +msgstr "У сервера имен «%(host)s» не соответствующей A/AAAA-записи" + +msgid "DNS zone" +msgstr "зона DNS" + +msgid "DNS zones" +msgstr "зоны DNS" + +msgid "DNS Zones" +msgstr "Зоны DNS" + +msgid "DNS Zone" +msgstr "Зона DNS" + +#, python-format +msgid "Host '%(host)s' not found" +msgstr "Узел \"%(host)s\" не найден" + +msgid "A list of LDAP entries" +msgstr "Список записей LDAP" + +msgid "Additional instructions:" +msgstr "Дополнительные инструкции:" + +#, python-format +msgid "" +"DNSSEC support is experimental.\n" +"%(additional_info)s" +msgstr "" +"Экспериментальная поддержка DNSSEC.\n" +"%(additional_info)s" + +#, python-format +msgid "'%(option)s' option is deprecated. %(additional_info)s" +msgstr "'%(option)s' опция не поддерживается. %(additional_info)s" + +#, python-format +msgid "DNS server %(server)s: %(error)s." +msgstr "DNS сервер %(server)s: %(error)s." + +#, python-format +msgid "" +"DNS server %(server)s does not support DNSSEC: %(error)s.\n" +"If DNSSEC validation is enabled on IPA server(s), please disable it." +msgstr "" +"DNS сервер %(server)s не поддерживает DNSSEC: %(error)s.\n" +"Если проверка DNSSEC включена в IPA, пожалуйста выключите." + +#, python-format +msgid "" +"DNS server %(server)s does not support EDNS0 (RFC 6891): %(error)s.\n" +"If DNSSEC validation is enabled on IPA server(s), please disable it." +msgstr "" +"DNS сервер %(server)s не поддерживает EDNS0 (RFC 6891): %(error)s.\n" +"Если проверка DNSSEC включена в IPA, пожалуйста выключите." + +#, python-format +msgid "" +"DNSSEC validation failed: %(error)s.\n" +"Please verify your DNSSEC configuration or disable DNSSEC validation on all " +"IPA servers." +msgstr "" +"Проверка DNSSEC провалена: %(error)s.\n" +"Пожалуйста проверьте ваше конфигурацию DNSSEC или отключите проверку DNSSEC " +"на всех IPA серверах." + +msgid "Results are truncated, try a more specific search" +msgstr "Результаты усечены. Попробуйте задать более точные условия поиска" + #, python-format msgid "%(count)d variables" msgstr "%(count)d переменных" @@ -30,6 +1512,141 @@ msgstr[0] "Загружен %(count)d подключаемый модуль" msgstr[1] "Загружено %(count)d подключаемых модуля" msgstr[2] "Загружено %(count)d подключаемых модулей" +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "Повторно введите %(label)s для проверки: " + +msgid "No matching entries found" +msgstr "Совпадений не найдено" + +msgid "To get command help, use:" +msgstr "Для получения помощи, используйте:" + +msgid " ipa --help" +msgstr " ipa --help" + +msgid "Command name" +msgstr "Имя команды" + +msgid "Positional arguments" +msgstr "Аргументы позиции" + +#, python-format +msgid "Same as --%s" +msgstr "Такие как --%s" + +msgid "Deprecated options" +msgstr "Не поддерживаемые опции" + +msgid "No file to read" +msgstr "Нет файла" + +msgid "incorrect type" +msgstr "неверный тип" + +msgid "Only one value is allowed" +msgstr "Допускается только одно значение" + +msgid "this option is deprecated" +msgstr "это опция устарела" + +msgid "must be True or False" +msgstr "должно быть либо True, либо False" + +msgid "must be an integer" +msgstr "должно быть целое" + +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "должно быть не менее %(minvalue)d" + +#, python-format +msgid "can be at most %(maxvalue)d" +msgstr "может быть не более %(maxvalue)d" + +msgid "must be a decimal number" +msgstr "должно быть десятичным числом" + +#, python-format +msgid "must be at least %(minvalue)s" +msgstr "должно быть больше %(minvalue)s" + +#, python-format +msgid "can be at most %(maxvalue)s" +msgstr "должно быть меньше %(maxvalue)s" + +#, python-format +msgid "must match pattern \"%(pattern)s\"" +msgstr "должно совпадать с шаблоном «%(pattern)s»" + +msgid "must be binary data" +msgstr "должно являться двоичными данными" + +#, python-format +msgid "must be at least %(minlength)d bytes" +msgstr "должно содержать не менее %(minlength)d байт" + +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "может содержать не более %(maxlength)d байт" + +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "должно содержать точно %(length)d байт" + +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" +msgstr "Сбой при декодировании запроса на создание сертификата: %s" + +msgid "must be Unicode text" +msgstr "должно являться Юникод-текстом" + +#, python-format +msgid "must be at least %(minlength)d characters" +msgstr "должно быть не короче %(minlength)d символов" + +#, python-format +msgid "can be at most %(maxlength)d characters" +msgstr "может быть не длиннее %(maxlength)d символов" + +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "должно быть точно %(length)d символов длинной" + +#, python-format +msgid "The character %(char)r is not allowed." +msgstr "Символ %(char)r не разрешен" + +#, python-format +msgid "must be '%(value)s'" +msgstr "должно быть '%(value)s'" + +#, python-format +msgid "must be one of %(values)s" +msgstr "должен быть один из %(values)s" + +msgid "must be datetime value" +msgstr "должна быть дата(datetime)" + +msgid "must be DNS name" +msgstr "должно быть DNS имя" + +msgid "must be absolute" +msgstr "должно быть единственным" + +msgid "too many '@' characters" +msgstr "слишком много символов @" + +msgid "invalid SSH public key" +msgstr "неверный открытый ключ SSH" + +#, python-format +msgid "invalid domain-name: %s" +msgstr "неправильное доменное имя: %s" + +msgid "invalid IP address format" +msgstr "неправильный формат IP-адреса" + #, python-format msgid "%(cver)s client incompatible with %(sver)s server at '%(server)s'" msgstr "" @@ -240,1620 +1857,3 @@ msgstr "%(label)s %(key)s не может быть удалено/изменен #, python-format msgid "%(name)s certificate is not valid" msgstr "%(name)s ошибка сертификата" - -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "Повторно введите %(label)s для проверки: " - -#, c-format -msgid "Passwords do not match!" -msgstr "Пароли не совпадают!" - -msgid "No matching entries found" -msgstr "Совпадений не найдено" - -msgid "To get command help, use:" -msgstr "Для получения помощи, используйте:" - -msgid " ipa --help" -msgstr " ipa --help" - -msgid "Command name" -msgstr "Имя команды" - -msgid "Positional arguments" -msgstr "Аргументы позиции" - -#, python-format -msgid "Same as --%s" -msgstr "Такие как --%s" - -msgid "Deprecated options" -msgstr "Не поддерживаемые опции" - -msgid "No file to read" -msgstr "Нет файла" - -msgid "Additional instructions:" -msgstr "Дополнительные инструкции:" - -#, python-format -msgid "" -"DNSSEC support is experimental.\n" -"%(additional_info)s" -msgstr "" -"Экспериментальная поддержка DNSSEC.\n" -"%(additional_info)s" - -#, python-format -msgid "'%(option)s' option is deprecated. %(additional_info)s" -msgstr "'%(option)s' опция не поддерживается. %(additional_info)s" - -#, python-format -msgid "DNS server %(server)s: %(error)s." -msgstr "DNS сервер %(server)s: %(error)s." - -#, python-format -msgid "" -"DNS server %(server)s does not support DNSSEC: %(error)s.\n" -"If DNSSEC validation is enabled on IPA server(s), please disable it." -msgstr "" -"DNS сервер %(server)s не поддерживает DNSSEC: %(error)s.\n" -"Если проверка DNSSEC включена в IPA, пожалуйста выключите." - -#, python-format -msgid "" -"DNS server %(server)s does not support EDNS0 (RFC 6891): %(error)s.\n" -"If DNSSEC validation is enabled on IPA server(s), please disable it." -msgstr "" -"DNS сервер %(server)s не поддерживает EDNS0 (RFC 6891): %(error)s.\n" -"Если проверка DNSSEC включена в IPA, пожалуйста выключите." - -#, python-format -msgid "" -"DNSSEC validation failed: %(error)s.\n" -"Please verify your DNSSEC configuration or disable DNSSEC validation on all " -"IPA servers." -msgstr "" -"Проверка DNSSEC провалена: %(error)s.\n" -"Пожалуйста проверьте ваше конфигурацию DNSSEC или отключите проверку DNSSEC " -"на всех IPA серверах." - -msgid "Results are truncated, try a more specific search" -msgstr "Результаты усечены. Попробуйте задать более точные условия поиска" - -#, python-format -msgid "Unknown option: %(option)s" -msgstr "Неизвестная опция: %(option)s" - -msgid "incorrect type" -msgstr "неверный тип" - -msgid "Only one value is allowed" -msgstr "Допускается только одно значение" - -msgid "this option is deprecated" -msgstr "это опция устарела" - -msgid "must be True or False" -msgstr "должно быть либо True, либо False" - -msgid "must be an integer" -msgstr "должно быть целое" - -#, python-format -msgid "must be at least %(minvalue)d" -msgstr "должно быть не менее %(minvalue)d" - -#, python-format -msgid "can be at most %(maxvalue)d" -msgstr "может быть не более %(maxvalue)d" - -msgid "must be a decimal number" -msgstr "должно быть десятичным числом" - -#, python-format -msgid "must be at least %(minvalue)s" -msgstr "должно быть больше %(minvalue)s" - -#, python-format -msgid "can be at most %(maxvalue)s" -msgstr "должно быть меньше %(maxvalue)s" - -#, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "должно совпадать с шаблоном «%(pattern)s»" - -msgid "must be binary data" -msgstr "должно являться двоичными данными" - -#, python-format -msgid "must be at least %(minlength)d bytes" -msgstr "должно содержать не менее %(minlength)d байт" - -#, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "может содержать не более %(maxlength)d байт" - -#, python-format -msgid "must be exactly %(length)d bytes" -msgstr "должно содержать точно %(length)d байт" - -msgid "must be Unicode text" -msgstr "должно являться Юникод-текстом" - -#, python-format -msgid "must be at least %(minlength)d characters" -msgstr "должно быть не короче %(minlength)d символов" - -#, python-format -msgid "can be at most %(maxlength)d characters" -msgstr "может быть не длиннее %(maxlength)d символов" - -#, python-format -msgid "must be exactly %(length)d characters" -msgstr "должно быть точно %(length)d символов длинной" - -#, python-format -msgid "The character %(char)r is not allowed." -msgstr "Символ %(char)r не разрешен" - -#, python-format -msgid "must be '%(value)s'" -msgstr "должно быть '%(value)s'" - -#, python-format -msgid "must be one of %(values)s" -msgstr "должен быть один из %(values)s" - -msgid "must be datetime value" -msgstr "должна быть дата(datetime)" - -msgid "must be DNS name" -msgstr "должно быть DNS имя" - -msgid "must be absolute" -msgstr "должно быть единственным" - -msgid "A string searched in all relevant object attributes" -msgstr "Поиск по всем атрибутам объекта" - -msgid "A list of LDAP entries" -msgstr "Список записей LDAP" - -msgid "Number of entries returned" -msgstr "Количество вернутых значений" - -msgid "True if not all results were returned" -msgstr "Верно если не все результаты были возвращены" - -msgid "too many '@' characters" -msgstr "слишком много символов @" - -msgid "invalid SSH public key" -msgstr "неверный открытый ключ SSH" - -#, python-format -msgid "invalid domain-name: %s" -msgstr "неправильное доменное имя: %s" - -msgid "invalid IP address format" -msgstr "неправильный формат IP-адреса" - -#, c-format -msgid "cannot open configuration file %s\n" -msgstr "невозможно открыть конфигурационный файл %s\n" - -#, c-format -msgid "kvno %d\n" -msgstr "kvno %d\n" - -msgid "hostname" -msgstr "Имя узла" - -msgid "LDAP basedn" -msgstr "LDAP basedn" - -msgid "basedn" -msgstr "basedn" - -msgid "LDAP DN" -msgstr "LDAP DN" - -msgid "LDAP password" -msgstr "Пароль LDAP" - -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute\n" -"must be part of the schema." -msgstr "" -"Добавить пару атрибут/значение. Формат атрибут=значение. Атрибут\n" -"должен быть частью схемы." - -msgid "Rights" -msgstr "Права" - -msgid "Time Limit" -msgstr "Ограничение по времени" - -msgid "Time limit of search in seconds" -msgstr "Ограничение времени поиска в секундах" - -msgid "Size Limit" -msgstr "Ограничение по размеру" - -msgid "Maximum number of entries returned" -msgstr "Максимальное количество совпадений возвращено" - -msgid "Primary key only" -msgstr "Только главный ключ" - -msgid "Username" -msgstr "Имя пользователя" - -msgid "Password" -msgstr "Пароль" - -msgid "Principal" -msgstr "Основной" - -msgid "Certificate" -msgstr "Сертификат" - -msgid "Base-64 encoded server certificate" -msgstr "Base-64 шифрованый сертификат сервера" - -msgid "Force" -msgstr "Принудительно" - -msgid "Number of members added" -msgstr "Количество добавленных членов" - -msgid "host" -msgstr "узел" - -msgid "Members that could not be removed" -msgstr "Члены не могут быть удалены" - -msgid "Number of members removed" -msgstr "Количество удалённых членов" - -msgid "Rule name" -msgstr "Имя правила" - -msgid "Description" -msgstr "Описание" - -msgid "Enabled" -msgstr "Включено" - -msgid "User category" -msgstr "Категория пользователя" - -msgid "Host category" -msgstr "Категория хоста" - -msgid "Users" -msgstr "Пользователи" - -msgid "User Groups" -msgstr "Группы пользователей" - -msgid "Hosts" -msgstr "Узлы" - -msgid "Host Groups" -msgstr "Группы узлов" - -msgid "External host" -msgstr "Внешний узел" - -msgid "Group description" -msgstr "Описание группы" - -msgid "Sudo Command Groups" -msgstr "Группы команды SUDO" - -msgid "Permissions" -msgstr "Разрешения" - -msgid "Attributes" -msgstr "Атрибуты" - -msgid "Type" -msgstr "Тип" - -msgid "Filter" -msgstr "Фильтр" - -msgid "Subtree" -msgstr "Поддерево" - -msgid "Target group" -msgstr "Целевая группа" - -msgid "Rename" -msgstr "Переименовать" - -msgid "Location" -msgstr "Расположение" - -msgid "Platform" -msgstr "Платформа" - -msgid "Host hardware platform (e.g. \"Lenovo T61\")" -msgstr "Аппаратная платформа узла (например, «Lenovo T61»)" - -msgid "Operating system" -msgstr "Операционная система" - -msgid "Host operating system and version (e.g. \"Fedora 9\")" -msgstr "Операционная система узла и ее версия (например, «Fedora 9»)" - -msgid "User password" -msgstr "Пароль пользователя" - -msgid "Random password" -msgstr "Случайный пароль" - -msgid "MAC address" -msgstr "MAC-адрес" - -msgid "Hardware MAC address(es) on this host" -msgstr "MAC-адрес(а) данного узла" - -msgid "SSH public key" -msgstr "SSH публичный ключ" - -msgid "Roles" -msgstr "Роли" - -msgid "Add a new host." -msgstr "Добавить новый узел." - -msgid "IP Address" -msgstr "IP-адрес" - -msgid "Delete a host." -msgstr "Удалить узел." - -msgid "Remove entries from DNS" -msgstr "Удалить записи из DNS" - -msgid "host group" -msgstr "группа узлов" - -msgid "role" -msgstr "роль" - -msgid "user" -msgstr "пользователь" - -msgid "Modify information about a host." -msgstr "Изменить информацию об узле." - -msgid "Update DNS entries" -msgstr "Обновить записи DNS" - -msgid "ACI name" -msgstr "Имя ACI" - -msgid "Permission" -msgstr "Разрешения" - -msgid "Permission ACI grants access to" -msgstr "Добавить разрешения ACL на" - -msgid "User group" -msgstr "Группа пользователей" - -msgid "User group ACI grants access to" -msgstr "Добавить пользовательскую группу ACL на" - -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" -msgstr "" -"Тип объекта IPA (пользователь, группа, хост, группа хостов, сервис, сетевая " -"группа)" - -msgid "Member of" -msgstr "Член" - -msgid "Member of a group" -msgstr "Член группы" - -msgid "Group to apply ACI to" -msgstr "Группа для добавления ACL на" - -msgid "ACI prefix" -msgstr "Префикс ACI" - -msgid "Test the ACI syntax but don't write anything" -msgstr "Проверить синтаксис ACL, но никуда не записывать" - -msgid "New ACI name" -msgstr "Новое имя ACL" - -msgid "Service name" -msgstr "Имя службы" - -msgid "Bind DN" -msgstr "Bind DN" - -msgid "LDAP schema" -msgstr "Схема LDAP" - -msgid "Grouping Type" -msgstr "Тип группировки" - -msgid "Inclusive Regex" -msgstr "Включая регулярные выражения" - -msgid "Exclusive Regex" -msgstr "Исключая регулярные выражения" - -msgid "Attribute Key" -msgstr "Значение атрибута" - -msgid "" -"Attribute to filter via regex. For example fqdn for a host, or manager for a " -"user" -msgstr "" -"Атрибут для поиска по регулярным выражениям. Для примера полное имя для " -"хоста, или руководитель для пользователя" - -msgid "Key" -msgstr "Ключ" - -msgid "description" -msgstr "описание" - -msgid "Automount location name." -msgstr "Имя расположения автомонтирования." - -msgid "Map" -msgstr "Карта" - -msgid "Create a new automount key." -msgstr "Создать новый ключ автомонтирования." - -msgid "Create a new automount location." -msgstr "Создать новое расположение автомонтирования." - -msgid "Delete an automount location." -msgstr "Удаление расположения автомонтирования." - -msgid "Search for an automount location." -msgstr "Поиск для расположения автомонтирования." - -msgid "Display an automount location." -msgstr "Отобразить расположения автомонтирования." - -msgid "Generate automount files for a specific location." -msgstr "Сгенерировать файлы автомонтирования для особого расположения." - -msgid "Mount point" -msgstr "Точка монтирования" - -msgid "Priority" -msgstr "Приоритет" - -msgid "User" -msgstr "Пользователь" - -msgid "User login" -msgstr "Логин пользователя" - -msgid "First name" -msgstr "Имя" - -msgid "Last name" -msgstr "Фамилия" - -msgid "Full name" -msgstr "Полное имя" - -msgid "Display name" -msgstr "Отображаемое имя" - -msgid "Initials" -msgstr "Инициалы" - -msgid "Home directory" -msgstr "Домашний каталог" - -msgid "Login shell" -msgstr "Оболочка входа" - -msgid "Kerberos principal" -msgstr "Kerberos владелец" - -msgid "Email address" -msgstr "Электронный адрес" - -msgid "Prompt to set the user password" -msgstr "Запросить пароль у пользователя" - -msgid "Generate a random user password" -msgstr "Сгенерировать случайный пользовательский пароль" - -msgid "UID" -msgstr "UID" - -msgid "User ID Number (system will assign one if not provided)" -msgstr "ID пользователя (если не указан, система назначит его самостоятельно)" - -msgid "GID" -msgstr "ID группы" - -msgid "Group ID Number" -msgstr "ID группы" - -msgid "Street address" -msgstr "Адрес" - -msgid "City" -msgstr "Город" - -msgid "State/Province" -msgstr "Область/республика" - -msgid "ZIP" -msgstr "Индекс" - -msgid "Telephone Number" -msgstr "Телефонный номер" - -msgid "Mobile Telephone Number" -msgstr "Мобильный телефонный номер" - -msgid "Pager Number" -msgstr "Номер пейджера" - -msgid "Fax Number" -msgstr "Номер факса" - -msgid "Org. Unit" -msgstr "Отдел" - -msgid "Job Title" -msgstr "Должность" - -msgid "Manager" -msgstr "Руководитель" - -msgid "Car License" -msgstr "Номер автомобиля" - -msgid "Account disabled" -msgstr "Учетная запись отключена" - -msgid "Kerberos keys available" -msgstr "Kerberos ключей доступно" - -msgid "Add a new user." -msgstr "Добавить нового пользователя." - -msgid "Don't create user private group" -msgstr "Невозможно создать собственную группу пользователя" - -msgid "Delete a user." -msgstr "Удалить пользователя." - -msgid "Disable a user account." -msgstr "Отключить учетную запись пользователя." - -msgid "Enable a user account." -msgstr "Включить учетную запись пользователя." - -msgid "Search for users." -msgstr "Поиск пользователей." - -msgid "group" -msgstr "группа" - -msgid "Modify a user." -msgstr "Изменить пользователя." - -msgid "Group name" -msgstr "Имя группы" - -msgid "Create a new group." -msgstr "Создать новую группу." - -msgid "Delete group." -msgstr "Удалить группу." - -msgid "Search for groups." -msgstr "Поиск групп." - -msgid "search for private groups" -msgstr "поиск личных групп" - -msgid "Modify a group." -msgstr "Изменить группу." - -msgid "change to a POSIX group" -msgstr "изменить на группу POSIX" - -msgid "Hardware platform of the host (e.g. Lenovo T61)" -msgstr "Аппаратная платформа узла (например, Lenovo T61)" - -msgid "Operating System and version of the host (e.g. Fedora 9)" -msgstr "Операционная система и версия узла (например, Fedora 9)" - -msgid "Host-group" -msgstr "Группа узлов" - -msgid "Time to live" -msgstr "Время жизни" - -msgid "Class" -msgstr "Класс" - -msgid "Records" -msgstr "Записи" - -msgid "Record type" -msgstr "Тип записи" - -msgid "Hostname" -msgstr "Имя узла" - -msgid "Algorithm" -msgstr "Алгоритм" - -msgid "Certificate/CRL" -msgstr "Сертификат/СОС" - -msgid "Altitude" -msgstr "Высота над уровнем моря" - -msgid "Size" -msgstr "Размер" - -msgid "Regular Expression" -msgstr "Регулярное выражение" - -msgid "Weight" -msgstr "Вес" - -msgid "Port" -msgstr "Порт" - -msgid "Zone name" -msgstr "Имя зоны" - -msgid "Zone name (FQDN)" -msgstr "Имя зоны (FQDN)" - -msgid "Reverse zone IP network" -msgstr "Зона обратных адресов" - -msgid "SOA serial" -msgstr "Номер SOA" - -msgid "Dynamic update" -msgstr "Динамическое обновление" - -msgid "Allow dynamic updates." -msgstr "Разрешить динамические обновления." - -msgid "Create new DNS zone (SOA record)." -msgstr "Создать новую зону DNS (SOA-запись)" - -msgid "Rule type" -msgstr "Тип правила" - -msgid "Service category" -msgstr "Категория службы" - -msgid "Services" -msgstr "Службы" - -msgid "Service Groups" -msgstr "Группы сервисов" - -msgid "Warning" -msgstr "Предупреждение" - -msgid "permission" -msgstr "разрешение" - -msgid "Serial number" -msgstr "Серийный номер" - -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" -msgstr "Серийный номер в десятичной или если есть префикс 0x в HEX формате" - -msgid "Submit a certificate signing request." -msgstr "Отправить запрос подписи сертификата." - -msgid "CSR" -msgstr "CSR" - -msgid "Revoke a certificate." -msgstr "Отозвать сертификат" - -msgid "Reason" -msgstr "Причина" - -msgid "Reason for revoking the certificate (0-10)" -msgstr "Причина для отзыва сертификата (0-10)" - -msgid "Retrieve an existing certificate." -msgstr "Получить существующий сертификат." - -msgid "Output filename" -msgstr "Исходящие имя файла" - -msgid "File to store the certificate in." -msgstr "Файл для сохранения сертификата." - -msgid "Check the status of a certificate signing request." -msgstr "Проверьте статус запроса подписи сертификата." - -msgid "Request id" -msgstr "ID запроса" - -msgid "Maximum username length" -msgstr "Максимальная длина имени пользователя" - -msgid "Default location of home directories" -msgstr "Расположение домашних каталогов по умолчанию" - -msgid "Default shell" -msgstr "Оболочка по умолчанию" - -msgid "Default shell for new users" -msgstr "Оболочка по умолчанию для новых пользователей" - -msgid "Default users group" -msgstr "Группа пользователей по умолчанию" - -msgid "Default group for new users" -msgstr "Группа по умолчанию для новых пользователей" - -msgid "Default e-mail domain" -msgstr "Почтовый домен по умолчанию" - -msgid "Default group objectclasses" -msgstr "Классы объектов для групп по умолчанию" - -msgid "Default group objectclasses (comma-separated list)" -msgstr "Классы объектов для групп по умолчанию (через запятую)" - -msgid "Default user objectclasses" -msgstr "Классы объектов для пользователей по умолчанию" - -msgid "Default user objectclasses (comma-separated list)" -msgstr "Классы объектов для пользователей по умолчанию (через запятую)" - -msgid "Password Expiration Notification (days)" -msgstr "Оповещение об истечении пароля (в дня)" - -msgid "GECOS" -msgstr "GECOS" - -msgid "hosts" -msgstr "узлы" - -msgid "Permissions to grant(read, write, add, delete, all)" -msgstr "Установить разрешения (для чтения, записи, добавления, удаления, все)" - -msgid "Location of the ACI" -msgstr "Расположение ACL" - -msgid "No wait" -msgstr "Не ждать" - -msgid "ACL name" -msgstr "ACL имя" - -msgid "Profile category" -msgstr "Категория профиля" - -msgid "Profiles" -msgstr "Профили" - -msgid "Create a new CA ACL." -msgstr "Создать новый CA ACL." - -msgid "Add target hosts and hostgroups to a CA ACL." -msgstr "Добавить целевые хосты или группы хостов к CA ACL." - -msgid "Add profiles to a CA ACL." -msgstr "Добавить профили к CA ACL." - -msgid "Add services to a CA ACL." -msgstr "Добавить службы к CA ACL." - -msgid "Add users and groups to a CA ACL." -msgstr "Добавить пользователей и группы в CA ACL." - -msgid "Delete a CA ACL." -msgstr "Удалить CA ACL." - -msgid "Disable a CA ACL." -msgstr "Выключить CA ACL." - -msgid "Enable a CA ACL." -msgstr "Включить CA ACL." - -msgid "Search for CA ACLs." -msgstr "Поиск по CA ACLs." - -msgid "Modify a CA ACL." -msgstr "Изменить CA ACL." - -msgid "Remove target hosts and hostgroups from a CA ACL." -msgstr "Удалить целевые хосты или группы хостов из CA ACL." - -msgid "Remove profiles from a CA ACL." -msgstr "Удалить профили из CA ACL." - -msgid "Remove services from a CA ACL." -msgstr "Удалить службу из CA ACL." - -msgid "Remove users and groups from a CA ACL." -msgstr "Удалить пользователей из CA ACL." - -msgid "Display the properties of a CA ACL." -msgstr "Показать свойства of a CA ACL." - -msgid "User authentication types" -msgstr "Типы авторизации пользователей" - -msgid "Types of supported user authentication" -msgstr "Типы авторизаций поддерживаемые пользователем" - -msgid "RADIUS proxy configuration" -msgstr "RADIUS конфигурация прокси" - -msgid "RADIUS proxy username" -msgstr "RADIUS имя пользователя прокси" - -msgid "Department Number" -msgstr "Номер отдела" - -msgid "Preferred Language" -msgstr "Предпочитаемый язык" - -msgid "Server" -msgstr "Сервер" - -msgid "Profile ID" -msgstr "Идентификатор профиля" - -msgid "permissions" -msgstr "разрешения" - -msgid "Search for existing certificates." -msgstr "Поиск по существующим сертификатам." - -msgid "Subject" -msgstr "Объект" - -msgid "minimum serial number" -msgstr "минимальный серийный номер" - -msgid "maximum serial number" -msgstr "Максимальный серийный номер" - -msgid "Revoked on from this date (YYYY-mm-dd)" -msgstr "Отозван с даты (YYYY-mm-dd)" - -msgid "Certificate Profile to use" -msgstr "Использовать сертификат профиля" - -msgid "Data" -msgstr "Данные" - -msgid "Failed to add" -msgstr "Ошибка при добавлении" - -msgid "Master file" -msgstr "Главный файл" - -msgid "Automount master file." -msgstr "Главный файл автомонтирования." - -#, python-format -msgid "File %(file)s not found" -msgstr "Файл %(file)s не найден" - -#, python-format -msgid "key %(key)s already exists" -msgstr "ключ %(key)s уже существует" - -msgid "" -"\n" -"EXAMPLES:\n" -msgstr "" -"\n" -"ПРИМЕРЫ:\n" - -msgid "Delete all?" -msgstr "Удалить все?" - -msgid "Unrevoked" -msgstr "Неотозванный" - -msgid "Error" -msgstr "Ошибка" - -msgid "Failed to remove" -msgstr "Ошибка при удалении" - -msgid "Failed RunAs" -msgstr "Ошибка \"запустить как\"" - -msgid "Failed RunAsGroup" -msgstr "Ошибка \"запустить как группа\"" - -msgid "Failed profiles" -msgstr "Ошибка профилей" - -msgid "Add" -msgstr "Добавить" - -msgid "Add and Close" -msgstr "Добавить и закрыть" - -msgid "Add and Edit" -msgstr "Добавить и редактировать" - -msgid "Cancel" -msgstr "Отменить" - -msgid "Close" -msgstr "Закрыть" - -msgid "OK" -msgstr "OK" - -msgid "Refresh" -msgstr "Обновить" - -msgid "Delete" -msgstr "Удалить" - -msgid "Reset" -msgstr "Сбросить" - -msgid "Restore" -msgstr "Восстановить" - -msgid "Retry" -msgstr "Получить" - -msgid "Revoke" -msgstr "Отозвать" - -msgid "Set" -msgstr "Уставновить" - -msgid "Update" -msgstr "Обновить" - -msgid "Collapse All" -msgstr "Свернуть все" - -msgid "Expand All" -msgstr "Развернуть все" - -msgid "Hide details" -msgstr "Скрыть детали" - -msgid "URL" -msgstr "URL" - -msgid "Revocation reason" -msgstr "Причина отзыва" - -msgid "Organization" -msgstr "Организация" - -msgid "Organizational Unit" -msgstr "Организационное подразделение" - -msgid "Reason for Revocation" -msgstr "Причина отзыва" - -msgid "Issuer" -msgstr "Издатель" - -msgid "User Options" -msgstr "Параметры пользователя" - -msgid "DNS Zone Settings" -msgstr "Настройки зоны DNS" - -msgid "Rules" -msgstr "Правила" - -msgid "Host Certificate" -msgstr "Сертификат узла" - -msgid "Host Name" -msgstr "Имя узла" - -msgid "Kerberos Key" -msgstr "Ключ Kerberos" - -msgid "One-Time-Password" -msgstr "Одноразовый пароль" - -msgid "Reset OTP" -msgstr "Сбросить ОРП" - -msgid "Reset One-Time-Password" -msgstr "Сбросить одноразовый пароль" - -msgid "Set OTP" -msgstr "Установить ОРП" - -msgid "Set One-Time-Password" -msgstr "Установить одноразовый пароль" - -msgid "Host" -msgstr "Узел" - -msgid "SSH public keys" -msgstr "Открытые ключи SSH" - -msgid "Audit" -msgstr "Аудит" - -msgid "DNS" -msgstr "DNS" - -msgid "Sudo" -msgstr "Sudo" - -msgid "Next" -msgstr "Далее" - -msgid "Page" -msgstr "Страница" - -msgid "Prev" -msgstr "Назад" - -msgid "roles" -msgstr "роли" - -msgid "Invalid format. Should be name=value" -msgstr "Неправильный формат. Должно быть имя=значение" - -msgid "An IPA master host cannot be deleted or disabled" -msgstr "Главный хост IPA не может быть удалён или выключен" - -msgid "entry" -msgstr "запись" - -msgid "entries" -msgstr "записи" - -msgid "Entry" -msgstr "Запись" - -#, python-format -msgid "%(parent)s: %(oname)s not found" -msgstr "%(parent)s: %(oname)s не найден" - -#, python-format -msgid "%(pkey)s: %(oname)s not found" -msgstr "%(pkey)s: %(oname)s не найден" - -#, python-format -msgid "attribute \"%(attribute)s\" not allowed" -msgstr "атрибут \"%(attribute)s\" запрещён" - -#, python-format -msgid "%s" -msgstr "%s" - -#, python-format -msgid "member %s" -msgstr "член %s" - -#, python-format -msgid "%s to add" -msgstr "%s к добавлению" - -#, python-format -msgid "%s to remove" -msgstr "%s к удалению" - -#, python-format -msgid "Results should contain primary key attribute only (\"%s\")" -msgstr "Результаты должны содержать только атрибуты главного ключа (\"%s\")" - -#, python-format -msgid "" -"Search for %(searched_object)s with these %(relationship)s %(ldap_object)s." -msgstr "" -"Поиск для %(searched_object)s с такими %(relationship)s %(ldap_object)s." - -#, python-format -msgid "" -"Search for %(searched_object)s without these %(relationship)s " -"%(ldap_object)s." -msgstr "" -"Поиск для %(searched_object)s без таких %(relationship)s %(ldap_object)s." - -msgid "Not Before" -msgstr "Недействителен до" - -msgid "Not After" -msgstr "Недействителен после" - -msgid "Fingerprint (SHA1)" -msgstr "Отпечаток (SHA1)" - -#, python-format -msgid "Added service \"%(value)s\"" -msgstr "Добавлена служба «%(value)s»" - -#, python-format -msgid "Deleted service \"%(value)s\"" -msgstr "Удалена служба «%(value)s»" - -msgid "users" -msgstr "пользователи" - -msgid "ACI" -msgstr "ACI" - -msgid "must be TRUE or FALSE" -msgstr "должно быть TRUE или FALSE" - -msgid "SSH public key fingerprint" -msgstr "SSH публичный отпечатков ключей" - -#, python-format -msgid "invalid e-mail format: %(email)s" -msgstr "неправильный формат почты: %(email)s" - -#, python-format -msgid "manager %(manager)s not found" -msgstr "руководитель %(manager)s не найден" - -msgid "PKINIT" -msgstr "PKINIT" - -#, python-format -msgid "Added host \"%(value)s\"" -msgstr "Добавлен узел «%(value)s»" - -#, python-format -msgid "Deleted host \"%(value)s\"" -msgstr "Удален узел «%(value)s»" - -#, python-format -msgid "Modified host \"%(value)s\"" -msgstr "Изменен узел «%(value)s»" - -#, 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 узлов" - -msgid "A list of ACI values" -msgstr "Список значений ACI" - -msgid "type, filter, subtree and targetgroup are mutually exclusive" -msgstr "type, filter, subtree и targetgroup являются взаимоисключающими" - -msgid "ACI prefix is required" -msgstr "Требуется ACL префикс" - -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" -msgstr "" -"требуется как минимум одно из: type, filter, subtree, targetgroup, attrs или " -"memberof" - -msgid "One of group, permission or self is required" -msgstr "Требуется одно из групп, разрешений или владелец" - -#, python-format -msgid "Group '%s' does not exist" -msgstr "Группа «%s» не существует" - -msgid "empty filter" -msgstr "пустой фильтр" - -#, python-format -msgid "Syntax Error: %(error)s" -msgstr "Ошибка синтаксиса: %(error)s" - -#, python-format -msgid "invalid DN (%s)" -msgstr "Неправильный DN (%s)" - -#, python-format -msgid "ACI with name \"%s\" not found" -msgstr "ACI с именем «%s» не найдена" - -msgid "ACIs" -msgstr "ACI" - -#, python-format -msgid "Created ACI \"%(value)s\"" -msgstr "Создана ACI «%(value)s»" - -#, python-format -msgid "Deleted ACI \"%(value)s\"" -msgstr "Удалена ACI «%(value)s»" - -#, python-format -msgid "Modified ACI \"%(value)s\"" -msgstr "Изменена ACI «%(value)s»" - -#, 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" - -#, python-format -msgid "Renamed ACI to \"%(value)s\"" -msgstr "Переименовать ACL в \"%(value)s\"" - -msgid "" -"\n" -" Add a host:\n" -" ipa host-add web1.example.com\n" -msgstr "" -"\n" -"Добавить хост:\n" -" ipa host-add web1.example.com\n" - -msgid "" -"\n" -" Add a user:\n" -" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" -msgstr "" -"\n" -" Добавить пользователя:\n" -" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" - -#, python-format -msgid "%(otype)s \"%(oname)s\" not found" -msgstr "%(otype)s \"%(oname)s\" не найден(а)" - -#, python-format -msgid "%s is not a valid attribute." -msgstr "%s неправильный атрибут" - -msgid "" -"\n" -" Remove default (fallback) group for all unmatched entries.\n" -" " -msgstr "" -"\n" -" Удаление групп по умолчанию для всех не выбранных.\n" -" " - -msgid "No default (fallback) group set" -msgstr "Группа по умолчанию не установлена" - -msgid "Task DN" -msgstr "Задача DN" - -msgid "DN of the started task" -msgstr "DN для запущеной задачи" - -msgid "at least one of options: type, users, hosts must be specified" -msgstr "больше одной опции: тип, пользователи, хосты должны быть указаны " - -msgid "users and hosts cannot both be set" -msgstr "пользователи и хосты не могут быть установлены вместе" - -msgid "hosts cannot be set when type is 'group'" -msgstr "хосты не могут быть установлены когда тип 'группа'" - -msgid "users cannot be set when type is 'hostgroup'" -msgstr "пользователи не могут быть установлены для 'группа хостов'" - -#, python-format -msgid "Task DN = '%s'" -msgstr "Задача DN = '%s'" - -msgid "automount location" -msgstr "расположение автомонтирования" - -msgid "automount locations" -msgstr "расположения автомонтирования" - -msgid "Automount Locations" -msgstr "Расположения Автомонтирования" - -msgid "Automount Location" -msgstr "Расположение Автомонтирования" - -#, python-format -msgid "Added automount location \"%(value)s\"" -msgstr "Добавление расположения автомонтирования \"%(value)s\"" - -#, python-format -msgid "Deleted automount location \"%(value)s\"" -msgstr "Удаление расположения автомонтирования. \"%(value)s\"" - -#, python-format -msgid "key named %(key)s already exists" -msgstr "ключ с именем %(key)s уже существует" - -msgid "CA ACL" -msgstr "CA ACL" - -msgid "CA ACLs" -msgstr "CA ACLs" - -#, python-format -msgid "Added CA ACL \"%(value)s\"" -msgstr "Добавлен CA ACL \"%(value)s\"" - -#, python-format -msgid "Deleted CA ACL \"%(value)s\"" -msgstr "Удален CA ACL \"%(value)s\"" - -#, python-format -msgid "Modified CA ACL \"%(value)s\"" -msgstr "Изменён CA ACL \"%(value)s\"" - -#, python-format -msgid "Enabled CA ACL \"%(value)s\"" -msgstr "Включен CA ACL \"%(value)s\"" - -#, python-format -msgid "Disabled CA ACL \"%(value)s\"" -msgstr "Выключен CA ACL \"%(value)s\"" - -#, python-format -msgid "%i user or group added." -msgstr "%i пользователь или группа добавлены." - -#, python-format -msgid "%i users or groups added." -msgstr "%i пользователи или группы добавлены." - -#, python-format -msgid "%i user or group removed." -msgstr "%i пользователь или группа удалена." - -#, python-format -msgid "%i users or groups removed." -msgstr "%i пользователи или группы удалены." - -#, python-format -msgid "%i host or hostgroup added." -msgstr "%i хост или группа добавлены." - -#, python-format -msgid "%i hosts or hostgroups added." -msgstr "%i хосты или группы добавлены." - -#, python-format -msgid "%i host or hostgroup removed." -msgstr "%i хост или группа хостов удалены." - -#, python-format -msgid "%i hosts or hostgroups removed." -msgstr "%i хосты или группы хостов удалены." - -#, python-format -msgid "%i service added." -msgstr "%i службу добавлен." - -#, python-format -msgid "%i services added." -msgstr "%i службы добавлены." - -#, python-format -msgid "%i service removed." -msgstr "%i служба удалена." - -#, python-format -msgid "%i services removed." -msgstr "%i службы удалены." - -#, python-format -msgid "%i profile added." -msgstr "%i профиль добавлен." - -#, python-format -msgid "%i profiles added." -msgstr "%i профили добавлены." - -#, python-format -msgid "%i profile removed." -msgstr "%i профиль удалён." - -#, python-format -msgid "%i profiles removed." -msgstr "%i профили удалены." - -msgid "delegation" -msgstr "делегирование" - -msgid "delegations" -msgstr "делегирования" - -msgid "Delegations" -msgstr "Делегирования" - -msgid "Delegation" -msgstr "Делегирование" - -msgid "priority cannot be set on global policy" -msgstr "приоритет не может быть задан для глобальной политики" - -#, python-format -msgid "Added user \"%(value)s\"" -msgstr "Добавлен пользователь «%(value)s»" - -#, python-format -msgid "Deleted user \"%(value)s\"" -msgstr "Удален пользователь «%(value)s»" - -#, python-format -msgid "Modified user \"%(value)s\"" -msgstr "Изменен пользователь «%(value)s»" - -#, python-format -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "Найден %(count)d пользователь" -msgstr[1] "Найдено %(count)d пользователя" -msgstr[2] "Найдено %(count)d пользователей" - -#, python-format -msgid "Disabled user account \"%(value)s\"" -msgstr "Учетная запись пользователя «%(value)s» отключена" - -#, python-format -msgid "Enabled user account \"%(value)s\"" -msgstr "Учетная запись пользователя «%(value)s» включена" - -#, python-format -msgid "Unlocked account \"%(value)s\"" -msgstr "Учетная запись «%(value)s» разблокирована" - -msgid "Failed logins" -msgstr "Ошибка входа" - -msgid "Last successful authentication" -msgstr "Последний успешный вход" - -msgid "Last failed authentication" -msgstr "Последняя ошибка входа" - -msgid "Time now" -msgstr "Время сейчас" - -msgid "groups" -msgstr "группы" - -#, python-format -msgid "Added group \"%(value)s\"" -msgstr "Добавлена группа «%(value)s»" - -#, python-format -msgid "Deleted group \"%(value)s\"" -msgstr "Удалена группа «%(value)s»" - -#, python-format -msgid "Modified group \"%(value)s\"" -msgstr "Изменена группа «%(value)s»" - -#, 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 групп" - -msgid "not allowed to modify user entries" -msgstr "изменение записей пользователя не разрешено" - -msgid "not allowed to modify group entries" -msgstr "изменение записей группы не разрешено" - -msgid "Not a managed group" -msgstr "Нет управляемой группы" - -msgid "CA is not configured" -msgstr "CA не настроен" - -msgid "Role" -msgstr "Роль" - -msgid "host groups" -msgstr "группы узлов" - -msgid "Host Group" -msgstr "Группа узлов" - -#, python-format -msgid "Added hostgroup \"%(value)s\"" -msgstr "Добавлена группа узлов «%(value)s»" - -#, python-format -msgid "Deleted hostgroup \"%(value)s\"" -msgstr "Удалена группа узлов «%(value)s»" - -#, python-format -msgid "Modified hostgroup \"%(value)s\"" -msgstr "Изменена группа узлов «%(value)s»" - -#, 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 групп узлов" - -msgid "invalid IP network format" -msgstr "неправильный формат подсети" - -#, python-format -msgid "(see RFC %s for details)" -msgstr "(см. RFC %s для деталей)" - -#, python-format -msgid "'%s' is a required part of DNS record" -msgstr "\"%s\" является обязательной частью DNS-записи" - -msgid "the value does not follow \"YYYYMMDDHHMMSS\" time format" -msgstr "значение не подходит под формат времени «ГГГГММДДЧЧММСС»" - -#, python-format -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" -msgstr "У сервера имен «%(host)s» не соответствующей A/AAAA-записи" - -msgid "DNS zone" -msgstr "зона DNS" - -msgid "DNS zones" -msgstr "зоны DNS" - -msgid "DNS Zones" -msgstr "Зоны DNS" - -msgid "DNS Zone" -msgstr "Зона DNS" - -#, python-format -msgid "Host '%(host)s' not found" -msgstr "Узел \"%(host)s\" не найден" - -msgid "Access time" -msgstr "Время доступа" - -#, python-format -msgid "Failure decoding Certificate Signing Request: %s" -msgstr "Сбой при декодировании запроса на создание сертификата: %s" - -msgid "Serial number (hex)" -msgstr "Серийный номер (hex)" - -msgid "Request status" -msgstr "Статус запроса" - -msgid "RFC822Name does not match any of user's email addresses" -msgstr "RFC822 Имя не совпадает ни с одним пользователем электронной почты" - -msgid "Revoked" -msgstr "Отозван" - -msgid "7 is not a valid revocation reason" -msgstr "7 неверная причина отзыва сертификата" - -msgid "Configuration" -msgstr "Настройка" diff --git a/po/sk.po b/po/sk.po index 2f5ba898f..b4d75c54d 100644 --- a/po/sk.po +++ b/po/sk.po @@ -1,9 +1,9 @@ # Martin Bašti , 2016. #zanata msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -14,6 +14,22 @@ msgstr "" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" +#, c-format +msgid "Unable to set LDAP_OPT_X_TLS_CERTIFICATE\n" +msgstr "Nie je možné nastaviť LDAP_OPT_X_TLS_CERTIFICATE\n" + +#, c-format +msgid "Passwords do not match!" +msgstr "Heslá sa nezhodujú!" + +#, c-format +msgid "Incorrect password.\n" +msgstr "Nesprávne heslo.\n" + +#, python-format +msgid "objectclass %s not found" +msgstr "objectclass %s nenájdená" + #, python-format msgid "request failed with HTTP status %d" msgstr "požiadavka zlyhala s HTTP stavom %d" @@ -22,596 +38,20 @@ msgstr "požiadavka zlyhala s HTTP stavom %d" msgid "Retrieving CA status failed: %s" msgstr "Získanie CA stavu zlyhalo: %s" -#, python-format -msgid "objectclass %s not found" -msgstr "objectclass %s nenájdená" - -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" -msgstr "neznáma chyba %(code)d od %(server)s: %(error)s" - -msgid "an internal error has occurred" -msgstr "nastala interná chyba" - -#, python-format -msgid "an internal error has occurred on server at '%(server)s'" -msgstr "nastala interná chyba na serveri '%(server)s'" - -#, python-format -msgid "unknown command '%(name)s'" -msgstr "neznámy príkaz '%(name)s'" - -#, python-format -msgid "error on server '%(server)s': %(error)s" -msgstr "chyba na serveri '%(server)s': %(error)s" - -#, python-format -msgid "cannot connect to '%(uri)s': %(error)s" -msgstr "nedá sa pripojiť k '%(uri)s': %(error)s" - -#, python-format -msgid "Invalid JSON-RPC request: %(error)s" -msgstr "Nevalídna JSON-RPC požiadavka: %(error)s" - -#, python-format -msgid "Service '%(service)s' not found in Kerberos database" -msgstr "Služba '%(service)s' nenájdená v Kerberos databáze" - -#, python-format -msgid "Insufficient access: %(info)s" -msgstr "Nedostatočný prístup: %(info)s" - -#, python-format -msgid "'%(name)s' is required" -msgstr "'%(name)s' je požadované" - -msgid "Passwords do not match" -msgstr "Heslá sa nezhodujú" - -msgid "Command not implemented" -msgstr "Príkaz nie je implementovaný" - -msgid "Client is not configured. Run ipa-client-install." -msgstr "Klient nie je nakonfigurovaný. Spustite ipa-client-install." - -#, python-format -msgid "Could not get %(name)s interactively" -msgstr "Nie je možné interaktívne získať %(name)s" - -#, python-format -msgid "Domain '%(domain)s' is not a root domain for forest '%(forest)s'" -msgstr "Doména '%(domain)s' nie je koreňovou doménou pre les '%(forest)s'" - -#, python-format -msgid "%(reason)s" -msgstr "%(reason)s" - -msgid "This entry already exists" -msgstr "Táto položka už existuje" - -msgid "This command requires root access" -msgstr "Tento príkaz vyžaduje root oprávnenia" - -msgid "This is already a posix group" -msgstr "Toto už je posix skupina" - -msgid "This entry is already disabled" -msgstr "Táto položka bola už deaktivovaná" - -msgid "This entry cannot be enabled or disabled" -msgstr "Táto položka nemôže byť aktivovaná alebo deaktivovaná" - -msgid "This entry is not a member" -msgstr "Táto položka nie je členom" - -msgid "A group may not be a member of itself" -msgstr "Skupina nemože byť členom seba samej" - -msgid "This entry is already a member" -msgstr "Táto položka už je členom" - -#, python-format -msgid "Base64 decoding failed: %(reason)s" -msgstr "Base64 dekódovanie zlyhalo: %(reason)s" - -#, python-format -msgid "'%(entry)s' doesn't have a certificate." -msgstr "'%(entry)s' nemá certifikát." - -#, python-format -msgid "%(attr)s does not contain '%(value)s'" -msgstr "%(attr)s neobsahuje '%(value)s'" - -msgid "change collided with another change" -msgstr "zmena spôsobila kolíziu s inou zmenou" - -msgid "no modifications to be performed" -msgstr "žiadne úpravy neboli vykonané" - -#, python-format -msgid "%(desc)s: %(info)s" -msgstr "%(desc)s: %(info)s" - -#, python-format -msgid "%(info)s" -msgstr "%(info)s" - -#, python-format -msgid "%(attr)s: Only one value allowed." -msgstr "%(attr)s: Len jedna hodnota je povolená." - -#, python-format -msgid "%(attr)s: Invalid syntax." -msgstr "%(attr)s: Nesprávna syntax." - -#, python-format -msgid "Bad search filter %(info)s" -msgstr "Zlý vyhľadávací filter %(info)s" - -msgid "Configured time limit exceeded" -msgstr "Nakonfigurovaný časový limit bol dosiahnutý" - -msgid "Configured size limit exceeded" -msgstr "Nakonfigurovaný veľkostný limit bol dosiahnutý" - -#, python-format -msgid "Certificate format error: %(error)s" -msgstr "Chyba formátu certifikátu: %(error)s" - -#, python-format -msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it" -msgstr "" -"%(key)s nemôže byť odstránené pretože %(label)s %(dependent)s to vyžaduje" - -#, python-format -msgid "" -"%(key)s cannot be deleted or disabled because it is the last member of " -"%(label)s %(container)s" -msgstr "" -"%(key)s nemôže byť odstránené alebo deaktivované pretože je to posledný člen " -"%(label)s %(container)s" - -#, python-format -msgid "%(label)s %(key)s cannot be deleted/modified: %(reason)s" -msgstr "%(label)s %(key)s nemôže byť ostránené/upravené: %(reason)s" - -#, python-format -msgid "%(name)s certificate is not valid" -msgstr "%(name)s certifikát nie je platný" - -#, python-format -msgid "DNS check failed: Expected {%(expected)s} got {%(got)s}" -msgstr "DNS kontrola zlyhala: Očakávané {%(expected)s} prijaté {%(got)s}" - -#, python-format -msgid "%(exception)s" -msgstr "%(exception)s" - -#, c-format -msgid "Passwords do not match!" -msgstr "Heslá sa nezhodujú!" - -msgid "No matching entries found" -msgstr "Nenašli sa žiadne zhodné položky" - -msgid "Topic or Command" -msgstr "Téma alebo príkaz" - -msgid "Command name" -msgstr "Názov príkazu" - -msgid "Positional arguments" -msgstr "Pozičný argument" - -#, python-format -msgid "Same as --%s" -msgstr "Rovnaké ako --%s" - -msgid "Deprecated options" -msgstr "Zastarané voľby" - -msgid "" -"DNS forwarder semantics changed since IPA 4.0.\n" -"You may want to use forward zones (dnsforwardzone-*) instead.\n" -"For more details read the docs." -msgstr "" -"Sémantika DNS forwarderov je zmenená od IPA 4.0.\n" -"Pravdepodobne ste chceli použiť (dnsforwardzone-*).\n" -"Pre viac informácií prosím prečítajte dokumentáciu." - -#, python-format -msgid "" -"DNSSEC support is experimental.\n" -"%(additional_info)s" -msgstr "" -"DNSSEC podpora je experimentálna.\n" -"%(additional_info)s" - -#, python-format -msgid "'%(option)s' option is deprecated. %(additional_info)s" -msgstr "'%(option)s'voľba je zastaraná. %(additional_info)s" - -#, python-format -msgid "" -"Semantic of %(label)s was changed. %(current_behavior)s\n" -"%(hint)s" -msgstr "" -"Sémantika %(label)s bola zmenená. %(current_behavior)s\n" -"%(hint)s" - -#, python-format -msgid "DNS server %(server)s: %(error)s." -msgstr "DNS server %(server)s: %(error)s." - -#, python-format -msgid "" -"DNS server %(server)s does not support DNSSEC: %(error)s.\n" -"If DNSSEC validation is enabled on IPA server(s), please disable it." -msgstr "" -"DNS server %(server)s nepodporuje DNSSEC: %(error)s.\n" -"Ak je DNSSEC validácia aktivovaná na IPA serveroch, prosím deaktivujte ju." - -#, python-format -msgid "" -"DNS server %(server)s does not support EDNS0 (RFC 6891): %(error)s.\n" -"If DNSSEC validation is enabled on IPA server(s), please disable it." -msgstr "" -"DNS server %(server)s nepodporuje EDNS0 (RFC 6891): %(error)s.\n" -"Ak je DNSSEC validácia aktivovaná na IPA serveroch, prosím deaktivujte ju." - -#, python-format -msgid "" -"DNSSEC validation failed: %(error)s.\n" -"Please verify your DNSSEC configuration or disable DNSSEC validation on all " -"IPA servers." -msgstr "" -"DNSSEC validácia zlyhala: %(error)s.\n" -"Prosím overte Vašu DNSSEC konfiguráciu alebo deaktivujte DNSSEC validáciu na " -"všetkých IPA serveroch." - -#, python-format -msgid "'%(command)s' is deprecated. %(additional_info)s" -msgstr "'%(command)s' príkaz je zastaraný %(additional_info)s" - -#, python-format -msgid "%(line)s" -msgstr "%(line)s" - -msgid "Results are truncated, try a more specific search" -msgstr "Výsledky sú skrátené, vyskúšajte viac špecifické vyhľadávanie" - -#, python-format -msgid "Unknown option: %(option)s" -msgstr "Neznáma voľba: %(option)s" - -msgid "incorrect type" -msgstr "Nesprávný typ" - -msgid "Only one value is allowed" -msgstr "Len jedna hodnota je povolená" - -msgid "this option is deprecated" -msgstr "táto voľba je zastaraná" - -msgid "must be True or False" -msgstr "musí byť True alebo False" - -msgid "must be an integer" -msgstr "musí byť integer" - -#, python-format -msgid "must be at least %(minvalue)d" -msgstr "musí byť najmenej %(minvalue)d" - -#, python-format -msgid "can be at most %(maxvalue)d" -msgstr "môže byť najviac %(maxvalue)d" - -msgid "must be a decimal number" -msgstr "musí byť desiatkové číslo" - -#, python-format -msgid "must be at least %(minvalue)s" -msgstr "musí byť najmenej %(minvalue)s" - -#, python-format -msgid "can be at most %(maxvalue)s" -msgstr "môže byť najviac %(maxvalue)s" - -msgid "must be binary data" -msgstr "musí byť binárny údaj" - -msgid "must be Unicode text" -msgstr "musí byť Unicode text" - -msgid "Leading and trailing spaces are not allowed" -msgstr "Počiatočné a koncové medzery nie sú povolené" +msgid "List of deletions that failed" +msgstr "Zoznam odstránení, ktoré zlyhaly" msgid "Number of entries returned" msgstr "Počet vrátených položiek" -msgid "List of deletions that failed" -msgstr "Zoznam odstránení, ktoré zlyhaly" - -msgid "empty DNS label" -msgstr "prázdny DNS label" - -msgid "DNS label cannot be longer that 63 characters" -msgstr "DNS label nemôže byť dlhší ako 63 znakov" - -#, python-format -msgid "" -"only letters, numbers, %(chars)s are allowed. DNS label may not start or end " -"with %(chars2)s" -msgstr "" -"povolené sú len písmená, čísla, %(chars)s . DNS label nesmie začínať alebo " -"končiť s %(chars2)s" - -msgid "too many '@' characters" -msgstr "príliš mnoho '@' znakov" - -msgid "cannot be longer that 255 characters" -msgstr "nemôže byť dlhší ako 255 znakov" - -msgid "not fully qualified" -msgstr "nie je plne kvalifikované (FQDN)" - -msgid "invalid SSH public key" -msgstr "neplatný verejný SSH kľúč" - -msgid "options are not allowed" -msgstr "voľby nie sú povolené" - -#, python-format -msgid "query '%(owner)s %(rtype)s': %(error)s" -msgstr "dotaz '%(owner)s %(rtype)s': %(error)s" - -#, python-format -msgid "query '%(owner)s %(rtype)s' with EDNS0: %(error)s" -msgstr "dotaz '%(owner)s %(rtype)s' s EDNS0: %(error)s" - -#, python-format -msgid "record '%(owner)s %(rtype)s' failed DNSSEC validation on server %(ip)s" -msgstr "" -"záznam '%(owner)s %(rtype)s' neprešiel DNSSEC validáciou na serveri %(ip)s" - -msgid "invalid escape code in domain name" -msgstr "neplatný escape kód v doménovom mene" - -msgid "domain name cannot be longer than 255 characters" -msgstr "doménové meno nemôže byť dlhšie ako 255 znakov" - -msgid "DNS label cannot be longer than 63 characters" -msgstr "DNS label nemôže byť dlhší ako 63 znakov" - -msgid "invalid domain name" -msgstr "neplatné doménové meno" - -#, python-format -msgid "domain name '%(domain)s' should be normalized to: %(normalized)s" -msgstr "" -"doménové meno '%(domain)s' by malo byť normalizované na: %(normalized)s" - -#, python-format -msgid "invalid domain-name: %s" -msgstr "neplatné doménové meno: %s" - -#, python-format -msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!" -msgstr "neplatná verzia IP adresy (je %(value)d, musí byť %(required_value)d)!" - -msgid "invalid IP address format" -msgstr "neplatný formát IP adresy" - -#, python-format -msgid "%(port)s is not a valid port" -msgstr "%(port)s nie je platný port" - -#, c-format -msgid "Incorrect password.\n" -msgstr "Nesprávne heslo.\n" - -#, c-format -msgid "Unable to set LDAP_OPT_X_TLS_CERTIFICATE\n" -msgstr "Nie je možné nastaviť LDAP_OPT_X_TLS_CERTIFICATE\n" - -msgid "Dict of JSON encoded IPA Objects" -msgstr "Slovník JSON zakódovaných IPA objektov" - -msgid "Dict of JSON encoded IPA Methods" -msgstr "Slovník JSON zakódovaných IPA metód" - -msgid "Dict of JSON encoded IPA Commands" -msgstr "Slovník JSON zakódovaných IPA príkazov" - msgid "User name" msgstr "Používateľské meno" -msgid "Delete an ID range." -msgstr "Zmazať ID rozsah." - -msgid "Username" -msgstr "Používateľské meno" - -msgid "Password" -msgstr "Heslo" - -msgid "Certificate" -msgstr "Certifikát" - -msgid "Keytab" -msgstr "Keytab" - -msgid "Force" -msgstr "Vynútiť" - -msgid "Disable the Kerberos key and SSL certificate of a service." -msgstr "Deaktivovať Kerberos kľúč a SSL certifikát služby." - -msgid "Rule name" -msgstr "Názov pravidla" - msgid "Description" msgstr "Popis" -msgid "Users" -msgstr "Používatelia" - -msgid "User Groups" -msgstr "Používateľské skupiny" - -msgid "Group description" -msgstr "Popis skupiny" - -msgid "Commands" -msgstr "Príkazy" - -msgid "Permissions" -msgstr "Povolenia" - -msgid "Attributes" -msgstr "Atribúty" - -msgid "Type" -msgstr "Typ" - -msgid "Filter" -msgstr "Filter" - -msgid "Subtree" -msgstr "Podstrom" - -msgid "Target group" -msgstr "Cieľová skupina" - -msgid "Search for permissions." -msgstr "Vyhľadať povolenia." - -msgid "Rename" -msgstr "Premenovať" - -msgid "SELinux User" -msgstr "SELinux používateľ" - -msgid "Locality" -msgstr "Lokalita" - -msgid "Operating system" -msgstr "Operačný systém" - -msgid "User password" -msgstr "Používateľské heslo" - -msgid "MAC address" -msgstr "MAC adresa" - -msgid "SSH public key" -msgstr "Verejný SSH kľúč" - -msgid "Roles" -msgstr "Role" - -msgid "IP Address" -msgstr "IP adresa" - -msgid "Update DNS entries" -msgstr "Aktualizovať DNS položky." - -msgid "ACI name" -msgstr "ACI názov" - -msgid "Permission" -msgstr "Povolenie" - -msgid "User group" -msgstr "Používateľská skupina" - -msgid "User group ACI grants access to" -msgstr "ACI používateľskej skupiny udeluje prístup k" - -msgid "Member of" -msgstr "Členom" - -msgid "Member of a group" -msgstr "Členom skupiny" - -msgid "New ACI name" -msgstr "Nový ACI názov" - -msgid "Service name" -msgstr "Názov služby" - -msgid "HBAC service" -msgstr "HBAC služba" - -msgid "HBAC service description" -msgstr "HBAC popis služby" - -msgid "Add a new HBAC service." -msgstr "Pridať novú HBAC službu." - -msgid "Delete an existing HBAC service." -msgstr "Odstrániť existujúcu HBAC službu." - -msgid "Search for HBAC services." -msgstr "Vyhľadať HBAC služby." - -msgid "Modify an HBAC service." -msgstr "Upraviť HBAC službu." - -msgid "LDAP URI" -msgstr "LDAP URI" - -msgid "Overwrite GID" -msgstr "Prepísať GID" - -msgid "LDAP schema" -msgstr "LDAP schéma" - -msgid "Continue" -msgstr "Pokračovať" - -msgid "Automember Rule" -msgstr "Automember pravidlo" - -msgid "Search for Sudo Commands." -msgstr "Vyhľadať sudo príkazy." - -msgid "Priority" -msgstr "Priorita" - -msgid "User" -msgstr "Používateľ" - -msgid "User login" -msgstr "Prihlasovacie meno" - -msgid "First name" -msgstr "Meno" - -msgid "Last name" -msgstr "Priezvisko" - -msgid "Full name" -msgstr "Celé meno" - -msgid "Display name" -msgstr "Zobrazované meno" - -msgid "Initials" -msgstr "Iniciály" - -msgid "Home directory" -msgstr "Domovský priečinok" - -msgid "Email address" -msgstr "E-mailová adresa" - -msgid "UID" -msgstr "UID" - -msgid "User ID Number (system will assign one if not provided)" -msgstr "ID používateľa (systém priradí automaticky ak nie je zadané) " +msgid "Group name" +msgstr "Názov skupiny" msgid "GID" msgstr "GID" @@ -619,186 +59,110 @@ msgstr "GID" msgid "Group ID Number" msgstr "ID skupiny" -msgid "Street address" -msgstr "Ulica" +msgid "User login" +msgstr "Prihlasovacie meno" -msgid "City" -msgstr "Mesto" +msgid "UID" +msgstr "UID" -msgid "State/Province" -msgstr "Štát/Provincia" +msgid "User ID Number" +msgstr "ID používateľa" -msgid "ZIP" -msgstr "PSČ" +msgid "GECOS" +msgstr "GECOS" -msgid "Telephone Number" -msgstr "Telefónne číslo" +msgid "Home directory" +msgstr "Domovský priečinok" -msgid "Mobile Telephone Number" -msgstr "Mobilné číslo" +msgid "SSH public key" +msgstr "Verejný SSH kľúč" -msgid "Pager Number" -msgstr "Pager číslo" +msgid "ID View Name" +msgstr "Názov ID View" -msgid "Fax Number" -msgstr "Faxové číslo" +msgid "Rename" +msgstr "Premenovať" -msgid "Org. Unit" -msgstr "Org. jednotka" +msgid "Add a new ID View." +msgstr "Pridať nové ID View" -msgid "Job Title" -msgstr "Pracovná pozícia" +msgid "Delete an ID View." +msgstr "Odstrániť ID View." -msgid "Manager" -msgstr "Manažér" +msgid "Modify OTP configuration options." +msgstr "Upraviť OTP konfiguračné voľby." -msgid "Account disabled" -msgstr "Účet deaktivovaný" - -msgid "Member of groups" -msgstr "Člen skupín" - -msgid "Disable a user account." -msgstr "Deaktivovať používateľský účet." - -msgid "group" -msgstr "skupina" - -msgid "Group name" -msgstr "Názov skupiny" - -msgid "Member groups" -msgstr "Členské skupiny" - -msgid "Create a new group." -msgstr "Vytvoriť novú skupinu." - -msgid "Delete group." -msgstr "Odstrániť skupinu." - -msgid "Search for groups." -msgstr "Vyhľadávať skupiny." - -msgid "Modify a group." -msgstr "Upraviť skupinu." - -msgid "Set a user's password." -msgstr "Nastaviť používateľské heslo." - -msgid "New Password" -msgstr "Nové heslo" - -msgid "Current Password" -msgstr "Súčasné heslo" +msgid "Show the current OTP configuration." +msgstr "Zobraziť aktuálnu OTP konfiguráciu." msgid "The IPA realm" msgstr "IPA realm" +msgid "Priority" +msgstr "Priorita" + +msgid "User" +msgstr "Používateľ" + +msgid "Rule name" +msgstr "Názov pravidla" + +msgid "Users" +msgstr "Používatelia" + +msgid "User Groups" +msgstr "Používateľské skupiny" + msgid "Role name" msgstr "Názov role" +msgid "Member groups" +msgstr "Členské skupiny" + msgid "NIS domain name" msgstr "NIS doménové meno" msgid "IPA unique ID" msgstr "IPA unikátne ID" -msgid "Global forwarders" -msgstr "Globálne forwardery" +msgid "group" +msgstr "skupina" -msgid "" -"Global forwarding policy. Set to \"none\" to disable any configured global " -"forwarders." -msgstr "" -"Globálna forward politika. Nastavením na \"none\" sa deaktivuje akýkoľvek " -"nastavený globálny forwarder." +msgid "Permissions" +msgstr "Povolenia" -msgid "Allow PTR sync" -msgstr "Povoliť PTR synchronizáciu" +msgid "Attributes" +msgstr "Atribúty" -msgid "Record name" -msgstr "Názov záznamu" +msgid "User group" +msgstr "Používateľská skupina" -msgid "Records" -msgstr "Záznamy" +msgid "User group ACI grants access to" +msgstr "ACI používateľskej skupiny udeluje prístup k" -msgid "Record type" -msgstr "Typ záznamu" +msgid "Delete an ID range." +msgstr "Zmazať ID rozsah." -msgid "Certificate Type" -msgstr "Typ certifikátu" +msgid "Certificate" +msgstr "Certifikát" -msgid "Size" -msgstr "Veľkosť" +msgid "Roles" +msgstr "Role" -msgid "Order" -msgstr "Poradie" +msgid "Keytab" +msgstr "Keytab" -msgid "Service" -msgstr "Služba" +msgid "Force" +msgstr "Vynútiť" -msgid "Weight" -msgstr "Váha" +msgid "Add new certificates to a service" +msgstr "Pridať nové certifikáty k službe" -msgid "Port" -msgstr "Port" +msgid "Disable the Kerberos key and SSL certificate of a service." +msgstr "Deaktivovať Kerberos kľúč a SSL certifikát služby." -msgid "Zone name" -msgstr "Názov zóny" - -msgid "Zone name (FQDN)" -msgstr "Názov zóny (FQDN)" - -msgid "Authoritative nameserver" -msgstr "Autoritatívny nameserver" - -msgid "Authoritative nameserver domain name" -msgstr "Doménové meno autoritatívneho nameservera" - -msgid "Administrator e-mail address" -msgstr "E-mailová adresa administrátora" - -msgid "SOA record serial number" -msgstr "Sériové číslo SOA záznamu" - -msgid "Active zone" -msgstr "Aktívna zóna" - -msgid "Is zone active?" -msgstr "Je zóna aktívna?" - -msgid "Dynamic update" -msgstr "Dynamické aktualizácie" - -msgid "Allow dynamic updates." -msgstr "Povoliť dynamické aktualizácie" - -msgid "Allow query" -msgstr "Povoliť dotazy" - -msgid "Allow transfer" -msgstr "Povoliť prenos" - -msgid "Zone forwarders" -msgstr "Zónové forwardery" - -msgid "Add new DNS resource record." -msgstr "Pridať nový DNS záznam" - -msgid "Structured" -msgstr "Štrukturovane" - -msgid "Delete DNS resource record." -msgstr "Odstrániť DNS záznam" - -msgid "Modify a DNS resource record." -msgstr "Upraviť DNS záznam" - -msgid "Delete DNS zone (SOA record)." -msgstr "Odstrániť DNS zónu (SOA záznam)." - -msgid "Disable DNS Zone." -msgstr "Deaktivovať DNS zónu." +msgid "Remove certificates from a service" +msgstr "Odstrániť certifikáty zo služby" msgid "Services" msgstr "Služby" @@ -833,98 +197,89 @@ msgstr "Odstrániť služby a skupiny služieb z HBAC pravidla." msgid "Remove users and groups from an HBAC rule." msgstr "Odstrániť používateľov a skupiny z HBAC pravidla." -msgid "Include all disabled IPA rules into test" -msgstr "Zahrnúť všetky deaktivované IPA pravidlá do testu" - -msgid "Warning" -msgstr "Varovanie" - msgid "permission" msgstr "povolenie" -msgid "Serial number" -msgstr "Sériové číslo" - -msgid "Revoke a certificate." -msgstr "Revokácia certifikátu." - -msgid "Reason for revoking the certificate (0-10)" -msgstr "Dôvod revokácie certifikátu (0-10)" - -msgid "Retrieve an existing certificate." -msgstr "Získať existujúci certifikát." - -msgid "Domain NetBIOS name" -msgstr "Doménové NetBIOS meno" - msgid "Domain" msgstr "Doména" -msgid "NetBIOS name" -msgstr "NetBIOS meno" +msgid "Service name" +msgstr "Názov služby" -msgid "Modify configuration options." -msgstr "Upraviť konfiguračné voľby." +msgid "HBAC service" +msgstr "HBAC služba" -msgid "Show the current configuration." -msgstr "Zobraziť konfiguračné voľby" +msgid "HBAC service description" +msgstr "HBAC popis služby" -msgid "Add new certificates to a service" -msgstr "Pridať nové certifikáty k službe" +msgid "Add a new HBAC service." +msgstr "Pridať novú HBAC službu." -msgid "Remove certificates from a service" -msgstr "Odstrániť certifikáty zo služby" +msgid "Delete an existing HBAC service." +msgstr "Odstrániť existujúcu HBAC službu." -msgid "User ID Number" -msgstr "ID používateľa" +msgid "Search for HBAC services." +msgstr "Vyhľadať HBAC služby." -msgid "GECOS" -msgstr "GECOS" +msgid "Modify an HBAC service." +msgstr "Upraviť HBAC službu." -msgid "ID View Name" -msgstr "Názov ID View" +msgid "First name" +msgstr "Meno" -msgid "Add a new ID View." -msgstr "Pridať nové ID View" +msgid "Last name" +msgstr "Priezvisko" -msgid "Delete an ID View." -msgstr "Odstrániť ID View." +msgid "Full name" +msgstr "Celé meno" -msgid "Included attributes" -msgstr "Zahrnuté atribúty" +msgid "Display name" +msgstr "Zobrazované meno" -msgid "Excluded attributes" -msgstr "Vylúčené atribúty" +msgid "Initials" +msgstr "Iniciály" -msgid "Default attributes" -msgstr "Predvolené atribúty" +msgid "Email address" +msgstr "E-mailová adresa" -msgid "Target DN" -msgstr "Cieľové DN" +msgid "Password" +msgstr "Heslo" -msgid "Location of the ACI" -msgstr "Umiestnenie ACI" +msgid "User ID Number (system will assign one if not provided)" +msgstr "ID používateľa (systém priradí automaticky ak nie je zadané) " -msgid "CA certificate" -msgstr "CA certifikát" +msgid "Street address" +msgstr "Ulica" -msgid "Load CA certificate of LDAP server from FILE" -msgstr "Načítať CA certifikát LDAP servera zo súboru" +msgid "City" +msgstr "Mesto" -msgid "Add to default group" -msgstr "Pridať do predvolenej skupiny" +msgid "State/Province" +msgstr "Štát/Provincia" -msgid "Search scope" -msgstr "Rozsah vyhľadávania" +msgid "ZIP" +msgstr "PSČ" -msgid "Profiles" -msgstr "Profily" +msgid "Telephone Number" +msgstr "Telefónne číslo" -msgid "Delete a CA ACL." -msgstr "Odstrániť CA ACL." +msgid "Mobile Telephone Number" +msgstr "Mobilné číslo" -msgid "Disable a CA ACL." -msgstr "Deaktivovať CA ACL." +msgid "Pager Number" +msgstr "Pager číslo" + +msgid "Fax Number" +msgstr "Faxové číslo" + +msgid "Org. Unit" +msgstr "Org. jednotka" + +msgid "Job Title" +msgstr "Pracovná pozícia" + +msgid "Manager" +msgstr "Manažér" msgid "User authentication types" msgstr "Typy autentifikácie používateľa" @@ -950,20 +305,8 @@ msgstr "Typ zamestnanca" msgid "Preferred Language" msgstr "Preferovaný jazyk" -msgid "Preserved user" -msgstr "Uschovaný používateľ" - -msgid "Add one or more certificates to the user entry" -msgstr "Pridať jeden alebo viac certifikátov do používateľskej položky" - -msgid "Remove one or more certificates to the user entry" -msgstr "Odtrániť jeden alebo viac certifikátov z používateľskej položky" - -msgid "OTP" -msgstr "OTP" - -msgid "One Time Password" -msgstr "Jednorázové heslo (OTP)" +msgid "Member of groups" +msgstr "Člen skupín" msgid "Profile ID" msgstr "ID profilu" @@ -974,15 +317,12 @@ msgstr "Odstrániť certifikačný profil" msgid "Import a Certificate Profile." msgstr "Importovať certifikačný profil" -msgid "Modify OTP configuration options." -msgstr "Upraviť OTP konfiguračné voľby." - -msgid "Show the current OTP configuration." -msgstr "Zobraziť aktuálnu OTP konfiguráciu." - msgid "Unique ID" msgstr "Unikátne ID" +msgid "Type" +msgstr "Typ" + msgid "Type of the token" msgstr "Typ tokenu" @@ -1016,6 +356,198 @@ msgstr "Vyhľadať OTP token" msgid "Modify a OTP token." msgstr "Upraviť OTP token" +msgid "Dict of JSON encoded IPA Objects" +msgstr "Slovník JSON zakódovaných IPA objektov" + +msgid "Dict of JSON encoded IPA Methods" +msgstr "Slovník JSON zakódovaných IPA metód" + +msgid "Dict of JSON encoded IPA Commands" +msgstr "Slovník JSON zakódovaných IPA príkazov" + +msgid "Automember Rule" +msgstr "Automember pravidlo" + +msgid "Included attributes" +msgstr "Zahrnuté atribúty" + +msgid "Excluded attributes" +msgstr "Vylúčené atribúty" + +msgid "Default attributes" +msgstr "Predvolené atribúty" + +msgid "Subtree" +msgstr "Podstrom" + +msgid "Target DN" +msgstr "Cieľové DN" + +msgid "Target group" +msgstr "Cieľová skupina" + +msgid "Search for permissions." +msgstr "Vyhľadať povolenia." + +msgid "ACI name" +msgstr "ACI názov" + +msgid "Permission" +msgstr "Povolenie" + +msgid "Member of" +msgstr "Členom" + +msgid "Member of a group" +msgstr "Členom skupiny" + +msgid "Filter" +msgstr "Filter" + +msgid "New ACI name" +msgstr "Nový ACI názov" + +msgid "Location of the ACI" +msgstr "Umiestnenie ACI" + +msgid "Locality" +msgstr "Lokalita" + +msgid "Operating system" +msgstr "Operačný systém" + +msgid "User password" +msgstr "Používateľské heslo" + +msgid "MAC address" +msgstr "MAC adresa" + +msgid "IP Address" +msgstr "IP adresa" + +msgid "Update DNS entries" +msgstr "Aktualizovať DNS položky." + +msgid "Modify configuration options." +msgstr "Upraviť konfiguračné voľby." + +msgid "Show the current configuration." +msgstr "Zobraziť konfiguračné voľby" + +msgid "Profiles" +msgstr "Profily" + +msgid "Delete a CA ACL." +msgstr "Odstrániť CA ACL." + +msgid "Disable a CA ACL." +msgstr "Deaktivovať CA ACL." + +msgid "Service" +msgstr "Služba" + +msgid "Include all disabled IPA rules into test" +msgstr "Zahrnúť všetky deaktivované IPA pravidlá do testu" + +msgid "Warning" +msgstr "Varovanie" + +msgid "LDAP URI" +msgstr "LDAP URI" + +msgid "Overwrite GID" +msgstr "Prepísať GID" + +msgid "LDAP schema" +msgstr "LDAP schéma" + +msgid "Continue" +msgstr "Pokračovať" + +msgid "CA certificate" +msgstr "CA certifikát" + +msgid "Load CA certificate of LDAP server from FILE" +msgstr "Načítať CA certifikát LDAP servera zo súboru" + +msgid "Add to default group" +msgstr "Pridať do predvolenej skupiny" + +msgid "Search scope" +msgstr "Rozsah vyhľadávania" + +msgid "SELinux User" +msgstr "SELinux používateľ" + +msgid "Group description" +msgstr "Popis skupiny" + +msgid "Commands" +msgstr "Príkazy" + +msgid "Account disabled" +msgstr "Účet deaktivovaný" + +msgid "Preserved user" +msgstr "Uschovaný používateľ" + +msgid "Add one or more certificates to the user entry" +msgstr "Pridať jeden alebo viac certifikátov do používateľskej položky" + +msgid "Disable a user account." +msgstr "Deaktivovať používateľský účet." + +msgid "Remove one or more certificates to the user entry" +msgstr "Odtrániť jeden alebo viac certifikátov z používateľskej položky" + +msgid "Domain NetBIOS name" +msgstr "Doménové NetBIOS meno" + +msgid "NetBIOS name" +msgstr "NetBIOS meno" + +msgid "Domain name" +msgstr "Doménové meno" + +msgid "Search for existing certificates." +msgstr "Vyhľadávanie existujúcich certifikátov." + +msgid "Reason for revoking the certificate (0-10)" +msgstr "Dôvod revokácie certifikátu (0-10)" + +msgid "minimum serial number" +msgstr "minimálne sériové číslo" + +msgid "maximum serial number" +msgstr "maximálne sériové číslo" + +msgid "Serial number" +msgstr "Sériové číslo" + +msgid "Revoke a certificate." +msgstr "Revokácia certifikátu." + +msgid "Retrieve an existing certificate." +msgstr "Získať existujúci certifikát." + +msgid "Create a new group." +msgstr "Vytvoriť novú skupinu." + +msgid "Delete group." +msgstr "Odstrániť skupinu." + +msgid "Search for groups." +msgstr "Vyhľadávať skupiny." + +msgid "Modify a group." +msgstr "Upraviť skupinu." + +msgid "Search for Sudo Commands." +msgstr "Vyhľadať sudo príkazy." + +msgid "Global forwarders" +msgstr "Globálne forwardery" + msgid "" "Global forwarders. A custom port can be specified for each forwarder using a " "standard format \"IP_ADDRESS port PORT\"" @@ -1023,6 +555,79 @@ msgstr "" "Globálne forwardery. Vlastný port môže byť nastavený použítím štandardného " "formátu \"IP_ADRESA port PORT\" pre každý forwarder " +msgid "" +"Global forwarding policy. Set to \"none\" to disable any configured global " +"forwarders." +msgstr "" +"Globálna forward politika. Nastavením na \"none\" sa deaktivuje akýkoľvek " +"nastavený globálny forwarder." + +msgid "Allow PTR sync" +msgstr "Povoliť PTR synchronizáciu" + +msgid "Zone name" +msgstr "Názov zóny" + +msgid "Zone name (FQDN)" +msgstr "Názov zóny (FQDN)" + +msgid "Active zone" +msgstr "Aktívna zóna" + +msgid "Is zone active?" +msgstr "Je zóna aktívna?" + +msgid "Zone forwarders" +msgstr "Zónové forwardery" + +msgid "Record name" +msgstr "Názov záznamu" + +msgid "Records" +msgstr "Záznamy" + +msgid "Record type" +msgstr "Typ záznamu" + +msgid "Certificate Type" +msgstr "Typ certifikátu" + +msgid "Size" +msgstr "Veľkosť" + +msgid "Order" +msgstr "Poradie" + +msgid "Weight" +msgstr "Váha" + +msgid "Port" +msgstr "Port" + +msgid "Authoritative nameserver" +msgstr "Autoritatívny nameserver" + +msgid "Authoritative nameserver domain name" +msgstr "Doménové meno autoritatívneho nameservera" + +msgid "Administrator e-mail address" +msgstr "E-mailová adresa administrátora" + +msgid "SOA record serial number" +msgstr "Sériové číslo SOA záznamu" + +msgid "Dynamic update" +msgstr "Dynamické aktualizácie" + +msgid "Allow dynamic updates." +msgstr "Povoliť dynamické aktualizácie" + +msgid "Allow query" +msgstr "Povoliť dotazy" + +msgid "Allow transfer" +msgstr "Povoliť prenos" + msgid "Create new DNS forward zone." msgstr "Vytvoriť novú DNS forward zónu" @@ -1041,52 +646,82 @@ msgstr "Upraviť DNS forward zónu" msgid "Display information about a DNS forward zone." msgstr "Zobraziť informácie o DNS forward zóne" -msgid "Search for existing certificates." -msgstr "Vyhľadávanie existujúcich certifikátov." +msgid "Add new DNS resource record." +msgstr "Pridať nový DNS záznam" -msgid "minimum serial number" -msgstr "minimálne sériové číslo" +msgid "Structured" +msgstr "Štrukturovane" -msgid "maximum serial number" -msgstr "maximálne sériové číslo" +msgid "Delete DNS resource record." +msgstr "Odstrániť DNS záznam" -msgid "Domain name" -msgstr "Doménové meno" +msgid "Modify a DNS resource record." +msgstr "Upraviť DNS záznam" -#, python-format -msgid "Certificate(s) stored in file '%(file)s'" -msgstr "Certifikát(y) sú uložené v súbore '%(file)s'" +msgid "Delete DNS zone (SOA record)." +msgstr "Odstrániť DNS zónu (SOA záznam)." + +msgid "Disable DNS Zone." +msgstr "Deaktivovať DNS zónu." + +msgid "Set a user's password." +msgstr "Nastaviť používateľské heslo." + +msgid "New Password" +msgstr "Nové heslo" + +msgid "Current Password" +msgstr "Súčasné heslo" + +msgid "OTP" +msgstr "OTP" + +msgid "One Time Password" +msgstr "Jednorázové heslo (OTP)" + +msgid "Username" +msgstr "Používateľské meno" #, python-format msgid "Disabled Sudo Rule \"%s\"" msgstr "Deaktivované sudo pravidlá \"%s\"" #, python-format -msgid "Cannot read file '%(filename)s': %(exc)s" -msgstr "Nie je možné čítať súbor '%(filename)s': %(exc)s" +msgid "Certificate(s) stored in file '%(file)s'" +msgstr "Certifikát(y) sú uložené v súbore '%(file)s'" #, python-format -msgid "Cannot decode file '%(filename)s': %(exc)s" -msgstr "Nie je možné dekódovať súbor '%(filename)s': %(exc)s" +msgid "Profile configuration stored in file '%(file)s'" +msgstr "Konfigurácia profilu bola uložená do súboru '%(file)s'" -msgid "Invalid credentials" -msgstr "Nesprávne prihlasovacie údaje" +msgid "Synchronize an OTP token." +msgstr "Synchronizovať OTP token" -msgid "Password can be specified only for symmetric vault" -msgstr "Heslo môže byť špecifikované len pre symetrický vault" +msgid "User ID" +msgstr "ID používateľa" -msgid "Public key can be specified only for asymmetric vault" -msgstr "Verejný kľúč môže byť špecifikovný len pre asymetrický vault" +msgid "First Code" +msgstr "Prvý kód" -msgid "Modify a vault." -msgstr "Upraviť vault." +msgid "Second Code" +msgstr "Druhý kód" -msgid "Change password" -msgstr "Zmeniť heslo" +msgid "Token ID" +msgstr "Token ID" msgid "Failed to add" msgstr "Zlyhalo pridanie" +msgid "Servers details:" +msgstr "Detaily serverov:" + +#, python-format +msgid "Removing %(servers)s from replication topology, please wait..." +msgstr "Odstraňovanie %(servers)s z replikačnej topológie, prosím čakajte..." + +msgid "Delete a user" +msgstr "Odstrániť používateľa" + msgid "Topology is disconnected" msgstr "Topológia je odpojená" @@ -1135,64 +770,28 @@ msgstr "Duplikované kľúče preskočené:" msgid "Skipped %(key)s" msgstr "Preskočené %(key)s" -msgid "" -"\n" -"YubiKey Tokens\n" -msgstr "" -"\n" -"YubiKey Tokeny\n" - -msgid "" -"\n" -"Manage YubiKey tokens.\n" -msgstr "" -"\n" -"Spravovať YubiKey tokeny.\n" - -msgid "" -"\n" -"EXAMPLES:\n" -msgstr "" -"\n" -"PRÍKLADY:\n" - -msgid "Add a new YubiKey OTP token." -msgstr "Pridať nový YubiKey OTP token." - -msgid "YubiKey slot" -msgstr "YubiKey slot" - -msgid "No free YubiKey slot!" -msgstr "Žiadny voľný YubiKey slot!" - -msgid "Delete a user" -msgstr "Odstrániť používateľa" +#, python-format +msgid "Cannot read file '%(filename)s': %(exc)s" +msgstr "Nie je možné čítať súbor '%(filename)s': %(exc)s" #, python-format -msgid "Removing %(servers)s from replication topology, please wait..." -msgstr "Odstraňovanie %(servers)s z replikačnej topológie, prosím čakajte..." +msgid "Cannot decode file '%(filename)s': %(exc)s" +msgstr "Nie je možné dekódovať súbor '%(filename)s': %(exc)s" -msgid "Servers details:" -msgstr "Detaily serverov:" +msgid "Invalid credentials" +msgstr "Nesprávne prihlasovacie údaje" -#, python-format -msgid "Profile configuration stored in file '%(file)s'" -msgstr "Konfigurácia profilu bola uložená do súboru '%(file)s'" +msgid "Password can be specified only for symmetric vault" +msgstr "Heslo môže byť špecifikované len pre symetrický vault" -msgid "Synchronize an OTP token." -msgstr "Synchronizovať OTP token" +msgid "Public key can be specified only for asymmetric vault" +msgstr "Verejný kľúč môže byť špecifikovný len pre asymetrický vault" -msgid "User ID" -msgstr "ID používateľa" +msgid "Modify a vault." +msgstr "Upraviť vault." -msgid "First Code" -msgstr "Prvý kód" - -msgid "Second Code" -msgstr "Druhý kód" - -msgid "Token ID" -msgstr "Token ID" +msgid "Change password" +msgstr "Zmeniť heslo" msgid "Please choose a type of DNS resource record to be added" msgstr "Prosím vyberte typ DNS záznamu" @@ -1239,12 +838,269 @@ msgstr "Server skontroluje DNS forwarder(y)." msgid "This may take some time, please wait ..." msgstr "Toto môže trvať nejaký čas, prosím čakajte ..." +msgid "" +"\n" +"YubiKey Tokens\n" +msgstr "" +"\n" +"YubiKey Tokeny\n" + +msgid "" +"\n" +"Manage YubiKey tokens.\n" +msgstr "" +"\n" +"Spravovať YubiKey tokeny.\n" + +msgid "" +"\n" +"EXAMPLES:\n" +msgstr "" +"\n" +"PRÍKLADY:\n" + +msgid "Add a new YubiKey OTP token." +msgstr "Pridať nový YubiKey OTP token." + +msgid "YubiKey slot" +msgstr "YubiKey slot" + +msgid "No free YubiKey slot!" +msgstr "Žiadny voľný YubiKey slot!" + +#, python-format +msgid "Unknown option: %(option)s" +msgstr "Neznáma voľba: %(option)s" + +msgid "Active Directory domain" +msgstr "Active Directory doména" + msgid "trusted domain object not found" msgstr "trust doménový objekt nenájdený" msgid "trusted domain user not found" msgstr "trust doménový užívateľ nenájdený" +msgid "IPA server role name" +msgstr "Názov role servera" + +msgid "IPA role name" +msgstr "Názov IPA role" + +msgid "kerberos ticket policy settings" +msgstr "nastavenia kerberos ticket policy" + +msgid "ID Views" +msgstr "ID Views" + +#, python-format +msgid "Added ID View \"%(value)s\"" +msgstr "Pridané ID View \"%(value)s\"" + +#, python-format +msgid "Deleted ID View \"%(value)s\"" +msgstr "Odstránené ID View \"%(value)s\"" + +msgid "not found" +msgstr "Nenašlo sa" + +msgid "value" +msgstr "hodnota" + +msgid "IPA object" +msgstr "IPA objekt" + +msgid "Base-64 encoded user certificate" +msgstr "Base-64 zakódovaný používateľský certifikát" + +msgid "OTP configuration options" +msgstr "OTP konfiguračné voľby" + +msgid "OTP Configuration" +msgstr "OTP konfigurácia" + +msgid "pkinit" +msgstr "pkinit" + +msgid "password policies" +msgstr "Politky hesiel" + +msgid "Password Policies" +msgstr "Politiky hesiel" + +msgid "Password Policy" +msgstr "Politika hesiel" + +msgid "sudo rules" +msgstr "sudo pravidlá" + +msgid "Sudo Rules" +msgstr "Sudo pravidlá" + +msgid "Certificate Authority" +msgstr "Certifikačná autorita" + +msgid "Certificate Authorities" +msgstr "Certifikačné autority" + +msgid "Name" +msgstr "Názov" + +msgid "Authority ID" +msgstr "ID autority" + +msgid "Dogtag Authority ID" +msgstr "ID Dogtag autority" + +msgid "Base-64 encoded certificate." +msgstr "Base-64 zakódovaný certifikát." + +msgid "IPA CA cannot be deleted" +msgstr "IPA CA nemôže byť odstránené" + +msgid "Modify CA configuration." +msgstr "Upraviť CA konfiguráciu." + +msgid "ACI" +msgstr "ACI" + +msgid "ID Ranges" +msgstr "ID rozsahy" + +msgid "ID Range" +msgstr "ID rozsah" + +msgid "Base-64 encoded service certificate" +msgstr "Base-64 zakódovaný certifikát služby" + +msgid "Serial Number" +msgstr "Sériové číslo" + +msgid "Serial Number (hex)" +msgstr "Sériové číslo (hexadecimálne)" + +#, python-format +msgid "Disabled service \"%(value)s\"" +msgstr "Deaktivovaná služba \"%(value)s\"" + +msgid "DNS server" +msgstr "DNS server" + +msgid "Forwarders" +msgstr "Forwardery" + +msgid "Search for DNS servers." +msgstr "Vyhľadať DNS servery" + +msgid "HBAC rules" +msgstr "HBAC pravidlá" + +msgid "HBAC Rules" +msgstr "HBAC pravidlá" + +#, python-format +msgid "Added HBAC rule \"%(value)s\"" +msgstr "HBAC pravidlo \"%(value)s\" bolo pridané" + +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" +msgstr "Odstránené HBAC pravidlo \"%(value)s\"" + +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" +msgstr "HBAC pravidlo \"%(value)s\" bolo upravené" + +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "%(count)d HBAC pravidlo nájdené" +msgstr[1] "%(count)d HBAC pravidiel nájdených" +msgstr[2] "%(count)d HBAC pravidiel nájdených" + +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" +msgstr "HBAC pravidlo \"%(value)s\" bolo aktivované" + +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" +msgstr "Deaktivované HBAC pravidlo \"%(value)s\"" + +msgid "Access time" +msgstr "Čas prístupu" + +msgid "Realm Domains" +msgstr "Realm domény" + +msgid "HBAC services" +msgstr "HBAC služby" + +msgid "HBAC Services" +msgstr "HBAC služby" + +msgid "HBAC Service" +msgstr "HBAC služba" + +#, python-format +msgid "Added HBAC service \"%(value)s\"" +msgstr "HBAC služba \"%(value)s\" bola pridaná" + +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" +msgstr "HBAC služba \"%(value)s\" bola odstránená" + +#, python-format +msgid "Modified HBAC service \"%(value)s\"" +msgstr "HBAC služba \"%(value)s\" bola upravená." + +msgid "invalid Profile ID" +msgstr "nevalídne ID profilu" + +msgid "Certificate Profile" +msgstr "Certifikačný profil" + +msgid "Certificate Profiles" +msgstr "Certifikačné profily" + +msgid "Profile configuration" +msgstr "Configurácia profilu" + +#, python-format +msgid "Deleted profile \"%(value)s\"" +msgstr "Odstránený profil \"%(value)s\"" + +msgid "Certificate profiles cannot be renamed" +msgstr "Certifikačné profily nemôžu byť premenované" + +msgid "" +"\n" +"OTP Tokens\n" +msgstr "" +"\n" +"OTP tokeny\n" + +msgid "OTP token" +msgstr "OTP token" + +msgid "OTP tokens" +msgstr "OTP tokeny" + +msgid "OTP Tokens" +msgstr "OTP tokeny" + +msgid "OTP Token" +msgstr "OTP token" + +msgid "URI" +msgstr "URI" + +#, python-format +msgid "Deleted OTP token \"%(value)s\"" +msgstr "Odstránený OTP token \"%(value)s\"" + +#, python-format +msgid "Modified OTP token \"%(value)s\"" +msgstr "Upravený OTP token \"%(value)s\"" + msgid "Your session has expired. Please re-login." msgstr "Vaše prihlásenie vypršalo. Prosím znovu sa prihláste." @@ -1571,12 +1427,6 @@ msgstr "Revokovať certifikát" msgid "Certificate Revoked" msgstr "Certifikát revokovaný" -msgid "Serial Number" -msgstr "Sériové číslo" - -msgid "Serial Number (hex)" -msgstr "Sériové číslo (hexadecimálne)" - msgid "Status" msgstr "Stav" @@ -1747,15 +1597,9 @@ msgstr "Zobraziť/Nastaviť kľúč" msgid "Modified" msgstr "Modifikované" -msgid "Password Policy" -msgstr "Politika hesiel" - msgid "Range Settings" msgstr "Nastavenie rozsahu" -msgid "Active Directory domain" -msgstr "Active Directory doména" - msgid "Active Directory domain with POSIX attributes" msgstr "Active Directory doména s POSIX attribútmy" @@ -1774,9 +1618,6 @@ msgstr "Active Directory winsync" msgid "RADIUS Proxy Server Settings" msgstr "RADIUS Proxy serverové nastavenia" -msgid "Realm Domains" -msgstr "Realm domény" - msgid "Check DNS" msgstr "Skontrolovať DNS" @@ -2064,80 +1905,29 @@ msgstr "Povinné pole" msgid "Unsupported value" msgstr "Nepodporovaná hodnota" -msgid "kerberos ticket policy settings" -msgstr "nastavenia kerberos ticket policy" - -msgid "ID Ranges" -msgstr "ID rozsahy" - -msgid "ID Range" -msgstr "ID rozsah" - -msgid "IPA server role name" -msgstr "Názov role servera" - -msgid "IPA role name" -msgstr "Názov IPA role" +#, python-format +msgid "%(otype)s \"%(oname)s\" not found" +msgstr "%(otype)s \"%(oname)s\" nenájdené" #, python-format -msgid "container entry (%(container)s) not found" -msgstr "kontajner (%(container)s) nenájdený" +msgid "Added automember rule \"%(value)s\"" +msgstr "Pridané automember pravidlo \"%(value)s\"" #, python-format -msgid "%(parent)s: %(oname)s not found" -msgstr "%(parent)s: %(oname)s nenájdený" +msgid "Auto member rule: %s not found!" +msgstr "Automember pravidlo: %s nenájdené!" #, python-format -msgid "%(pkey)s: %(oname)s not found" -msgstr "%(pkey)s: %(oname)s nenájdený" +msgid "Deleted automember rule \"%(value)s\"" +msgstr "Odstránené automember pravidlo \"%(value)s\"" -msgid "Base-64 encoded service certificate" -msgstr "Base-64 zakódovaný certifikát služby" - -#, python-format -msgid "Disabled service \"%(value)s\"" -msgstr "Deaktivovaná služba \"%(value)s\"" - -msgid "sudo rules" -msgstr "sudo pravidlá" - -msgid "Sudo Rules" -msgstr "Sudo pravidlá" - -#, python-brace-format -msgid "{role}: role not found" -msgstr "{role}: rola nenájdená" - -msgid "ID Views" -msgstr "ID Views" - -#, python-format -msgid "Added ID View \"%(value)s\"" -msgstr "Pridané ID View \"%(value)s\"" - -#, python-format -msgid "Deleted ID View \"%(value)s\"" -msgstr "Odstránené ID View \"%(value)s\"" - -msgid "not found" -msgstr "Nenašlo sa" - -msgid "value" -msgstr "hodnota" - -msgid "IPA object" -msgstr "IPA objekt" - -msgid "Base-64 encoded user certificate" -msgstr "Base-64 zakódovaný používateľský certifikát" +msgid "Automember rebuild membership task started" +msgstr "Úloha obnovenia automember členstva začala" #, python-format msgid "\"%s\" is not a valid permission type" msgstr "\"%s\" nie je platný typ povolenia" -msgid "ACI" -msgstr "ACI" - msgid "A SYSTEM permission may not be modified or removed" msgstr "SYSTEM-ové povolenia nemožu byť upravené alebo odstránené" @@ -2161,204 +1951,6 @@ msgstr "Položka %s neexistuje" msgid "ACI of permission %s was not found" msgstr "ACI pre oprávnenie %s sa nenašlo" -msgid "SSH public key fingerprint" -msgstr "Odtlačok verejného SSH kľúča (fingerprint)" - -#, python-format -msgid "invalid e-mail format: %(email)s" -msgstr "neplatný formát e-mailovej adresy: %(email)s" - -#, python-format -msgid "manager %(manager)s not found" -msgstr "manažér %(manager)s nenájdený" - -msgid "pkinit" -msgstr "pkinit" - -#, python-format -msgid "HBAC rule %(rule)s not found" -msgstr "HBAC pravidlo %(rule)s nenájdené" - -msgid "No A, AAAA, SSHFP or PTR records found." -msgstr "Nenašli sa žiadne A, AAAA, SSHFP, alebo PTR záznamy." - -msgid "cn is immutable" -msgstr "cn je nemeniteľné" - -#, python-format -msgid "invalid DN (%s)" -msgstr "neplatné DN (%s)" - -#, python-format -msgid "ACI with name \"%s\" not found" -msgstr "ACI s názvom \"%s\" nenájdené" - -msgid "ACIs" -msgstr "ACI" - -#, python-format -msgid "Created ACI \"%(value)s\"" -msgstr "Vytvorené ACI \"%(value)s\"" - -#, python-format -msgid "Deleted ACI \"%(value)s\"" -msgstr "Odstránené ACI \"%(value)s\"" - -#, python-format -msgid "Modified ACI \"%(value)s\"" -msgstr "Upravené ACI \"%(value)s\"" - -msgid "DNS server" -msgstr "DNS server" - -msgid "Forwarders" -msgstr "Forwardery" - -msgid "Search for DNS servers." -msgstr "Vyhľadať DNS servery" - -msgid "HBAC services" -msgstr "HBAC služby" - -msgid "HBAC Services" -msgstr "HBAC služby" - -msgid "HBAC Service" -msgstr "HBAC služba" - -#, python-format -msgid "Added HBAC service \"%(value)s\"" -msgstr "HBAC služba \"%(value)s\" bola pridaná" - -#, python-format -msgid "Deleted HBAC service \"%(value)s\"" -msgstr "HBAC služba \"%(value)s\" bola odstránená" - -#, python-format -msgid "Modified HBAC service \"%(value)s\"" -msgstr "HBAC služba \"%(value)s\" bola upravená." - -msgid "Certificate Authority" -msgstr "Certifikačná autorita" - -msgid "Certificate Authorities" -msgstr "Certifikačné autority" - -msgid "Name" -msgstr "Názov" - -msgid "Authority ID" -msgstr "ID autority" - -msgid "Dogtag Authority ID" -msgstr "ID Dogtag autority" - -msgid "Base-64 encoded certificate." -msgstr "Base-64 zakódovaný certifikát." - -msgid "IPA CA cannot be deleted" -msgstr "IPA CA nemôže byť odstránené" - -msgid "Modify CA configuration." -msgstr "Upraviť CA konfiguráciu." - -msgid "Malformed DN" -msgstr "Poškodené DN" - -#, python-format -msgid "%(user)s is not a POSIX user" -msgstr "%(user)s nie je POSIX užívateľ" - -msgid "Invalid LDAP URI." -msgstr "Neplatná LDAP URI." - -msgid "Default group for new users not found" -msgstr "Predvolená skupina pre nových používateľov nenájdená" - -#, python-format -msgid "%(otype)s \"%(oname)s\" not found" -msgstr "%(otype)s \"%(oname)s\" nenájdené" - -#, python-format -msgid "Added automember rule \"%(value)s\"" -msgstr "Pridané automember pravidlo \"%(value)s\"" - -#, python-format -msgid "Auto member rule: %s not found!" -msgstr "Automember pravidlo: %s nenájdené!" - -#, python-format -msgid "Deleted automember rule \"%(value)s\"" -msgstr "Odstránené automember pravidlo \"%(value)s\"" - -msgid "Automember rebuild membership task started" -msgstr "Úloha obnovenia automember členstva začala" - -msgid "sudo commands" -msgstr "sudo príkazy" - -msgid "Sudo Commands" -msgstr "Sudo príkazy" - -#, python-format -msgid "Deleted CA ACL \"%(value)s\"" -msgstr "Odstránené CA ACL \"%(value)s\"" - -#, python-format -msgid "Disabled CA ACL \"%(value)s\"" -msgstr "Deaktivované CA ACL \"%(value)s\"" - -msgid "password policies" -msgstr "Politky hesiel" - -msgid "Password Policies" -msgstr "Politiky hesiel" - -#, python-format -msgid "%s: user is already preserved" -msgstr "%s: používateľ je už uschovaný" - -#, python-format -msgid "Disabled user account \"%(value)s\"" -msgstr "Deaktivovaný používateľský účet \"%(value)s\"" - -#, python-format -msgid "Account disabled: %(disabled)s" -msgstr "Účet deaktivovaný: %(disabled)s" - -#, python-format -msgid "Added certificates to user \"%(value)s\"" -msgstr "Certifikáty boli pridané k používateľovi \"%(value)s\"" - -#, python-format -msgid "Removed certificates from user \"%(value)s\"" -msgstr "Certifikáty boli odstránené používateľovi \"%(value)s\"" - -msgid "groups" -msgstr "skupiny" - -msgid "User Group" -msgstr "Používateľská skupina" - -#, python-format -msgid "Added group \"%(value)s\"" -msgstr "Pridaná skupina \"%(value)s\"" - -#, python-format -msgid "Deleted group \"%(value)s\"" -msgstr "Odstránená skupina \"%(value)s\"" - -#, python-format -msgid "Modified group \"%(value)s\"" -msgstr "Upravená skupina \"%(value)s\"" - -#, python-format -msgid "Changed password for \"%(value)s\"" -msgstr "Zmenené heslo pre \"%(value)s\"" - -msgid "Weight for server services" -msgstr "Váha pre služby servera" - msgid "" "\n" "IPA locations\n" @@ -2479,63 +2071,154 @@ msgstr "Zobraziť informácie o IPA lokalite." msgid "Servers in location" msgstr "Servery v lokalite." -msgid "invalid Profile ID" -msgstr "nevalídne ID profilu" - -msgid "Certificate Profile" -msgstr "Certifikačný profil" - -msgid "Certificate Profiles" -msgstr "Certifikačné profily" - -msgid "Profile configuration" -msgstr "Configurácia profilu" +#, python-format +msgid "invalid DN (%s)" +msgstr "neplatné DN (%s)" #, python-format -msgid "Deleted profile \"%(value)s\"" -msgstr "Odstránený profil \"%(value)s\"" +msgid "ACI with name \"%s\" not found" +msgstr "ACI s názvom \"%s\" nenájdené" -msgid "Certificate profiles cannot be renamed" -msgstr "Certifikačné profily nemôžu byť premenované" +msgid "ACIs" +msgstr "ACI" + +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "Vytvorené ACI \"%(value)s\"" + +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "Odstránené ACI \"%(value)s\"" + +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "Upravené ACI \"%(value)s\"" + +msgid "Weight for server services" +msgstr "Váha pre služby servera" + +#, python-format +msgid "container entry (%(container)s) not found" +msgstr "kontajner (%(container)s) nenájdený" + +#, python-format +msgid "%(parent)s: %(oname)s not found" +msgstr "%(parent)s: %(oname)s nenájdený" + +#, python-format +msgid "%(pkey)s: %(oname)s not found" +msgstr "%(pkey)s: %(oname)s nenájdený" + +msgid "SSH public key fingerprint" +msgstr "Odtlačok verejného SSH kľúča (fingerprint)" + +msgid "No A, AAAA, SSHFP or PTR records found." +msgstr "Nenašli sa žiadne A, AAAA, SSHFP, alebo PTR záznamy." + +msgid "cn is immutable" +msgstr "cn je nemeniteľné" + +msgid "configuration options" +msgstr "konfiguračné voľby" + +msgid "Configuration" +msgstr "Konfigurácia" + +#, python-format +msgid "Deleted CA ACL \"%(value)s\"" +msgstr "Odstránené CA ACL \"%(value)s\"" + +#, python-format +msgid "Disabled CA ACL \"%(value)s\"" +msgstr "Deaktivované CA ACL \"%(value)s\"" + +#, python-format +msgid "Access granted: %s" +msgstr "Prístup povolený: %s" + +#, python-format +msgid "invalid e-mail format: %(email)s" +msgstr "neplatný formát e-mailovej adresy: %(email)s" + +#, python-format +msgid "manager %(manager)s not found" +msgstr "manažér %(manager)s nenájdený" + +msgid "Malformed DN" +msgstr "Poškodené DN" + +#, python-format +msgid "%(user)s is not a POSIX user" +msgstr "%(user)s nie je POSIX užívateľ" + +msgid "Invalid LDAP URI." +msgstr "Neplatná LDAP URI." + +msgid "Default group for new users not found" +msgstr "Predvolená skupina pre nových používateľov nenájdená" + +#, python-format +msgid "HBAC rule %(rule)s not found" +msgstr "HBAC pravidlo %(rule)s nenájdené" msgid "Required" msgstr "Povinné" -msgid "OTP configuration options" -msgstr "OTP konfiguračné voľby" +#, python-format +msgid "%s: user is already preserved" +msgstr "%s: používateľ je už uschovaný" -msgid "OTP Configuration" -msgstr "OTP konfigurácia" +#, python-format +msgid "Disabled user account \"%(value)s\"" +msgstr "Deaktivovaný používateľský účet \"%(value)s\"" +#, python-format +msgid "Account disabled: %(disabled)s" +msgstr "Účet deaktivovaný: %(disabled)s" + +#, python-format +msgid "Added certificates to user \"%(value)s\"" +msgstr "Certifikáty boli pridané k používateľovi \"%(value)s\"" + +#, python-format +msgid "Removed certificates from user \"%(value)s\"" +msgstr "Certifikáty boli odstránené používateľovi \"%(value)s\"" + +msgid "SID" +msgstr "SID" + +msgid "Serial number (hex)" +msgstr "Sériové číslo (hexadecimálne)" + +#, python-format msgid "" -"\n" -"OTP Tokens\n" +"Certificate with serial number %(serial)s issued by CA '%(ca)s' not found" msgstr "" -"\n" -"OTP tokeny\n" +"Certifikát so sériovým číslom %(serial)s vydaný CA '%(ca)s' sa nenašiel" -msgid "OTP token" -msgstr "OTP token" +msgid "groups" +msgstr "skupiny" -msgid "OTP tokens" -msgstr "OTP tokeny" - -msgid "OTP Tokens" -msgstr "OTP tokeny" - -msgid "OTP Token" -msgstr "OTP token" - -msgid "URI" -msgstr "URI" +msgid "User Group" +msgstr "Používateľská skupina" #, python-format -msgid "Deleted OTP token \"%(value)s\"" -msgstr "Odstránený OTP token \"%(value)s\"" +msgid "Added group \"%(value)s\"" +msgstr "Pridaná skupina \"%(value)s\"" #, python-format -msgid "Modified OTP token \"%(value)s\"" -msgstr "Upravený OTP token \"%(value)s\"" +msgid "Deleted group \"%(value)s\"" +msgstr "Odstránená skupina \"%(value)s\"" + +#, python-format +msgid "Modified group \"%(value)s\"" +msgstr "Upravená skupina \"%(value)s\"" + +msgid "sudo commands" +msgstr "sudo príkazy" + +msgid "Sudo Commands" +msgstr "Sudo príkazy" msgid "invalid IP network format" msgstr "neplatný formát IP siete" @@ -2651,60 +2334,377 @@ msgstr "Deaktivovaná DNS forward zóna \"%(value)s\"" msgid "IPA DNS records" msgstr "IPA DNS záznamy" -msgid "HBAC rules" -msgstr "HBAC pravidlá" - -msgid "HBAC Rules" -msgstr "HBAC pravidlá" - #, python-format -msgid "Added HBAC rule \"%(value)s\"" -msgstr "HBAC pravidlo \"%(value)s\" bolo pridané" +msgid "Changed password for \"%(value)s\"" +msgstr "Zmenené heslo pre \"%(value)s\"" -#, python-format -msgid "Deleted HBAC rule \"%(value)s\"" -msgstr "Odstránené HBAC pravidlo \"%(value)s\"" +#, python-brace-format +msgid "{role}: role not found" +msgstr "{role}: rola nenájdená" -#, python-format -msgid "Modified HBAC rule \"%(value)s\"" -msgstr "HBAC pravidlo \"%(value)s\" bolo upravené" - -#, python-format -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "%(count)d HBAC pravidlo nájdené" -msgstr[1] "%(count)d HBAC pravidiel nájdených" -msgstr[2] "%(count)d HBAC pravidiel nájdených" - -#, python-format -msgid "Enabled HBAC rule \"%(value)s\"" -msgstr "HBAC pravidlo \"%(value)s\" bolo aktivované" - -#, python-format -msgid "Disabled HBAC rule \"%(value)s\"" -msgstr "Deaktivované HBAC pravidlo \"%(value)s\"" - -msgid "Access time" -msgstr "Čas prístupu" - -#, python-format -msgid "Access granted: %s" -msgstr "Prístup povolený: %s" - -msgid "Serial number (hex)" -msgstr "Sériové číslo (hexadecimálne)" +msgid "" +"DNS forwarder semantics changed since IPA 4.0.\n" +"You may want to use forward zones (dnsforwardzone-*) instead.\n" +"For more details read the docs." +msgstr "" +"Sémantika DNS forwarderov je zmenená od IPA 4.0.\n" +"Pravdepodobne ste chceli použiť (dnsforwardzone-*).\n" +"Pre viac informácií prosím prečítajte dokumentáciu." #, python-format msgid "" -"Certificate with serial number %(serial)s issued by CA '%(ca)s' not found" +"DNSSEC support is experimental.\n" +"%(additional_info)s" msgstr "" -"Certifikát so sériovým číslom %(serial)s vydaný CA '%(ca)s' sa nenašiel" +"DNSSEC podpora je experimentálna.\n" +"%(additional_info)s" -msgid "SID" -msgstr "SID" +#, python-format +msgid "'%(option)s' option is deprecated. %(additional_info)s" +msgstr "'%(option)s'voľba je zastaraná. %(additional_info)s" -msgid "configuration options" -msgstr "konfiguračné voľby" +#, python-format +msgid "" +"Semantic of %(label)s was changed. %(current_behavior)s\n" +"%(hint)s" +msgstr "" +"Sémantika %(label)s bola zmenená. %(current_behavior)s\n" +"%(hint)s" -msgid "Configuration" -msgstr "Konfigurácia" +#, python-format +msgid "DNS server %(server)s: %(error)s." +msgstr "DNS server %(server)s: %(error)s." + +#, python-format +msgid "" +"DNS server %(server)s does not support DNSSEC: %(error)s.\n" +"If DNSSEC validation is enabled on IPA server(s), please disable it." +msgstr "" +"DNS server %(server)s nepodporuje DNSSEC: %(error)s.\n" +"Ak je DNSSEC validácia aktivovaná na IPA serveroch, prosím deaktivujte ju." + +#, python-format +msgid "" +"DNS server %(server)s does not support EDNS0 (RFC 6891): %(error)s.\n" +"If DNSSEC validation is enabled on IPA server(s), please disable it." +msgstr "" +"DNS server %(server)s nepodporuje EDNS0 (RFC 6891): %(error)s.\n" +"Ak je DNSSEC validácia aktivovaná na IPA serveroch, prosím deaktivujte ju." + +#, python-format +msgid "" +"DNSSEC validation failed: %(error)s.\n" +"Please verify your DNSSEC configuration or disable DNSSEC validation on all " +"IPA servers." +msgstr "" +"DNSSEC validácia zlyhala: %(error)s.\n" +"Prosím overte Vašu DNSSEC konfiguráciu alebo deaktivujte DNSSEC validáciu na " +"všetkých IPA serveroch." + +#, python-format +msgid "'%(command)s' is deprecated. %(additional_info)s" +msgstr "'%(command)s' príkaz je zastaraný %(additional_info)s" + +#, python-format +msgid "%(line)s" +msgstr "%(line)s" + +msgid "Results are truncated, try a more specific search" +msgstr "Výsledky sú skrátené, vyskúšajte viac špecifické vyhľadávanie" + +msgid "No matching entries found" +msgstr "Nenašli sa žiadne zhodné položky" + +msgid "Topic or Command" +msgstr "Téma alebo príkaz" + +msgid "Command name" +msgstr "Názov príkazu" + +msgid "Positional arguments" +msgstr "Pozičný argument" + +#, python-format +msgid "Same as --%s" +msgstr "Rovnaké ako --%s" + +msgid "Deprecated options" +msgstr "Zastarané voľby" + +msgid "incorrect type" +msgstr "Nesprávný typ" + +msgid "Only one value is allowed" +msgstr "Len jedna hodnota je povolená" + +msgid "this option is deprecated" +msgstr "táto voľba je zastaraná" + +msgid "must be True or False" +msgstr "musí byť True alebo False" + +msgid "must be an integer" +msgstr "musí byť integer" + +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "musí byť najmenej %(minvalue)d" + +#, python-format +msgid "can be at most %(maxvalue)d" +msgstr "môže byť najviac %(maxvalue)d" + +msgid "must be a decimal number" +msgstr "musí byť desiatkové číslo" + +#, python-format +msgid "must be at least %(minvalue)s" +msgstr "musí byť najmenej %(minvalue)s" + +#, python-format +msgid "can be at most %(maxvalue)s" +msgstr "môže byť najviac %(maxvalue)s" + +msgid "must be binary data" +msgstr "musí byť binárny údaj" + +msgid "must be Unicode text" +msgstr "musí byť Unicode text" + +msgid "Leading and trailing spaces are not allowed" +msgstr "Počiatočné a koncové medzery nie sú povolené" + +msgid "empty DNS label" +msgstr "prázdny DNS label" + +msgid "DNS label cannot be longer that 63 characters" +msgstr "DNS label nemôže byť dlhší ako 63 znakov" + +#, python-format +msgid "" +"only letters, numbers, %(chars)s are allowed. DNS label may not start or end " +"with %(chars2)s" +msgstr "" +"povolené sú len písmená, čísla, %(chars)s . DNS label nesmie začínať alebo " +"končiť s %(chars2)s" + +msgid "too many '@' characters" +msgstr "príliš mnoho '@' znakov" + +msgid "cannot be longer that 255 characters" +msgstr "nemôže byť dlhší ako 255 znakov" + +msgid "not fully qualified" +msgstr "nie je plne kvalifikované (FQDN)" + +msgid "invalid SSH public key" +msgstr "neplatný verejný SSH kľúč" + +msgid "options are not allowed" +msgstr "voľby nie sú povolené" + +#, python-format +msgid "query '%(owner)s %(rtype)s': %(error)s" +msgstr "dotaz '%(owner)s %(rtype)s': %(error)s" + +#, python-format +msgid "query '%(owner)s %(rtype)s' with EDNS0: %(error)s" +msgstr "dotaz '%(owner)s %(rtype)s' s EDNS0: %(error)s" + +#, python-format +msgid "record '%(owner)s %(rtype)s' failed DNSSEC validation on server %(ip)s" +msgstr "" +"záznam '%(owner)s %(rtype)s' neprešiel DNSSEC validáciou na serveri %(ip)s" + +msgid "invalid escape code in domain name" +msgstr "neplatný escape kód v doménovom mene" + +msgid "domain name cannot be longer than 255 characters" +msgstr "doménové meno nemôže byť dlhšie ako 255 znakov" + +msgid "DNS label cannot be longer than 63 characters" +msgstr "DNS label nemôže byť dlhší ako 63 znakov" + +msgid "invalid domain name" +msgstr "neplatné doménové meno" + +#, python-format +msgid "domain name '%(domain)s' should be normalized to: %(normalized)s" +msgstr "" +"doménové meno '%(domain)s' by malo byť normalizované na: %(normalized)s" + +#, python-format +msgid "invalid domain-name: %s" +msgstr "neplatné doménové meno: %s" + +#, python-format +msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!" +msgstr "neplatná verzia IP adresy (je %(value)d, musí byť %(required_value)d)!" + +msgid "invalid IP address format" +msgstr "neplatný formát IP adresy" + +#, python-format +msgid "%(port)s is not a valid port" +msgstr "%(port)s nie je platný port" + +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" +msgstr "neznáma chyba %(code)d od %(server)s: %(error)s" + +msgid "an internal error has occurred" +msgstr "nastala interná chyba" + +#, python-format +msgid "an internal error has occurred on server at '%(server)s'" +msgstr "nastala interná chyba na serveri '%(server)s'" + +#, python-format +msgid "unknown command '%(name)s'" +msgstr "neznámy príkaz '%(name)s'" + +#, python-format +msgid "error on server '%(server)s': %(error)s" +msgstr "chyba na serveri '%(server)s': %(error)s" + +#, python-format +msgid "cannot connect to '%(uri)s': %(error)s" +msgstr "nedá sa pripojiť k '%(uri)s': %(error)s" + +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" +msgstr "Nevalídna JSON-RPC požiadavka: %(error)s" + +#, python-format +msgid "Service '%(service)s' not found in Kerberos database" +msgstr "Služba '%(service)s' nenájdená v Kerberos databáze" + +#, python-format +msgid "Insufficient access: %(info)s" +msgstr "Nedostatočný prístup: %(info)s" + +#, python-format +msgid "'%(name)s' is required" +msgstr "'%(name)s' je požadované" + +msgid "Passwords do not match" +msgstr "Heslá sa nezhodujú" + +msgid "Command not implemented" +msgstr "Príkaz nie je implementovaný" + +msgid "Client is not configured. Run ipa-client-install." +msgstr "Klient nie je nakonfigurovaný. Spustite ipa-client-install." + +#, python-format +msgid "Could not get %(name)s interactively" +msgstr "Nie je možné interaktívne získať %(name)s" + +#, python-format +msgid "Domain '%(domain)s' is not a root domain for forest '%(forest)s'" +msgstr "Doména '%(domain)s' nie je koreňovou doménou pre les '%(forest)s'" + +#, python-format +msgid "%(reason)s" +msgstr "%(reason)s" + +msgid "This entry already exists" +msgstr "Táto položka už existuje" + +msgid "This command requires root access" +msgstr "Tento príkaz vyžaduje root oprávnenia" + +msgid "This is already a posix group" +msgstr "Toto už je posix skupina" + +msgid "This entry is already disabled" +msgstr "Táto položka bola už deaktivovaná" + +msgid "This entry cannot be enabled or disabled" +msgstr "Táto položka nemôže byť aktivovaná alebo deaktivovaná" + +msgid "This entry is not a member" +msgstr "Táto položka nie je členom" + +msgid "A group may not be a member of itself" +msgstr "Skupina nemože byť členom seba samej" + +msgid "This entry is already a member" +msgstr "Táto položka už je členom" + +#, python-format +msgid "Base64 decoding failed: %(reason)s" +msgstr "Base64 dekódovanie zlyhalo: %(reason)s" + +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "'%(entry)s' nemá certifikát." + +#, python-format +msgid "%(attr)s does not contain '%(value)s'" +msgstr "%(attr)s neobsahuje '%(value)s'" + +msgid "change collided with another change" +msgstr "zmena spôsobila kolíziu s inou zmenou" + +msgid "no modifications to be performed" +msgstr "žiadne úpravy neboli vykonané" + +#, python-format +msgid "%(desc)s: %(info)s" +msgstr "%(desc)s: %(info)s" + +#, python-format +msgid "%(info)s" +msgstr "%(info)s" + +#, python-format +msgid "%(attr)s: Only one value allowed." +msgstr "%(attr)s: Len jedna hodnota je povolená." + +#, python-format +msgid "%(attr)s: Invalid syntax." +msgstr "%(attr)s: Nesprávna syntax." + +#, python-format +msgid "Bad search filter %(info)s" +msgstr "Zlý vyhľadávací filter %(info)s" + +msgid "Configured time limit exceeded" +msgstr "Nakonfigurovaný časový limit bol dosiahnutý" + +msgid "Configured size limit exceeded" +msgstr "Nakonfigurovaný veľkostný limit bol dosiahnutý" + +#, python-format +msgid "Certificate format error: %(error)s" +msgstr "Chyba formátu certifikátu: %(error)s" + +#, python-format +msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it" +msgstr "" +"%(key)s nemôže byť odstránené pretože %(label)s %(dependent)s to vyžaduje" + +#, python-format +msgid "" +"%(key)s cannot be deleted or disabled because it is the last member of " +"%(label)s %(container)s" +msgstr "" +"%(key)s nemôže byť odstránené alebo deaktivované pretože je to posledný člen " +"%(label)s %(container)s" + +#, python-format +msgid "%(label)s %(key)s cannot be deleted/modified: %(reason)s" +msgstr "%(label)s %(key)s nemôže byť ostránené/upravené: %(reason)s" + +#, python-format +msgid "%(name)s certificate is not valid" +msgstr "%(name)s certifikát nie je platný" + +#, python-format +msgid "DNS check failed: Expected {%(expected)s} got {%(got)s}" +msgstr "DNS kontrola zlyhala: Očakávané {%(expected)s} prijaté {%(got)s}" + +#, python-format +msgid "%(exception)s" +msgstr "%(exception)s" diff --git a/po/tg.po b/po/tg.po index c1049e7ef..f631ea43f 100644 --- a/po/tg.po +++ b/po/tg.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -14,27 +14,26 @@ msgstr "" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=1; plural=0\n" -msgid "Passwords do not match" -msgstr "Паролҳо номувофиқанд" +#, c-format +msgid "Out of memory \n" +msgstr "Берун аз хотира \n" -#, python-format -msgid "%(info)s" -msgstr "%(info)s" - -msgid "Already registered" -msgstr "Ааллакай қайд карда шуд" +#, c-format +msgid "Out of Memory!\n" +msgstr "Берун аз хотира!\n" #, c-format msgid "Passwords do not match!" msgstr "Паролҳо номувофиқанд!" -#, c-format -msgid "out of memory\n" -msgstr "берун аз хотира\n" +msgid "Server Name" +msgstr "Номи сервер" -#, c-format -msgid "read error\n" -msgstr "хатогии хониш\n" +msgid "LDAP DN" +msgstr "LDAP DN" + +msgid "LDAP password" +msgstr "Пароли LDAP" #, c-format msgid "Out of memory!" @@ -58,90 +57,45 @@ msgid "password" msgstr "парол" #, c-format -msgid "Out of memory \n" -msgstr "Берун аз хотира \n" +msgid "out of memory\n" +msgstr "берун аз хотира\n" #, c-format -msgid "Out of Memory!\n" -msgstr "Берун аз хотира!\n" - -msgid "Server Name" -msgstr "Номи сервер" - -msgid "LDAP DN" -msgstr "LDAP DN" - -msgid "LDAP password" -msgstr "Пароли LDAP" +msgid "read error\n" +msgstr "хатогии хониш\n" msgid "User name" msgstr "Номи корбар" -msgid "Username" -msgstr "Номи корбар" - -msgid "Password" -msgstr "Парол" - -msgid "Principal" -msgstr "Асосӣ" - -msgid "Force" -msgstr "Маҷбурӣ" - msgid "Description" msgstr "Шарҳ" +msgid "Rename" +msgstr "Азнавномгузорӣ" + +msgid "Group" +msgstr "Гурӯҳ" + +msgid "User" +msgstr "Корбар" + msgid "Enabled" msgstr "Фаъолшуда" -msgid "Commands" -msgstr "Фармонҳо" - msgid "Permissions" msgstr "Иҷозатҳо" msgid "Attributes" msgstr "Аттрибутҳо" -msgid "Type" -msgstr "Намуд" - -msgid "Filter" -msgstr "Полоишгар" - -msgid "Rename" -msgstr "Азнавномгузорӣ" - -msgid "Host name" -msgstr "Номи мизбон" - -msgid "Location" -msgstr "Макон" - -msgid "ACI name" -msgstr "Номи ACI" - -msgid "Permission" -msgstr "Иҷозат" - msgid "User group" msgstr "Гурӯҳи корбар" -msgid "ACI prefix" -msgstr "Префикси ACI" +msgid "Principal" +msgstr "Асосӣ" -msgid "Key" -msgstr "Тугма" - -msgid "description" -msgstr "шарҳ" - -msgid "Group" -msgstr "Гурӯҳ" - -msgid "User" -msgstr "Корбар" +msgid "Force" +msgstr "Маҷбурӣ" msgid "First name" msgstr "Ном" @@ -155,6 +109,9 @@ msgstr "Номи намоишӣ" msgid "Initials" msgstr "Ному насаб" +msgid "Password" +msgstr "Парол" + msgid "City" msgstr "Шаҳр" @@ -170,45 +127,78 @@ msgstr "Вазифа" msgid "Manager" msgstr "Диспетчер" -msgid "New Password" -msgstr "Пароли нав" - msgid "Class" msgstr "Синф" +msgid "Type" +msgstr "Намуд" + +msgid "Key" +msgstr "Тугма" + +msgid "ACI name" +msgstr "Номи ACI" + +msgid "Permission" +msgstr "Иҷозат" + +msgid "Filter" +msgstr "Полоишгар" + +msgid "ACI prefix" +msgstr "Префикси ACI" + +msgid "Host name" +msgstr "Номи мизбон" + +msgid "Location" +msgstr "Макон" + +msgid "Service" +msgstr "Хидмат" + +msgid "Commands" +msgstr "Фармонҳо" + +msgid "description" +msgstr "шарҳ" + +msgid "Subject" +msgstr "Мавзӯъ" + +msgid "Serial number" +msgstr "Рақами силсилавӣ" + msgid "Hostname" msgstr "Номи мизбон" msgid "Target" msgstr "Мақсад" -msgid "Service" -msgstr "Хидмат" +msgid "New Password" +msgstr "Пароли нав" -msgid "Serial number" -msgstr "Рақами силсилавӣ" - -msgid "Subject" -msgstr "Мавзӯъ" - -msgid "Data" -msgstr "Маълумот" +msgid "Username" +msgstr "Номи корбар" #, python-format msgid "File %(file)s not found" msgstr "Файли %(file)s пайдо нашуд." -msgid "Delete all?" -msgstr "Ҳамаро нест мекунед?" +msgid "Data" +msgstr "Маълумот" msgid "Error" msgstr "Хатогӣ" -msgid "Out of memory\n" -msgstr "Берун аз хотира \n" +msgid "Delete all?" +msgstr "Ҳамаро нест мекунед?" -msgid "Out of memory!?\n" -msgstr "Аз хотира берун шуд!?\n" +msgid "Serial Number" +msgstr "Рақами силсилавӣ" + +msgid "Issuer" +msgstr "Диҳанда" msgid "Add" msgstr "Илова кардан" @@ -276,18 +266,12 @@ msgstr "Эзоҳ" msgid "Organization" msgstr "Ташкилот" -msgid "Serial Number" -msgstr "Рақами силсилавӣ" - msgid "Status" msgstr "Ҳолат" msgid "Validity" msgstr "Саҳеҳият" -msgid "Issuer" -msgstr "Диҳанда" - msgid "Groups" msgstr "Гуруҳҳо" @@ -312,9 +296,6 @@ msgstr "Сиёсат" msgid "Sudo" msgstr "Sudo" -msgid "Entry" -msgstr "Вуруд" - #, python-format msgid "Syntax Error: %(error)s" msgstr "Хатогии синтаксисӣ: %(error)s" @@ -322,5 +303,24 @@ msgstr "Хатогии синтаксисӣ: %(error)s" msgid "ACIs" msgstr "ACIs" +msgid "Entry" +msgstr "Вуруд" + msgid "Configuration" msgstr "Ҷӯрсозӣ" + +msgid "Passwords do not match" +msgstr "Паролҳо номувофиқанд" + +#, python-format +msgid "%(info)s" +msgstr "%(info)s" + +msgid "Already registered" +msgstr "Ааллакай қайд карда шуд" + +msgid "Out of memory\n" +msgstr "Берун аз хотира \n" + +msgid "Out of memory!?\n" +msgstr "Аз хотира берун шуд!?\n" diff --git a/po/uk.po b/po/uk.po index fc1e76593..d82373458 100644 --- a/po/uk.po +++ b/po/uk.po @@ -4,1086 +4,325 @@ # Yuri Chornoivan , 2017. #zanata msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2017-05-24 01:52-0400\n" -"Last-Translator: Copied by Zanata \n" +"PO-Revision-Date: 2017-09-01 12:08-0400\n" +"Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "X-Generator: Zanata 3.9.6\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" -#, python-format -msgid "Retrieving CA cert chain failed: %s" -msgstr "Спроба отримання ланцюжка сертифікації CA зазнала невдачі: %s" +#, c-format +msgid "Kerberos context initialization failed: %1$s (%2$d)\n" +msgstr "Невдала спроба ініціалізації контексту Kerberos: %1$s (%2$d)\n" -#, python-format -msgid "request failed with HTTP status %d" -msgstr "помилка запиту зі станом HTTP %d" +#, c-format +msgid "Unable to parse principal: %1$s (%2$d)\n" +msgstr "Не вдалося обробити реєстраційний запис: %1$s (%2$d)\n" -#, python-format -msgid "Retrieving CA status failed: %s" -msgstr "" -"Спроба отримання даних щодо стану служби сертифікації зазнала невдачі: %s" +#, c-format +msgid "No keys accepted by KDC\n" +msgstr "Жоден з ключів не прийнято KDC\n" -#, python-format -msgid "Retrieving CA status failed with status %d" -msgstr "Спроба отримання стану CA зазнала невдачі, стан %d" +#, c-format +msgid "Out of memory \n" +msgstr "Не вистачає пам'яті \n" -#, python-format -msgid "objectclass %s not found" -msgstr "клас об’єктів %s не знайдено" +#, c-format +msgid "Unable to set LDAP_OPT_X_TLS_REQUIRE_CERT\n" +msgstr "Не вдалося встановити LDAP_OPT_X_TLS_REQUIRE_CERT\n" -#, python-format -msgid "%(filename)s: file not found" -msgstr "%(filename)s: файл не знайдено" +#, c-format +msgid "Unable to initialize STARTTLS session\n" +msgstr "Не вдалося ініціалізувати сеанс STARTTLS\n" -msgid "Show environment variables." -msgstr "Показати змінні середовища." +#, c-format +msgid "Unable to set LDAP_OPT_X_TLS\n" +msgstr "Не вдалося встановити LDAP_OPT_X_TLS\n" -#, python-format -msgid "%(count)d variables" -msgstr "%(count)d змінних" +#, c-format +msgid "Unable to set LDAP_OPT_X_TLS_CERTIFICATE\n" +msgstr "Не вдалося встановити LDAP_OPT_X_TLS_CERTIFICATE\n" -msgid "" -"retrieve and print all attributes from the server. Affects command output." -msgstr "" -"отримати і вивести всі атрибути з сервера. Стосується лише виводу команд." +#, c-format +msgid "Unable to init connection to %s\n" +msgstr "Не вдалося ініціалізувати з’єднання з %s\n" -msgid "Dictionary mapping variable name to value" -msgstr "Відображення назви змінної на значення за словником" +#, c-format +msgid "Unable to initialize ldap library!\n" +msgstr "Не вдалося ініціалізувати бібліотеку ldap!\n" -msgid "Total number of variables env (>= count)" -msgstr "Кількість змінних env (>= count)" +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "Не вдалося встановити LDAP_OPT_X_SASL_NOCANON\n" -msgid "Number of variables returned (<= total)" -msgstr "Кількість повернутих змінних (<= загальної)" +#, c-format +msgid "Unable to set LDAP_OPT_PROTOCOL_VERSION\n" +msgstr "Не вдалося встановити LDAP_OPT_PROTOCOL_VERSION\n" -msgid "Show all loaded plugins." -msgstr "Показати список завантажених додатків." +#, c-format +msgid "Simple bind failed\n" +msgstr "Невдала спроба простого прив’язування\n" -#, 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 додатків" +#, c-format +msgid "Operation failed: %s\n" +msgstr "Невдала спроба виконання дії: %s\n" -msgid "Number of plugins loaded" -msgstr "Кількість завантажених додатків" +#, c-format +msgid "Failed to get result: %s\n" +msgstr "Не вдалося отримати результат: %s\n" -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at '%(server)s'" -msgstr "Клієнт %(cver)s є несумісним з сервером %(sver)s на «%(server)s»" +#, c-format +msgid "Timeout exceeded." +msgstr "Перевищено обмеження за часом." -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" -msgstr "%(server)s повідомляє про невідому помилку %(code)d: %(error)s" +#, c-format +msgid "Failed to parse extended result: %s\n" +msgstr "Не вдалося обробити розширений результат: %s\n" -msgid "an internal error has occurred" -msgstr "сталася внутрішня помилка" +#, c-format +msgid "Failed to parse result: %s\n" +msgstr "Не вдалося обробити результат: %s\n" -#, python-format -msgid "an internal error has occurred on server at '%(server)s'" -msgstr "на сервері «%(server)s» сталася внутрішня помилка" +#, c-format +msgid "Missing reply control list!\n" +msgstr "Немає списку керування відповідями!\n" -#, python-format -msgid "unknown command '%(name)s'" -msgstr "невідома команда: «%(name)s»" +#, c-format +msgid "Missing reply control!\n" +msgstr "Немає керування відповіддю!\n" -#, python-format -msgid "error on server '%(server)s': %(error)s" -msgstr "помилка на сервері «%(server)s»: %(error)s" +#, c-format +msgid "Out of Memory!\n" +msgstr "Не вистачає пам'яті!\n" -#, python-format -msgid "cannot connect to '%(uri)s': %(error)s" -msgstr "не вдалося встановити з’єднання з «%(uri)s»: %(error)s" +#, c-format +msgid "Failed to create control!\n" +msgstr "Не вдалося створити керування!\n" -#, python-format -msgid "Invalid JSON-RPC request: %(error)s" -msgstr "некоректний запит JSON-RPC: %(error)s" +#, c-format +msgid "Failed to bind to server!\n" +msgstr "Не вдалося прив’язати до сервера!\n" -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" -msgstr "" -"помилка під час розміщення даних для каналу передавання XML-RPC: %(error)s" +#, c-format +msgid "Failed to get keytab!\n" +msgstr "Не вдалося отримати таблицю ключів!\n" -#, python-format -msgid "Missing or invalid HTTP Referer, %(referer)s" -msgstr "Не вказано HTTP Referer або вказано помилкове значення, %(referer)s" +#, c-format +msgid "ber_init() failed, Invalid control ?!\n" +msgstr "Спроба виконання ber_init() зазнала невдачі. Некоректне керування?!\n" -#, python-format -msgid "Kerberos error: %(major)s/%(minor)s" -msgstr "Помилка Kerberos: %(major)s/%(minor)s" +#, c-format +msgid "ber_scanf() failed, unable to find kvno ?!\n" +msgstr "помилка ber_scanf(), не вдалося знайти kvno?!\n" -msgid "did not receive Kerberos credentials" -msgstr "не отримано реєстраційних даних Kerberos" +#, c-format +msgid "Failed to retrieve encryption type type #%d\n" +msgstr "Не вдалося отримати дані щодо типу шифрування №%d\n" -#, python-format -msgid "Service '%(service)s' not found in Kerberos database" -msgstr "У базі даних Kerberos не виявлено служби «%(service)s»" +#, c-format +msgid "Failed to retrieve encryption type %1$s (#%2$d)\n" +msgstr "Не вдалося отримати дані щодо типу шифрування %1$s (№%2$d)\n" -msgid "No credentials cache found" -msgstr "Не знайдено кешу реєстраційних даних" +#, c-format +msgid "Failed to retrieve any keys" +msgstr "Не вдалося отримати жодного ключа" -msgid "Ticket expired" -msgstr "Сплив строк дії квитка" +msgid "Failed to decode control reply!\n" +msgstr "Не вдалося декодувати контрольну відповідь!\n" -msgid "Credentials cache permissions incorrect" -msgstr "Помилкові права доступу до кешу реєстраційних даних" +msgid "New Principal Password" +msgstr "Новий пароль реєстраційного запису" -msgid "Bad format in credentials cache" -msgstr "Помилковий формат кешу реєстраційних даних" - -msgid "Cannot resolve KDC for requested realm" -msgstr "Не вдалося визначити KDC для бажаної області (realm)" - -msgid "Session error" -msgstr "Помилка сеансу" - -#, python-format -msgid "Principal %(principal)s cannot be authenticated: %(message)s" -msgstr "" -"Не вдалося виконати розпізнавання для реєстраційного запису %(principal)s: " -"%(message)s" - -#, python-format -msgid "Insufficient access: %(info)s" -msgstr "Недостатні права для доступу: %(info)s" - -#, python-format -msgid "command '%(name)s' takes no arguments" -msgstr "команда «%(name)s» не приймає ніяких аргументів" - -#, python-format -msgid "command '%(name)s' takes at most %(count)d argument" -msgid_plural "command '%(name)s' takes at most %(count)d arguments" -msgstr[0] "команда «%(name)s» приймає не більше %(count)d аргументу" -msgstr[1] "команда «%(name)s» приймає не більше %(count)d аргументів" -msgstr[2] "команда «%(name)s» приймає не більше %(count)d аргументів" - -#, python-format -msgid "overlapping arguments and options: %(names)s" -msgstr "перекриття аргументів і параметрів: %(names)s" - -#, python-format -msgid "'%(name)s' is required" -msgstr "Слід вказати «%(name)s»" - -#, python-format -msgid "invalid '%(name)s': %(error)s" -msgstr "некоректне «%(name)s»: %(error)s" - -#, python-format -msgid "api has no such namespace: '%(name)s'" -msgstr "api не надає такого простору назв: «%(name)s»" - -msgid "Passwords do not match" -msgstr "Паролі не збігаються" - -msgid "Command not implemented" -msgstr "Команду не реалізовано" - -msgid "Client is not configured. Run ipa-client-install." -msgstr "" -"Клієнтську частину не налаштовано. Віддайте команду ipa-client-install." - -#, python-format -msgid "Could not get %(name)s interactively" -msgstr "Не вдалося отримати %(name)s у інтерактивному режимі" - -#, python-format -msgid "Command '%(name)s' has been deprecated" -msgstr "Команда «%(name)s» вважається застарілою" - -#, python-format -msgid "Domain '%(domain)s' is not a root domain for forest '%(forest)s'" -msgstr "Домен «%(domain)s» не є кореневим доменом для лісу «%(forest)s»" - -#, python-format -msgid "%(reason)s" -msgstr "%(reason)s" - -msgid "This entry already exists" -msgstr "Цей запис вже існує" - -msgid "You must enroll a host in order to create a host service" -msgstr "Щоб створити службу вузла, вам слід зареєструвати вузол" - -#, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" -msgstr "" -"Реєстраційний запис служби вказано у формі, відмінній від: служба/повна " -"назва вузла: %(reason)s" - -msgid "" -"The realm for the principal does not match the realm for this IPA server" -msgstr "" -"Область дії реєстраційного запису не збігається з областю цього сервера IPA" - -msgid "This command requires root access" -msgstr "Для виконання цієї команди потрібні права доступу користувача root" - -msgid "This is already a posix group" -msgstr "Вже є posix-групою" - -#, python-format -msgid "Principal is not of the form user@REALM: '%(principal)s'" -msgstr "" -"Реєстраційний запис вказано у формі, відмінній від користувач@ОБЛАСТЬ: " -"«%(principal)s»" - -msgid "This entry is already enabled" -msgstr "Цей запис вже увімкнено" - -msgid "This entry is already disabled" -msgstr "Цей запис вже вимкнено" - -msgid "This entry cannot be enabled or disabled" -msgstr "Цей запис не можна вмикати або вимикати" - -msgid "This entry is not a member" -msgstr "Цього запису немає серед учасників" - -msgid "A group may not be a member of itself" -msgstr "Група не може бути елементом самої себе" - -msgid "This entry is already a member" -msgstr "Цей запис вже є серед учасників" - -#, python-format -msgid "Base64 decoding failed: %(reason)s" -msgstr "Помилка декодування Base64: %(reason)s" - -msgid "A group may not be added as a member of itself" -msgstr "Групу не може бути додано як елемент самої себе" - -msgid "The default users group cannot be removed" -msgstr "Не можна вилучати типову групу користувачів" - -msgid "Deleting a managed group is not allowed. It must be detached first." -msgstr "Вилучення керованих груп заборонено. Спочатку групу слід від’єднати." - -msgid "A managed group cannot have a password policy." -msgstr "У керованої групи не може бути власних правил для паролів." - -#, python-format -msgid "'%(entry)s' doesn't have a certificate." -msgstr "«%(entry)s» не містить сертифіката." - -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." -msgstr "Не вдалося створити закриту групу. Група «%(group)s» вже існує." - -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" -msgstr "" -"Під час перевірки виявлено проблему, всі записи учасників %(verb)s: %(exc)s" - -#, python-format -msgid "%(attr)s does not contain '%(value)s'" -msgstr "%(attr)s не містить «%(value)s»" - -#, python-format -msgid "" -"The search criteria was not specific enough. Expected 1 and found %(found)d." -msgstr "" -"Критерій пошуку не був достатньо точним. Мало бути вказано один критерій, " -"виявлено — %(found)d." - -msgid "This group already allows external members" -msgstr "У цій групі вже дозволено зовнішніх учасників" - -msgid "This group cannot be posix because it is external" -msgstr "Ця група не може належати до груп POSIX, оскільки є зовнішньою" - -msgid "This is already a posix group and cannot be converted to external one" -msgstr "" -"Ця група вже належить до груп POSIX, отже її не можна перетворити на зовнішню" - -#, python-format -msgid "Server removal aborted: %(reason)s." -msgstr "Вилучення сервера перервано: %(reason)s." - -#, python-format -msgid "%(operation)s is not supported for %(principal_type)s principals" -msgstr "" -"Підтримки %(operation)s для реєстраційних записів %(principal_type)s не " -"передбачено" - -#, python-format -msgid "Request failed with status %(status)s: %(reason)s" -msgstr "Помилка під час виконання запиту, стан %(status)s: %(reason)s" - -#, python-format -msgid "" -"Mapping ruleset \"%(ruleset)s\" has more than one rule for the %(helper)s " -"helper" -msgstr "" -"Набір правил прив’язки «%(ruleset)s» містить декілька правил для допоміжного " -"засобу %(helper)s" - -#, python-format -msgid "no command nor help topic '%(topic)s'" -msgstr "не виявлено ні команди, ні запису довідки «%(topic)s»" - -msgid "change collided with another change" -msgstr "зміна конфліктує з іншою внесеною зміною" - -msgid "no modifications to be performed" -msgstr "змін не внесено" - -#, python-format -msgid "%(desc)s: %(info)s" -msgstr "%(desc)s: %(info)s" - -msgid "limits exceeded for this query" -msgstr "цим запитом перевищено обмеження" - -#, python-format -msgid "%(info)s" -msgstr "%(info)s" - -msgid "modifying primary key is not allowed" -msgstr "зміну основного ключа заборонено" - -#, python-format -msgid "%(attr)s: Only one value allowed." -msgstr "%(attr)s: можна використовувати лише одне значення." - -#, python-format -msgid "%(attr)s: Invalid syntax." -msgstr "%(attr)s: некоректний синтаксис." - -#, python-format -msgid "Bad search filter %(info)s" -msgstr "Помилковий фільтр пошуку %(info)s" - -msgid "Not allowed on non-leaf entry" -msgstr "Заборонено для записів, які не є записами листків (leaf)" - -msgid "LDAP timeout" -msgstr "Час очікування LDAP" - -#, python-format -msgid "%(task)s LDAP task timeout, Task DN: '%(task_dn)s'" -msgstr "" -"Перевищення часу очікування на завершення завдання LDAP %(task)s, DN " -"завдання: «%(task_dn)s»" - -msgid "Configured time limit exceeded" -msgstr "Перевищено налаштоване обмеження за часом" - -msgid "Configured size limit exceeded" -msgstr "Перевищено налаштоване обмеження за розміром" - -msgid "Configured administrative server limit exceeded" -msgstr "Перевищено налаштоване обмеження адміністративного сервера" - -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" -msgstr "Не вдалося завершити дію з сертифікатом: %(error)s" - -#, python-format -msgid "Certificate format error: %(error)s" -msgstr "Помилка форматування сертифіката: %(error)s" - -msgid "Already registered" -msgstr "Вже зареєстровано" - -msgid "Not registered yet" -msgstr "Ще не зареєстровано" - -#, python-format -msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it" -msgstr "" -"%(key)s неможливо вилучити, оскільки він потрібен для %(dependent)s %(label)s" - -#, python-format -msgid "" -"%(key)s cannot be deleted or disabled because it is the last member of " -"%(label)s %(container)s" -msgstr "" -"%(key)s не може бути вилучено або вимкнено, оскільки він є останнім у " -"%(container)s %(label)s" - -#, python-format -msgid "%(label)s %(key)s cannot be deleted/modified: %(reason)s" -msgstr "%(key)s %(label)s не можна вилучати або змінювати: %(reason)s" - -#, python-format -msgid "%(name)s certificate is not valid" -msgstr "Сертифікат %(name)s не є чинним" - -#, python-format -msgid "Schema is up to date (FP '%(fingerprint)s', TTL %(ttl)s s)" -msgstr "" -"Схема не потребує оновлення (Відбиток «%(fingerprint)s», TTL %(ttl)s с)" - -#, python-format -msgid "Host '%(hostname)s' does not have corresponding DNS A/AAAA record" -msgstr "На вузлі «%(hostname)s» немає відповідного запису DNS A/AAAA" - -#, python-format -msgid "DNS check failed: Expected {%(expected)s} got {%(got)s}" -msgstr "" -"Перевірка DNS зазнала невдачі: мало бути {%(expected)s}, отримано {%(got)s}" - -#, python-format -msgid "%(exception)s" -msgstr "%(exception)s" - -#, python-format -msgid "" -"Forest '%(forest)s' has existing trust to forest(s) %(domains)s which " -"prevents a trust to '%(conflict)s'" -msgstr "" -"У лісу «%(forest)s» наявні відносини довіри з лісами %(domains)s, що не дає " -"змоги встановити довіру до «%(conflict)s»" - -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "Введіть %(label)s ще раз для перевірки: " +msgid "Verify Principal Password" +msgstr "Перевірка пароля реєстраційного запису" #, c-format msgid "Passwords do not match!" msgstr "Паролі не збігаються!" -msgid "No matching entries found" -msgstr "Відповідних записів не знайдено" - -msgid "Topic or Command" -msgstr "Тема або команда" - -msgid "The topic or command name." -msgstr "Назва теми або команди." - -msgid "Topic commands:" -msgstr "Команди теми:" - -msgid "To get command help, use:" -msgstr "Щоб отримати довідку щодо команди, скористайтеся такою командою:" - -msgid " ipa --help" -msgstr " ipa <команда> --help" - -msgid "Command name" -msgstr "Назва команди" - -msgid "Positional arguments" -msgstr "Обов’язкові аргументи" - -#, python-format -msgid "Same as --%s" -msgstr "Те саме, що і --%s" - -msgid "Deprecated options" -msgstr "Застарілі параметри" - -msgid "No file to read" -msgstr "Немає файла для читання" - -msgid "any of the configured servers" -msgstr "будь-який з налаштованих серверів" - -msgid "Additional instructions:" -msgstr "Додаткові настанови:" - -#, python-format -msgid "" -"API Version number was not sent, forward compatibility not guaranteed. " -"Assuming server's API version, %(server_version)s" -msgstr "" -"Не було надіслано номера версії програмного інтерфейсу (API), сумісність з " -"найновішими версіями не можна гарантувати. Припускаємо таку версію API " -"сервера: %(server_version)s" - -msgid "" -"DNS forwarder semantics changed since IPA 4.0.\n" -"You may want to use forward zones (dnsforwardzone-*) instead.\n" -"For more details read the docs." -msgstr "" -"З виходом версії IPA 4.0 змінилася семантика засобу переспрямовування DNS.\n" -"Вам варто перейти на використання зон переспрямовування (dnsforwardzone-*).\n" -"Докладніше про це у документації." - -#, python-format -msgid "" -"DNSSEC support is experimental.\n" -"%(additional_info)s" -msgstr "" -"Підтримка DNSSEC є експериментальною.\n" -"%(additional_info)s" - -#, python-format -msgid "'%(option)s' option is deprecated. %(additional_info)s" -msgstr "Параметр «%(option)s» є застарілим. %(additional_info)s" - -#, python-format -msgid "" -"Semantic of %(label)s was changed. %(current_behavior)s\n" -"%(hint)s" -msgstr "" -"Семантику %(label)s було змінено. %(current_behavior)s\n" -"%(hint)s" - -#, python-format -msgid "DNS server %(server)s: %(error)s." -msgstr "Сервер DNS %(server)s: %(error)s." - -#, python-format -msgid "" -"DNS server %(server)s does not support DNSSEC: %(error)s.\n" -"If DNSSEC validation is enabled on IPA server(s), please disable it." -msgstr "" -"На сервері DNS %(server)s не передбачено підтримки DNSSEC: %(error)s.\n" -"Якщо на серверах IPA увімкнено перевірку DNSSEC, будь ласка, вимкніть її." - -#, python-format -msgid "" -"forward zone \"%(fwzone)s\" is not effective because of missing proper NS " -"delegation in authoritative zone \"%(authzone)s\". Please add NS record " -"\"%(ns_rec)s\" to parent zone \"%(authzone)s\"." -msgstr "" -"зона переспрямовування «%(fwzone)s» не є ефективною, оскільки не вказано " -"належного делегування NS у основній зоні «%(authzone)s». Будь ласка, додайте " -"запис NS «%(ns_rec)s» до батьківської зони «%(authzone)s»." - -#, python-format -msgid "" -"DNS server %(server)s does not support EDNS0 (RFC 6891): %(error)s.\n" -"If DNSSEC validation is enabled on IPA server(s), please disable it." -msgstr "" -"На сервері DNS %(server)s не передбачено підтримки EDNS0 (RFC 6891): " -"%(error)s.\n" -"Якщо на серверах IPA увімкнено перевірку DNSSEC, будь ласка, вимкніть її." - -#, python-format -msgid "" -"DNSSEC validation failed: %(error)s.\n" -"Please verify your DNSSEC configuration or disable DNSSEC validation on all " -"IPA servers." -msgstr "" -"Не пройдено перевірку DNSSEC: %(error)s.\n" -"Будь ласка, перевірте, чи правильно вказано налаштування DNSSEC, або " -"вимкніть перевірку DNSSEC на усіх серверах IPA." - -#, python-format -msgid "" -"The _kerberos TXT record from domain %(domain)s could not be created " -"(%(error)s).\n" -"This can happen if the zone is not managed by IPA. Please create the record " -"manually, containing the following value: '%(realm)s'" -msgstr "" -"Не вдалося створити запис TXT _kerberos з домену %(domain)s (%(error)s).\n" -"Причиною може бути те, що зона не є керованою IPA. Будь ласка, створіть " -"запис вручну так, щоб він містив таке значення: «%(realm)s»" - -#, python-format -msgid "" -"The _kerberos TXT record from domain %(domain)s could not be removed " -"(%(error)s).\n" -"This can happen if the zone is not managed by IPA. Please remove the record " -"manually." -msgstr "" -"Не вдалося вилучити запис TXT _kerberos з домену %(domain)s (%(error)s).\n" -"Причиною може бути те, що зона не є керованою IPA. Будь ласка, вилучіть " -"запис вручну." - -msgid "" -"No DNSSEC key master is installed. DNSSEC zone signing will not work until " -"the DNSSEC key master is installed." -msgstr "" -"Не встановлено основного ключа DNSSEC. Підписування у зоні DNSSEC не " -"працюватиме, доки не буде встановлено основний ключ DNSSEC." - -#, python-format -msgid "" -"Relative record name '%(record)s' contains the zone name '%(zone)s' as a " -"suffix, which results in FQDN '%(fqdn)s'. This is usually a mistake caused " -"by a missing dot at the end of the name specification." -msgstr "" -"Назва відносного запису «%(record)s» містить як суфікс назву зони " -"«%(zone)s», що дає повну назву домену «%(fqdn)s». Зазвичай, такі назви є " -"помилковими, спричиненими пропущеною крапкою наприкінці специфікації назви." - -#, python-format -msgid "'%(command)s' is deprecated. %(additional_info)s" -msgstr "«%(command)s» вважається застарілою. %(additional_info)s" - -#, python-format -msgid "%(line)s" -msgstr "%(line)s" - -#, python-format -msgid "Search result has been truncated: %(reason)s" -msgstr "Результат пошуку обрізано: %(reason)s" - -#, python-format -msgid "" -"Your trust to %(domain)s is broken. Please re-create it by running 'ipa " -"trust-add' again." -msgstr "" -"Довіру до %(domain)s втрачено. Будь ласка, відновіть її за допомогою команди " -"«ipa trust-add»." - -#, python-format -msgid "DNS record(s) of host %(host)s could not be removed. (%(reason)s)" -msgstr "Записи DNS вузла %(host)s не вдалося вилучити. (%(reason)s)" - -msgid "" -"Forwarding policy conflicts with some automatic empty zones. Queries for " -"zones specified by RFC 6303 will ignore forwarding and recursion and always " -"result in NXDOMAIN answers. To override this behavior use forward policy " -"'only'." -msgstr "" -"Правила переспрямовування конфліктують із деякими автоматично порожніми " -"зонами. Запити для зон, вказаних на основі RFC 6303, ігноруватимуть " -"переспрямовування і завжди призводитимуть до відповідей NXDOMAIN. Щоб " -"перевизначити цю поведінку, скористайтеся правилами переспрямовування «only»." - -#, python-format -msgid "Update of system record '%(record)s' failed with error: %(error)s" -msgstr "" -"Спроба оновлення запису системи «%(record)s» зазнала невдачі. Повідомлення " -"про помилку: %(error)s" - -#, python-format -msgid "" -"IPA does not manage the zone %(zone)s, please add records to your DNS server " -"manually" -msgstr "" -"IPA не керує зоною %(zone)s. Будь ласка, додайте запис на вашому сервері DNS " -"вручну" - -msgid "" -"Automatic update of DNS system records failed. Please re-run update of " -"system records manually to get list of missing records." -msgstr "" -"Спроба автоматичного оновлення записів системи DNS зазнала невдачі. Будь " -"ласка, повторно запустіть оновлення записів системи вручну, щоб отримати " -"список пропущених записів." - -#, python-format -msgid "" -"Service %(service)s requires restart on IPA server %(server)s to apply " -"configuration changes." -msgstr "" -"Для застосування змін у налаштуваннях службу %(service)s на сервері IPA " -"%(server)s слід перезапустити." - -#, python-format -msgid "" -"No DNS servers in IPA location %(location)s. Without DNS servers location is " -"not working as expected." -msgstr "" -"Немає серверів DNS на місці IPA %(location)s. Без серверів DNS місце не " -"працюватиме як слід." - -#, python-format -msgid "%(subject)s: Invalid certificate. %(reason)s" -msgstr "%(subject)s: некоректний сертифікат. %(reason)s" - -msgid "Results are truncated, try a more specific search" -msgstr "" -"Список результатів обрізано. Спробуйте точніше визначити критерії пошуку." - -#, python-format -msgid "Unknown option: %(option)s" -msgstr "Невідомий параметр: %(option)s" - -msgid "" -"Retrieve and print all attributes from the server. Affects command output." -msgstr "" -"Отримати і вивести всі атрибути з сервера. Стосується лише виводу команд." - -msgid "Print entries as stored on the server. Only affects output format." -msgstr "" -"Вивести записи у формі, у якій вони зберігаються на сервері. Стосується лише " -"формату виведення даних." - -msgid "Client version. Used to determine if server will accept request." -msgstr "" -"Версія клієнта. Використовується для визначення, якщо сервер приймає запит." - -msgid "Forward to server instead of running locally" -msgstr "Переспрямувати на сервер замість локального виконання" - -msgid "incorrect type" -msgstr "помилковий тип" - -msgid "Only one value is allowed" -msgstr "Можна використовувати лише одне значення" - -msgid "this option is deprecated" -msgstr "цей параметр вважається застарілим" - -msgid "must be True or False" -msgstr "має дорівнювати True або False" - -msgid "must be an integer" -msgstr "має бути цілим числом" - -#, python-format -msgid "must be at least %(minvalue)d" -msgstr "має бути числом, не меншим за %(minvalue)d" - -#, python-format -msgid "can be at most %(maxvalue)d" -msgstr "не може перевищувати %(maxvalue)d" - -msgid "must be a decimal number" -msgstr "має бути десятковим числом" - -#, python-format -msgid "must be at least %(minvalue)s" -msgstr "має бути принаймні %(minvalue)s" - -#, python-format -msgid "can be at most %(maxvalue)s" -msgstr "не може перевищувати %(maxvalue)s" - -#, python-format -msgid "" -"number class '%(cls)s' is not included in a list of allowed number classes: " -"%(allowed)s" -msgstr "" -"числовий клас «%(cls)s» не включено до списку дозволених числових класів: " -"%(allowed)s" - -#, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "має відповідати шаблону «%(pattern)s»" - -msgid "must be binary data" -msgstr "має бути бінарними даними" - -#, python-format -msgid "must be at least %(minlength)d bytes" -msgstr "має бути розміром, не менше за %(minlength)d байтів" - -#, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "не повинне перевищувати за розміром %(maxlength)d байтів" - -#, python-format -msgid "must be exactly %(length)d bytes" -msgstr "має бути розміром точно у %(length)d байтів" - -msgid "must be Unicode text" -msgstr "має бути текстом у Unicode" - -msgid "Leading and trailing spaces are not allowed" -msgstr "Використання пробілів на початку і у кінці заборонено" - -#, python-format -msgid "must be at least %(minlength)d characters" -msgstr "має бути не меншим за %(minlength)d символів довжиною" - -#, python-format -msgid "can be at most %(maxlength)d characters" -msgstr "не повинне перевищувати %(maxlength)d символів у довжину" - -#, python-format -msgid "must be exactly %(length)d characters" -msgstr "має бути точно %(length)d символів у довжину" - -#, python-format -msgid "The character %(char)r is not allowed." -msgstr "Не можна використовувати символ %(char)r." - -#, python-format -msgid "must be '%(value)s'" -msgstr "має бути «%(value)s»" - -#, python-format -msgid "must be one of %(values)s" -msgstr "має бути одним з таких значень: %(values)s" - -msgid "must be datetime value" -msgstr "має бути значенням дати і часу" - -msgid "does not match any of accepted formats: " -msgstr "не відповідає жодному з прийнятних форматів: " - -msgid "incomplete time value" -msgstr "неповне часове значення" - -msgid "must be DNS name" -msgstr "має бути назвою DNS" - -msgid "must be absolute" -msgstr "має бути абсолютною" - -msgid "must be relative" -msgstr "має бути відносною" - -msgid "must be dictionary" -msgstr "має бути словником" - -msgid "must be Kerberos principal" -msgstr "має бути реєстраційним записом Kerberos" - -#, python-format -msgid "Malformed principal: '%(value)s'" -msgstr "Помилкове форматування реєстраційного запису: «%(value)s»" - -msgid "Service principal is required" -msgstr "Слід вказати реєстраційний запис служби" - -msgid "A string searched in all relevant object attributes" -msgstr "" -"Рядок, пошук якого відбуватиметься у всіх відповідних атрибутах об’єктів" - -msgid "A dictionary representing an LDAP entry" -msgstr "Словник, що відповідає запису LDAP" - -msgid "A list of LDAP entries" -msgstr "Список записів LDAP" - -msgid "All commands should at least have a result" -msgstr "Виконання всіх команд має призводити до якогось результату" - -msgid "User-friendly description of action performed" -msgstr "Зручний для користувача опис дії, що виконується" - -msgid "The primary_key value of the entry, e.g. 'jdoe' for a user" -msgstr "" -"Значення primary_key (основного ключа) запису, наприклад, «iivanenko» для " -"користувача" - -msgid "Number of entries returned" -msgstr "Кількість повернутих записів" - -msgid "True if not all results were returned" -msgstr "True, якщо повернуто було всі результати" - -msgid "List of deletions that failed" -msgstr "Список вилучень, які не вдалося виконати" - -msgid "True means the operation was successful" -msgstr "True означає, що дію було виконано успішно" - -msgid "Filename is empty" -msgstr "Порожня назва файла" - -#, python-format -msgid "Permission denied: %(file)s" -msgstr "Доступ заборонено: %(file)s" - -msgid "empty DNS label" -msgstr "порожня мітка DNS" - -msgid "DNS label cannot be longer that 63 characters" -msgstr "Довжина мітки DNS не повинна перевищувати 63 символи" - -#, python-format -msgid "" -"only letters, numbers, %(chars)s are allowed. DNS label may not start or end " -"with %(chars2)s" -msgstr "" -"можна використовувати лише літери, цифри, %(chars)s. Символ %(chars2)s не " -"повинен бути першим або останнім символом мітки DNS." - -msgid "too many '@' characters" -msgstr "занадто багато символів «@»" - -msgid "cannot be longer that 255 characters" -msgstr "не може бути довшим за 255 символів" - -msgid "hostname contains empty label (consecutive dots)" -msgstr "назва вузла містить лише порожню мітку (послідовні крапки)" - -msgid "not fully qualified" -msgstr "вказано не повністю" - -msgid "invalid SSH public key" -msgstr "некоректний відкритий ключ SSH" - -msgid "options are not allowed" -msgstr "не можна використовувати параметри" - -msgid "invalid hostmask" -msgstr "некоректна маска вузлів" - -#, python-format -msgid "query '%(owner)s %(rtype)s': %(error)s" -msgstr "запит «%(owner)s %(rtype)s»: %(error)s" - -#, python-format -msgid "query '%(owner)s %(rtype)s' with EDNS0: %(error)s" -msgstr "запит «%(owner)s %(rtype)s» за допомогою EDNS0: %(error)s" - -#, python-format -msgid "" -"answer to query '%(owner)s %(rtype)s' is missing DNSSEC signatures (no RRSIG " -"data)" -msgstr "" -"відповідь на запит «%(owner)s %(rtype)s» не містить підписів DNSSEC (немає " -"даних RRSIG)" - -#, python-format -msgid "record '%(owner)s %(rtype)s' failed DNSSEC validation on server %(ip)s" -msgstr "" -"запис «%(owner)s %(rtype)s» не пройшов перевірки DNSSEC на сервері %(ip)s" - -msgid "invalid escape code in domain name" -msgstr "некоректний керівний код у назві домену" - -msgid "domain name cannot be longer than 255 characters" -msgstr "назва домену не повинна перевищувати за довжиною 255 символів" - -msgid "DNS label cannot be longer than 63 characters" -msgstr "Довжина мітки DNS не повинна перевищувати 63 символів" - -msgid "invalid domain name" -msgstr "некоректна назва домену" - -#, python-format -msgid "domain name '%(domain)s' should be normalized to: %(normalized)s" -msgstr "назву домену «%(domain)s» слід нормалізувати до %(normalized)s" - -#, python-format -msgid "invalid domain-name: %s" -msgstr "некоректна назва домену: %s" - -#, python-format -msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!" -msgstr "" -"некоректна версія IP-адреси (маємо: %(value)d, має бути: %(required_value)d)!" - -msgid "invalid IP address format" -msgstr "некоректний формат запису IP-адреси" - -#, python-format -msgid "%(port)s is not a valid port" -msgstr "%(port)s не є чинним портом" - -msgid "" -"at least one value equal to the canonical principal name must be present" -msgstr "" -"має бути надано принаймні одне значення, що є рівним канонічній назві " -"реєстраційного запису" - -msgid "realm or UPN suffix overlaps with trusted domain namespace" -msgstr "" -"область або суфікс UPN перекриваються із простором назв довіреного домену" +#, c-format +msgid "Failed to open config file %s\n" +msgstr "Не вдалося відкрити файл налаштувань %s\n" #, c-format -msgid "cannot open configuration file %s\n" -msgstr "не вдалося відкрити файл налаштувань %s\n" +msgid "Failed to parse config file %s\n" +msgstr "Не вдалося обробити файл налаштувань %s\n" -#, c-format -msgid "cannot stat() configuration file %s\n" -msgstr "не вдалося обробити функцією stat() файл налаштування %s\n" +msgid "Print as little as possible" +msgstr "Виводити мінімум даних" -#, c-format -msgid "out of memory\n" -msgstr "не вистачає пам'яті\n" +msgid "Output only on errors" +msgstr "Виводити лише повідомлення про помилки" -#, c-format -msgid "read error\n" -msgstr "помилка читання\n" +msgid "Contact this specific KDC Server" +msgstr "Встановити зв’язок з вказаним сервером KDC" -#, c-format -msgid "Unable to parse principal name\n" -msgstr "Не вдалося обробити назву реєстраційного запису\n" +msgid "Server Name" +msgstr "Назва сервера" -#, c-format -msgid "krb5_parse_name %1$d: %2$s\n" -msgstr "krb5_parse_name %1$d: %2$s\n" - -#, c-format -msgid "Removing principal %s\n" -msgstr "Вилучення реєстраційного запису %s\n" - -#, c-format -msgid "Failed to open keytab\n" -msgstr "Не вдалося відкрити таблицю ключів\n" - -#, c-format -msgid "principal not found\n" -msgstr "реєстраційного запису не знайдено\n" - -#, c-format -msgid "krb5_kt_get_entry %1$d: %2$s\n" -msgstr "krb5_kt_get_entry %1$d: %2$s\n" - -#, c-format -msgid "Unable to remove entry\n" -msgstr "Не вдалося вилучити запис\n" - -#, c-format -msgid "kvno %d\n" -msgstr "kvno %d\n" - -#, c-format -msgid "krb5_kt_remove_entry %1$d: %2$s\n" -msgstr "krb5_kt_remove_entry %1$d: %2$s\n" - -#, c-format -msgid "Unable to parse principal\n" -msgstr "Не вдалося обробити реєстраційний запис\n" - -#, c-format -msgid "krb5_unparse_name %1$d: %2$s\n" -msgstr "krb5_unparse_name %1$d: %2$s\n" - -#, c-format -msgid "realm not found\n" -msgstr "область не знайдено\n" - -msgid "Print debugging information" -msgstr "Вивести діагностичні дані" - -msgid "Debugging output" -msgstr "Діагностична інформація" - -msgid "" -"The principal to remove from the keytab (ex: ftp/ftp.example.com@EXAMPLE.COM)" +msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -"Реєстраційні записи, які слід вилучити із таблиці ключів (приклад: ftp/ftp." -"example.com@EXAMPLE.COM)" +"Реєстраційний запис, для якого слід отримати таблицю ключів (приклад: ftp/" +"ftp.example.com@EXAMPLE.COM)" msgid "Kerberos Service Principal Name" msgstr "Назва реєстраційного запису служби Kerberos" -msgid "The keytab file to remove the principcal(s) from" -msgstr "Файл таблиці ключів, звідки слід вилучити реєстраційні записи" +msgid "File were to store the keytab information" +msgstr "Файл, у якому зберігатимуться дані таблиці ключів" msgid "Keytab File Name" msgstr "Назва файла таблиці ключів" -msgid "Remove all principals in this realm" -msgstr "Вилучити всі реєстраційні записи у цій області" +msgid "Encryption types to request" +msgstr "Типи шифрування, запит щодо яких слід надсилати" -msgid "Realm name" -msgstr "Назва області" +msgid "Comma separated encryption types list" +msgstr "Список типів шифрування, відокремлених комами" + +msgid "Show the list of permitted encryption types and exit" +msgstr "Показати список дозволених типів шифрування і завершити роботу" + +msgid "Permitted Encryption Types" +msgstr "Дозволені типи шифрування" + +msgid "Asks for a non-random password to use for the principal" +msgstr "" +"Запитати невипадковий пароль, який слід використати для реєстраційного запису" + +msgid "LDAP DN" +msgstr "DN LDAP" + +msgid "DN to bind as if not using kerberos" +msgstr "" +"DN, до якого слід виконати прив’язку, якщо не використовується kerberos" + +msgid "LDAP password" +msgstr "Пароль LDAP" + +msgid "password to use if not using kerberos" +msgstr "пароль, який слід використати, якщо не використовується kerberos" + +msgid "Path to the IPA CA certificate" +msgstr "Шлях до сертифіката CA IPA" + +msgid "IPA CA certificate" +msgstr "Сертифікат CA IPA" + +msgid "LDAP uri to connect to. Mutually exclusive with --server" +msgstr "Адреса LDAP, з якою слід встановити з’єднання. Несумісний з --server" + +msgid "url" +msgstr "адреса" + +msgid "LDAP SASL bind mechanism if no bindd/bindpw" +msgstr "Механізм прив’язування SASL LDAP, якщо без bindd/bindpw" + +msgid "GSSAPI|EXTERNAL" +msgstr "GSSAPI|EXTERNAL" + +msgid "Retrieve current keys without changing them" +msgstr "Отримувати поточні ключі без внесення до них змін" #, c-format msgid "Kerberos context initialization failed\n" msgstr "Невдала спроба ініціалізації контексту Kerberos\n" #, c-format -msgid "Failed to open keytab '%1$s': %2$s\n" -msgstr "Не вдалося відкрити таблицю ключів «%1$s»: %2$s\n" +msgid "No system preferred enctypes ?!\n" +msgstr "Немає основних системних типів шифрування?!\n" #, c-format -msgid "Closing keytab failed\n" -msgstr "Спроба закриття таблиці ключів зазнала невдачі\n" +msgid "Supported encryption types:\n" +msgstr "Підтримувані типи шифрування:\n" #, c-format -msgid "krb5_kt_close %1$d: %2$s\n" -msgstr "krb5_kt_close %1$d: %2$s\n" +msgid "Warning: failed to convert type (#%d)\n" +msgstr "Попередження: не вдалося виконати перетворення типу (№%d)\n" + +#, c-format +msgid "Bind password required when using a bind DN.\n" +msgstr "У разі використання прив’язки DN слід вказати пароль прив’язки.\n" + +#, c-format +msgid "Cannot specify both SASL mechanism and bind DN simultaneously.\n" +msgstr "Не можна одночасно вказувати механізм SASL і DN прив’язки.\n" + +#, c-format +msgid "Invalid SASL bind mechanism\n" +msgstr "Некоректний механізм прив’язування SASL\n" + +#, c-format +msgid "Cannot specify server and LDAP uri simultaneously.\n" +msgstr "Не можна одночасно вказувати сервер і адресу LDAP.\n" + +#, c-format +msgid "Server name not provided and unavailable\n" +msgstr "Не надано назви сервера, сервер недоступний\n" + +#, c-format +msgid "Incompatible options provided (-r and -P)\n" +msgstr "Вказано несумісні параметри (-r і -P)\n" + +#, c-format +msgid "" +"Warning: salt types are not honored with randomized passwords (see opt. -P)\n" +msgstr "" +"Попередження: для випадкових паролів типи солі (salt) не мають значення " +"(див. параметр -P)\n" + +#, c-format +msgid "Invalid Service Principal Name\n" +msgstr "Некоректна назва реєстраційного запису служби\n" + +#, c-format +msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" +msgstr "" +"Не знайдено кешу реєстраційних даних Kerberos. Чи є у вас квиток Kerberos?\n" + +#, c-format +msgid "" +"Kerberos User Principal not found. Do you have a valid Credential Cache?\n" +msgstr "" +"Не знайдено реєстраційного запису користувача Kerberos. Ви маєте ви " +"коректний кеш реєстраційних даних?\n" + +#, c-format +msgid "Failed to open Keytab\n" +msgstr "Не вдалося відкрити таблицю ключів\n" + +#, c-format +msgid "Retrying with pre-4.0 keytab retrieval method...\n" +msgstr "" +"Повторюємо спробу з використанням способу отримання сховища ключів, який " +"використовувався до версії 4.0…\n" + +#, c-format +msgid "Failed to create key material\n" +msgstr "Не вдалося створити вихідні дані для ключа\n" + +#, c-format +msgid "Failed to get keytab\n" +msgstr "Не вдалося отримати таблицю ключів\n" + +#, c-format +msgid "Failed to add key to the keytab\n" +msgstr "Не вдалося додати ключ до таблиці ключів\n" + +#, c-format +msgid "Failed to close the keytab\n" +msgstr "Не вдалося закрити таблицю ключів\n" + +#, c-format +msgid "Keytab successfully retrieved and stored in: %s\n" +msgstr "Таблицю ключів успішно отримати і збережено до: %s\n" #, c-format msgid "No permission to join this host to the IPA domain.\n" @@ -1109,10 +348,6 @@ msgstr "Не вдалося ініціалізувати з’єднання з msgid "Unable to enable SSL in LDAP\n" msgstr "Не вдалося увімкнути SSL у LDAP\n" -#, c-format -msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" -msgstr "Не вдалося встановити LDAP_OPT_X_SASL_NOCANON\n" - #, c-format msgid "Unable to set LDAP version\n" msgstr "Не вдалося встановити версію LDAP\n" @@ -1305,324 +540,477 @@ msgid "basedn" msgstr "Базовий DN" #, c-format -msgid "Kerberos context initialization failed: %1$s (%2$d)\n" -msgstr "Невдала спроба ініціалізації контексту Kerberos: %1$s (%2$d)\n" +msgid "Unable to parse principal name\n" +msgstr "Не вдалося обробити назву реєстраційного запису\n" #, c-format -msgid "Unable to parse principal: %1$s (%2$d)\n" -msgstr "Не вдалося обробити реєстраційний запис: %1$s (%2$d)\n" +msgid "krb5_parse_name %1$d: %2$s\n" +msgstr "krb5_parse_name %1$d: %2$s\n" #, c-format -msgid "No keys accepted by KDC\n" -msgstr "Жоден з ключів не прийнято KDC\n" +msgid "Removing principal %s\n" +msgstr "Вилучення реєстраційного запису %s\n" #, c-format -msgid "Out of memory \n" -msgstr "Не вистачає пам'яті \n" - -#, c-format -msgid "Unable to set LDAP_OPT_X_TLS_REQUIRE_CERT\n" -msgstr "Не вдалося встановити LDAP_OPT_X_TLS_REQUIRE_CERT\n" - -#, c-format -msgid "Unable to initialize STARTTLS session\n" -msgstr "Не вдалося ініціалізувати сеанс STARTTLS\n" - -#, c-format -msgid "Unable to set LDAP_OPT_X_TLS\n" -msgstr "Не вдалося встановити LDAP_OPT_X_TLS\n" - -#, c-format -msgid "Unable to set LDAP_OPT_X_TLS_CERTIFICATE\n" -msgstr "Не вдалося встановити LDAP_OPT_X_TLS_CERTIFICATE\n" - -#, c-format -msgid "Unable to init connection to %s\n" -msgstr "Не вдалося ініціалізувати з’єднання з %s\n" - -#, c-format -msgid "Unable to initialize ldap library!\n" -msgstr "Не вдалося ініціалізувати бібліотеку ldap!\n" - -#, c-format -msgid "Unable to set LDAP_OPT_PROTOCOL_VERSION\n" -msgstr "Не вдалося встановити LDAP_OPT_PROTOCOL_VERSION\n" - -#, c-format -msgid "Simple bind failed\n" -msgstr "Невдала спроба простого прив’язування\n" - -#, c-format -msgid "Operation failed: %s\n" -msgstr "Невдала спроба виконання дії: %s\n" - -#, c-format -msgid "Failed to get result: %s\n" -msgstr "Не вдалося отримати результат: %s\n" - -#, c-format -msgid "Timeout exceeded." -msgstr "Перевищено обмеження за часом." - -#, c-format -msgid "Failed to parse extended result: %s\n" -msgstr "Не вдалося обробити розширений результат: %s\n" - -#, c-format -msgid "Failed to parse result: %s\n" -msgstr "Не вдалося обробити результат: %s\n" - -#, c-format -msgid "Missing reply control list!\n" -msgstr "Немає списку керування відповідями!\n" - -#, c-format -msgid "Missing reply control!\n" -msgstr "Немає керування відповіддю!\n" - -#, c-format -msgid "Out of Memory!\n" -msgstr "Не вистачає пам'яті!\n" - -#, c-format -msgid "Failed to create control!\n" -msgstr "Не вдалося створити керування!\n" - -#, c-format -msgid "Failed to bind to server!\n" -msgstr "Не вдалося прив’язати до сервера!\n" - -#, c-format -msgid "Failed to get keytab!\n" -msgstr "Не вдалося отримати таблицю ключів!\n" - -#, c-format -msgid "ber_init() failed, Invalid control ?!\n" -msgstr "Спроба виконання ber_init() зазнала невдачі. Некоректне керування?!\n" - -#, c-format -msgid "ber_scanf() failed, unable to find kvno ?!\n" -msgstr "помилка ber_scanf(), не вдалося знайти kvno?!\n" - -#, c-format -msgid "Failed to retrieve encryption type type #%d\n" -msgstr "Не вдалося отримати дані щодо типу шифрування №%d\n" - -#, c-format -msgid "Failed to retrieve encryption type %1$s (#%2$d)\n" -msgstr "Не вдалося отримати дані щодо типу шифрування %1$s (№%2$d)\n" - -#, c-format -msgid "Failed to retrieve any keys" -msgstr "Не вдалося отримати жодного ключа" - -msgid "Failed to decode control reply!\n" -msgstr "Не вдалося декодувати контрольну відповідь!\n" - -msgid "New Principal Password" -msgstr "Новий пароль реєстраційного запису" - -msgid "Verify Principal Password" -msgstr "Перевірка пароля реєстраційного запису" - -#, c-format -msgid "Failed to open config file %s\n" -msgstr "Не вдалося відкрити файл налаштувань %s\n" - -#, c-format -msgid "Failed to parse config file %s\n" -msgstr "Не вдалося обробити файл налаштувань %s\n" - -msgid "Print as little as possible" -msgstr "Виводити мінімум даних" - -msgid "Output only on errors" -msgstr "Виводити лише повідомлення про помилки" - -msgid "Contact this specific KDC Server" -msgstr "Встановити зв’язок з вказаним сервером KDC" - -msgid "Server Name" -msgstr "Назва сервера" - -msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" -msgstr "" -"Реєстраційний запис, для якого слід отримати таблицю ключів (приклад: ftp/" -"ftp.example.com@EXAMPLE.COM)" - -msgid "File were to store the keytab information" -msgstr "Файл, у якому зберігатимуться дані таблиці ключів" - -msgid "Encryption types to request" -msgstr "Типи шифрування, запит щодо яких слід надсилати" - -msgid "Comma separated encryption types list" -msgstr "Список типів шифрування, відокремлених комами" - -msgid "Show the list of permitted encryption types and exit" -msgstr "Показати список дозволених типів шифрування і завершити роботу" - -msgid "Permitted Encryption Types" -msgstr "Дозволені типи шифрування" - -msgid "Asks for a non-random password to use for the principal" -msgstr "" -"Запитати невипадковий пароль, який слід використати для реєстраційного запису" - -msgid "LDAP DN" -msgstr "DN LDAP" - -msgid "DN to bind as if not using kerberos" -msgstr "" -"DN, до якого слід виконати прив’язку, якщо не використовується kerberos" - -msgid "LDAP password" -msgstr "Пароль LDAP" - -msgid "password to use if not using kerberos" -msgstr "пароль, який слід використати, якщо не використовується kerberos" - -msgid "Path to the IPA CA certificate" -msgstr "Шлях до сертифіката CA IPA" - -msgid "IPA CA certificate" -msgstr "Сертифікат CA IPA" - -msgid "LDAP uri to connect to. Mutually exclusive with --server" -msgstr "Адреса LDAP, з якою слід встановити з’єднання. Несумісний з --server" - -msgid "url" -msgstr "адреса" - -msgid "LDAP SASL bind mechanism if no bindd/bindpw" -msgstr "Механізм прив’язування SASL LDAP, якщо без bindd/bindpw" - -msgid "GSSAPI|EXTERNAL" -msgstr "GSSAPI|EXTERNAL" - -msgid "Retrieve current keys without changing them" -msgstr "Отримувати поточні ключі без внесення до них змін" - -#, c-format -msgid "No system preferred enctypes ?!\n" -msgstr "Немає основних системних типів шифрування?!\n" - -#, c-format -msgid "Supported encryption types:\n" -msgstr "Підтримувані типи шифрування:\n" - -#, c-format -msgid "Warning: failed to convert type (#%d)\n" -msgstr "Попередження: не вдалося виконати перетворення типу (№%d)\n" - -#, c-format -msgid "Bind password required when using a bind DN.\n" -msgstr "У разі використання прив’язки DN слід вказати пароль прив’язки.\n" - -#, c-format -msgid "Cannot specify both SASL mechanism and bind DN simultaneously.\n" -msgstr "Не можна одночасно вказувати механізм SASL і DN прив’язки.\n" - -#, c-format -msgid "Invalid SASL bind mechanism\n" -msgstr "Некоректний механізм прив’язування SASL\n" - -#, c-format -msgid "Cannot specify server and LDAP uri simultaneously.\n" -msgstr "Не можна одночасно вказувати сервер і адресу LDAP.\n" - -#, c-format -msgid "Server name not provided and unavailable\n" -msgstr "Не надано назви сервера, сервер недоступний\n" - -#, c-format -msgid "Incompatible options provided (-r and -P)\n" -msgstr "Вказано несумісні параметри (-r і -P)\n" - -#, c-format -msgid "" -"Warning: salt types are not honored with randomized passwords (see opt. -P)\n" -msgstr "" -"Попередження: для випадкових паролів типи солі (salt) не мають значення " -"(див. параметр -P)\n" - -#, c-format -msgid "Invalid Service Principal Name\n" -msgstr "Некоректна назва реєстраційного запису служби\n" - -#, c-format -msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" -msgstr "" -"Не знайдено кешу реєстраційних даних Kerberos. Чи є у вас квиток Kerberos?\n" - -#, c-format -msgid "" -"Kerberos User Principal not found. Do you have a valid Credential Cache?\n" -msgstr "" -"Не знайдено реєстраційного запису користувача Kerberos. Ви маєте ви " -"коректний кеш реєстраційних даних?\n" - -#, c-format -msgid "Failed to open Keytab\n" +msgid "Failed to open keytab\n" msgstr "Не вдалося відкрити таблицю ключів\n" #, c-format -msgid "Retrying with pre-4.0 keytab retrieval method...\n" +msgid "principal not found\n" +msgstr "реєстраційного запису не знайдено\n" + +#, c-format +msgid "krb5_kt_get_entry %1$d: %2$s\n" +msgstr "krb5_kt_get_entry %1$d: %2$s\n" + +#, c-format +msgid "Unable to remove entry\n" +msgstr "Не вдалося вилучити запис\n" + +#, c-format +msgid "kvno %d\n" +msgstr "kvno %d\n" + +#, c-format +msgid "krb5_kt_remove_entry %1$d: %2$s\n" +msgstr "krb5_kt_remove_entry %1$d: %2$s\n" + +#, c-format +msgid "Unable to parse principal\n" +msgstr "Не вдалося обробити реєстраційний запис\n" + +#, c-format +msgid "krb5_unparse_name %1$d: %2$s\n" +msgstr "krb5_unparse_name %1$d: %2$s\n" + +#, c-format +msgid "realm not found\n" +msgstr "область не знайдено\n" + +msgid "Print debugging information" +msgstr "Вивести діагностичні дані" + +msgid "Debugging output" +msgstr "Діагностична інформація" + +msgid "" +"The principal to remove from the keytab (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -"Повторюємо спробу з використанням способу отримання сховища ключів, який " -"використовувався до версії 4.0…\n" +"Реєстраційні записи, які слід вилучити із таблиці ключів (приклад: ftp/ftp." +"example.com@EXAMPLE.COM)" + +msgid "The keytab file to remove the principcal(s) from" +msgstr "Файл таблиці ключів, звідки слід вилучити реєстраційні записи" + +msgid "Remove all principals in this realm" +msgstr "Вилучити всі реєстраційні записи у цій області" + +msgid "Realm name" +msgstr "Назва області" #, c-format -msgid "Failed to create key material\n" -msgstr "Не вдалося створити вихідні дані для ключа\n" +msgid "Failed to open keytab '%1$s': %2$s\n" +msgstr "Не вдалося відкрити таблицю ключів «%1$s»: %2$s\n" #, c-format -msgid "Failed to get keytab\n" -msgstr "Не вдалося отримати таблицю ключів\n" +msgid "Closing keytab failed\n" +msgstr "Спроба закриття таблиці ключів зазнала невдачі\n" #, c-format -msgid "Failed to add key to the keytab\n" -msgstr "Не вдалося додати ключ до таблиці ключів\n" +msgid "krb5_kt_close %1$d: %2$s\n" +msgstr "krb5_kt_close %1$d: %2$s\n" #, c-format -msgid "Failed to close the keytab\n" -msgstr "Не вдалося закрити таблицю ключів\n" +msgid "cannot open configuration file %s\n" +msgstr "не вдалося відкрити файл налаштувань %s\n" #, c-format -msgid "Keytab successfully retrieved and stored in: %s\n" -msgstr "Таблицю ключів успішно отримати і збережено до: %s\n" +msgid "cannot stat() configuration file %s\n" +msgstr "не вдалося обробити функцією stat() файл налаштування %s\n" + +#, c-format +msgid "out of memory\n" +msgstr "не вистачає пам'яті\n" + +#, c-format +msgid "read error\n" +msgstr "помилка читання\n" + +#, python-format +msgid "objectclass %s not found" +msgstr "клас об’єктів %s не знайдено" + +#, python-format +msgid "Retrieving CA cert chain failed: %s" +msgstr "Спроба отримання ланцюжка сертифікації CA зазнала невдачі: %s" + +#, python-format +msgid "request failed with HTTP status %d" +msgstr "помилка запиту зі станом HTTP %d" + +#, python-format +msgid "Retrieving CA status failed: %s" +msgstr "" +"Спроба отримання даних щодо стану служби сертифікації зазнала невдачі: %s" + +#, python-format +msgid "Retrieving CA status failed with status %d" +msgstr "Спроба отримання стану CA зазнала невдачі, стан %d" msgid "" "\n" -"Plugins not accessible directly through the CLI, commands used internally\n" +"Routines for constructing certificate signing requests using IPA data and\n" +"stored templates.\n" msgstr "" "\n" -"Інтерфейс командного рядка не надає безпосереднього доступу до додатків, " -"команди використано для внутрішньої обробки\n" +"Процедури для побудови запитів щодо підписування сертифікатів за допомогою " +"даних IPA та\n" +"збережених шаблонів.\n" -msgid "Dict of I18N messages" -msgstr "Словник перекладених повідомлень" +#, python-format +msgid "Required CSR generation rule %(name)s is missing data" +msgstr "У обов’язковому правилі створення CSR, %(name)s, не вистачає даних" -msgid "Export plugin meta-data for the webUI." -msgstr "Експортувати метадані додатка для webUI." +msgid "Template error when formatting certificate data" +msgstr "Помилка шаблона під час форматування даних сертифіката" -msgid "Name of object to export" -msgstr "Назва об’єкта, який слід експортувати" +#, python-format +msgid "No generation rule %(rulename)s found." +msgstr "Не знайдено правила створення %(rulename)s." -msgid "Name of method to export" -msgstr "Назва методу, який буде експортовано" +#, python-format +msgid "Generation rule \"%(rulename)s\" is missing the \"rule\" key" +msgstr "У правилі створення «%(rulename)s» немає ключа «rule»" -msgid "Name of command to export" -msgstr "Назва команди для експортування" +#, python-format +msgid "No CSR generation rules are defined for profile %(profile_id)s" +msgstr "Для профілю %(profile_id)s не визначено правил створення CSR" -msgid "Dict of JSON encoded IPA Objects" -msgstr "Словник закодованих JSON об’єктів IPA" +msgid "Failed members" +msgstr "Помилка members" -msgid "Dict of JSON encoded IPA Methods" -msgstr "Словник JSON-закодованих методів IPA" +msgid "Failed source hosts/hostgroups" +msgstr "Помилка hosts/hostgroups джерела" -msgid "Dict of JSON encoded IPA Commands" -msgstr "Словник закодованих JSON команд IPA" +msgid "Failed hosts/hostgroups" +msgstr "Помилка hosts/hostgroups" + +msgid "Failed users/groups" +msgstr "Помилка users/groups" + +msgid "Failed service/service groups" +msgstr "Помилки служб/груп служб" + +msgid "Failed to remove" +msgstr "Спроба вилучення зазнала невдачі" + +msgid "Failed RunAs" +msgstr "Помилка запуску від імені" + +msgid "Failed RunAsGroup" +msgstr "Помилка запуску від імені групи" + +msgid "Failed profiles" +msgstr "Профілі із помилками" + +msgid "Failed CAs" +msgstr "Помилкові CA" + +msgid "Failed managedby" +msgstr "Помилка managedby" + +msgid "Failed allowed to retrieve keytab" +msgstr "Не вдалося дозволити отримувати таблицю ключів" + +msgid "Failed allowed to create keytab" +msgstr "Не вдалося дозволити створювати таблицю ключів" + +msgid "Failed targets" +msgstr "Помилкові цілі" + +msgid "Failed owners" +msgstr "Записи власників із помилками" + +msgid "" +"\n" +"Service Constrained Delegation\n" +"\n" +"Manage rules to allow constrained delegation of credentials so\n" +"that a service can impersonate a user when communicating with another\n" +"service without requiring the user to actually forward their TGT.\n" +"This makes for a much better method of delegating credentials as it\n" +"prevents exposure of the short term secret of the user.\n" +"\n" +"The naming convention is to append the word \"target\" or \"targets\" to\n" +"a matching rule name. This is not mandatory but helps conceptually\n" +"to associate rules and targets.\n" +"\n" +"A rule consists of two things:\n" +" - A list of targets the rule applies to\n" +" - A list of memberPrincipals that are allowed to delegate for\n" +" those targets\n" +"\n" +"A target consists of a list of principals that can be delegated.\n" +"\n" +"In English, a rule says that this principal can delegate as this\n" +"list of principals, as defined by these targets.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new constrained delegation rule:\n" +" ipa servicedelegationrule-add ftp-delegation\n" +"\n" +" Add a new constrained delegation target:\n" +" ipa servicedelegationtarget-add ftp-delegation-target\n" +"\n" +" Add a principal to the rule:\n" +" ipa servicedelegationrule-add-member --principals=ftp/ipa.example." +"com ftp-delegation\n" +"\n" +" Add our target to the rule:\n" +" ipa servicedelegationrule-add-target --servicedelegationtargets=ftp-" +"delegation-target ftp-delegation\n" +"\n" +" Add a principal to the target:\n" +" ipa servicedelegationtarget-add-member --principals=ldap/ipa.example." +"com ftp-delegation-target\n" +"\n" +" Display information about a named delegation rule and target:\n" +" ipa servicedelegationrule_show ftp-delegation\n" +" ipa servicedelegationtarget_show ftp-delegation-target\n" +"\n" +" Remove a constrained delegation:\n" +" ipa servicedelegationrule-del ftp-delegation-target\n" +" ipa servicedelegationtarget-del ftp-delegation\n" +"\n" +"In this example the ftp service can get a TGT for the ldap service on\n" +"the bound user's behalf.\n" +"\n" +"It is strongly discouraged to modify the delegations that ship with\n" +"IPA, ipa-http-delegation and its targets ipa-cifs-delegation-targets and\n" +"ipa-ldap-delegation-targets. Incorrect changes can remove the ability\n" +"to delegate, causing the framework to stop functioning.\n" +msgstr "" +"\n" +"Обмежене службами делегування\n" +"\n" +"Керування правилами, за допомогою яких можна обмежити делегування\n" +"реєстраційних даних так, що служба зможе виконувати персоніфікацію\n" +"користувача під час обміну даними з іншою службою без потреби для\n" +"користувача насправді переспрямовувати квиток для отримання квитка\n" +"(TGT). Так створюється значно кращий метод делегування реєстраційних\n" +"даних, оскільки він запобігає розкриттю короткотермінових ключів\n" +"доступу користувачів.\n" +"\n" +"Відповідно до угоди з іменування, до назви правила додається слово\n" +"\"target\" або \"targets\". Така схема назв не є обов’язковою, але вона\n" +"допомагає концептуально пов’язати правила та їхні призначення.\n" +"\n" +"Правило складається з двох компонентів:\n" +" - Списку цілей (призначень), яких стосується правило\n" +" - Списку memberPrincipals, яким дозволено делегування для\n" +" цих цілей\n" +"\n" +"Запис цілі складається зі списку реєстраційних записів, які можна\n" +"делегувати.\n" +"\n" +"Якщо простіше, правило стверджує, що певний реєстраційний запис\n" +"можна делегувати як вказаний список реєстраційних записів,\n" +"відповідно до визначеного списку цілей.\n" +"\n" +"ПРИКЛАДИ:\n" +"\n" +" Додати нове правило обмеженого делегування:\n" +" ipa servicedelegationrule-add ftp-delegation\n" +"\n" +" Додати нову ціль обмеженого делегування:\n" +" ipa servicedelegationtarget-add ftp-delegation-target\n" +"\n" +" Додати реєстраційний запис до правила:\n" +" ipa servicedelegationrule-add-member --principals=ftp/ipa.example." +"com ftp-delegation\n" +"\n" +" Додати нашу ціль до правила:\n" +" ipa servicedelegationrule-add-target --servicedelegationtargets=ftp-" +"delegation-target ftp-delegation\n" +"\n" +" Додати реєстраційний запис до цілі:\n" +" ipa servicedelegationtarget-add-member --principals=ldap/ipa.example." +"com ftp-delegation-target\n" +"\n" +" Показати дані щодо іменованого правила і цілі:\n" +" ipa servicedelegationrule_show ftp-delegation\n" +" ipa servicedelegationtarget_show ftp-delegation-target\n" +"\n" +" Вилучити обмежене делегування:\n" +" ipa servicedelegationrule-del ftp-delegation-target\n" +" ipa servicedelegationtarget-del ftp-delegation\n" +"\n" +"У цьому прикладі служба ftp може отримувати квиток для отримання квитка для\n" +"служби ldap від імені пов’язаного користувача.\n" +"\n" +"Ми наполегливо не рекомендуємо змінювати делегування, які постачаються з\n" +"IPA, ipa-http-delegation та його цілі ipa-cifs-delegation-targets і\n" +"ipa-ldap-delegation-targets. Некоректні зміни можуть усунути можливість\n" +"делегування, що спричинить непрацездатність усієї системи.\n" + +msgid "Delegation name" +msgstr "Назва уповноваження" + +msgid "Allowed Target" +msgstr "Дозволена ціль" + +msgid "Create a new service delegation rule." +msgstr "Створити правило делегування служб." + +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" +"Для атрибутів з багатьма значенням команда замінює вже вказані значення." + +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." +msgstr "" +"Додати пару атрибут/значення. Формат: атрибут=значення. Атрибут має бути\n" +"частиною схеми." + +msgid "" +"Retrieve and print all attributes from the server. Affects command output." +msgstr "" +"Отримати і вивести всі атрибути з сервера. Стосується лише виводу команд." + +msgid "Print entries as stored on the server. Only affects output format." +msgstr "" +"Вивести записи у формі, у якій вони зберігаються на сервері. Стосується лише " +"формату виведення даних." + +msgid "Suppress processing of membership attributes." +msgstr "Придушити обробку атрибутів участі." + +msgid "User-friendly description of action performed" +msgstr "Зручний для користувача опис дії, що виконується" + +msgid "The primary_key value of the entry, e.g. 'jdoe' for a user" +msgstr "" +"Значення primary_key (основного ключа) запису, наприклад, «iivanenko» для " +"користувача" + +msgid "Add member to a named service delegation rule." +msgstr "Додати запис учасника до іменованого правила делегування служб." + +msgid "member principal" +msgstr "учасник «реєстраційний запис»" + +msgid "principal to add" +msgstr "реєстраційний запис для додавання" + +msgid "Members that could not be added" +msgstr "Учасники, записи яких не вдалося додати" + +msgid "Number of members added" +msgstr "Кількість доданих учасників" + +msgid "Add target to a named service delegation rule." +msgstr "Додати ціль до іменованого правила делегування служб." + +msgid "member service delegation target" +msgstr "учасник призначення делегування служб" + +msgid "service delegation targets to add" +msgstr "призначення делегування служб для додавання" + +msgid "Delete service delegation." +msgstr "Вилучити делегування служб." + +msgid "Continuous mode: Don't stop on errors." +msgstr "Режим неперервної роботи: не зупинятися у разі помилок." + +msgid "List of deletions that failed" +msgstr "Список вилучень, які не вдалося виконати" + +msgid "Search for service delegations rule." +msgstr "Шукати правило делегування служб." + +msgid "A string searched in all relevant object attributes" +msgstr "" +"Рядок, пошук якого відбуватиметься у всіх відповідних атрибутах об’єктів" + +msgid "Time Limit" +msgstr "Обмеження часу" + +msgid "Time limit of search in seconds (0 is unlimited)" +msgstr "Обмеження часу пошуку у секундах (0 — без обмежень)" + +msgid "Size Limit" +msgstr "Обмеження розміру" + +msgid "Maximum number of entries returned (0 is unlimited)" +msgstr "Максимальна кількість повернутих записів (0 — без обмежень)" + +msgid "Primary key only" +msgstr "Лише первинний ключ" + +msgid "Results should contain primary key attribute only (\"delegation-name\")" +msgstr "" +"Результати мають містити лише атрибут основного ключа («delegation-name»)" + +msgid "Number of entries returned" +msgstr "Кількість повернутих записів" + +msgid "True if not all results were returned" +msgstr "True, якщо повернуто було всі результати" + +msgid "Remove member from a named service delegation rule." +msgstr "Вилучити запис учасника із іменованого правила делегування служб." + +msgid "principal to remove" +msgstr "реєстраційний запис для вилучення" + +msgid "Members that could not be removed" +msgstr "Учасники, записи яких не вдалося вилучити" + +msgid "Number of members removed" +msgstr "Кількість вилучених учасників" + +msgid "Remove target from a named service delegation rule." +msgstr "Вилучити ціль із іменованого правила делегування служб." + +msgid "service delegation targets to remove" +msgstr "призначення делегування служб для вилучення" + +msgid "Display information about a named service delegation rule." +msgstr "Показати дані щодо іменованого правила делегування служб." + +msgid "Rights" +msgstr "Права" + +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." +msgstr "" +"Показати права доступу цього запису (потребує --all). Докладніше про це " +"можна дізнатися зі сторінки довідника (man) ipa." + +msgid "Create a new service delegation target." +msgstr "Створити ціль делегування служб." + +msgid "Add member to a named service delegation target." +msgstr "Додати запис учасника до іменованого призначення делегування служб." + +msgid "Delete service delegation target." +msgstr "Вилучити ціль делегування служб." + +msgid "Search for service delegation target." +msgstr "Шукати ціль делегування служб" + +msgid "Remove member from a named service delegation target." +msgstr "Вилучити запис учасника із іменованого призначення делегування служб." + +msgid "Display information about a named service delegation target." +msgstr "Показати дані щодо іменованого призначення делегування служб." msgid "" "\n" @@ -1722,20 +1110,6 @@ msgstr "Максимальний вік, протягом якого можли msgid "Modify Kerberos ticket policy." msgstr "Змінити правила квитків Kerberos." -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" -"Для атрибутів з багатьма значенням команда замінює вже вказані значення." - -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute\n" -"must be part of the schema." -msgstr "" -"Додати пару атрибут/значення. Формат: атрибут=значення. Атрибут має бути\n" -"частиною схеми." - msgid "" "Delete an attribute/value pair. The option will be evaluated\n" "last, after all sets and adds." @@ -1743,22 +1117,1310 @@ msgstr "" "Вилучити парну атрибут-значення. Цей параметр буде використано\n" "останнім, після всіх встановлень і додавань." -msgid "Rights" -msgstr "Права" - -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." -msgstr "" -"Показати права доступу цього запису (потребує --all). Докладніше про це " -"можна дізнатися зі сторінки довідника (man) ipa." - msgid "Reset Kerberos ticket policy to the default values." msgstr "Відновити типові правила квитків Kerberos." msgid "Display the current Kerberos ticket policy." msgstr "Показати поточні правила квитків Kerberos." +msgid "" +"\n" +"ID Views\n" +"\n" +"Manage ID Views\n" +"\n" +"IPA allows to override certain properties of users and groups per each " +"host.\n" +"This functionality is primarily used to allow migration from older systems " +"or\n" +"other Identity Management solutions.\n" +msgstr "" +"\n" +"Перегляди ідентифікаторів\n" +"\n" +"Керування переглядами ідентифікаторів\n" +"\n" +"IPA надає вам змогу перевизначити певні властивості записів користувачів та " +"груп для окремих вузлів.\n" +"В основному, ці функціональні можливості призначено для уможливлення " +"перенесення даних із застарілих\n" +"систем або інших рішень для керування профілями.\n" + +msgid "Anchor to override" +msgstr "Прив’язка для перевизначення" + +msgid "Description" +msgstr "Опис" + +msgid "Group name" +msgstr "Назва групи" + +msgid "GID" +msgstr "GID" + +msgid "Group ID Number" +msgstr "Ід. номер групи" + +msgid "User login" +msgstr "Користувач" + +msgid "UID" +msgstr "UID" + +msgid "User ID Number" +msgstr "Номер ідентифікатора користувача" + +msgid "GECOS" +msgstr "GECOS" + +msgid "Home directory" +msgstr "Домашній каталог" + +msgid "Login shell" +msgstr "Оболонка входу" + +msgid "SSH public key" +msgstr "Відкритий ключ SSH" + +msgid "ID View Name" +msgstr "Назва перегляду ідентифікаторів" + +msgid "Add a new Group ID override." +msgstr "Додати нове перевизначення ідентифікаторів групи." + +msgid "Fallback to AD DC LDAP" +msgstr "Повернення до резервного DC LDAP AD" + +msgid "" +"Allow falling back to AD DC LDAP when resolving AD trusted objects. For two-" +"way trusts only." +msgstr "" +"Дозволити повернення до резервного варіанта LDAP DC AD під час визначення " +"адрес довірених об’єктів AD. Лише для двобічних відносин довіри." + +msgid "Delete an Group ID override." +msgstr "Вилучити перевизначення ідентифікаторів групи." + +msgid "Search for an Group ID override." +msgstr "Шукати перевизначення ідентифікаторів групи." + +msgid "Results should contain primary key attribute only (\"anchor\")" +msgstr "Результати мають містити лише атрибут основного ключа («anchor»)" + +msgid "Modify an Group ID override." +msgstr "Змінити перевизначення ідентифікаторів групи." + +msgid "Rename" +msgstr "Перейменувати" + +msgid "Rename the Group ID override object" +msgstr "Перейменувати об’єкт перевизначення ідентифікатора групи" + +msgid "Display information about an Group ID override." +msgstr "Показати дані щодо перевизначення ідентифікаторів групи." + +msgid "Add a new User ID override." +msgstr "Додати нове перевизначення ідентифікатора користувача." + +msgid "Delete an User ID override." +msgstr "Вилучити перевизначення ідентифікатора користувача." + +msgid "Search for an User ID override." +msgstr "Шукати перевизначення ідентифікатора користувача." + +msgid "Modify an User ID override." +msgstr "Змінити перевизначення ідентифікатора користувача." + +msgid "Rename the User ID override object" +msgstr "Перейменувати об’єкт перевизначення ідентифікатора користувача" + +msgid "Display information about an User ID override." +msgstr "Показати дані щодо перевизначення ідентифікатора користувача." + +msgid "Add a new ID View." +msgstr "Додати новий перегляд ідентифікаторів." + +msgid "" +"Applies ID View to specified hosts or current members of specified " +"hostgroups. If any other ID View is applied to the host, it is overridden." +msgstr "" +"Застосовує перегляд ідентифікаторів до вказаних вузлів або поточних " +"учасників вказаних груп вузлів. Якщо до вузла застосовується якийсь інший " +"перегляд ідентифікаторів, його буде перевизначено." + +msgid "hosts" +msgstr "вузли" + +msgid "Hosts to apply the ID View to" +msgstr "Вузли, до яких слід застосувати перегляд ідентифікаторів" + +msgid "hostgroups" +msgstr "групи вузлів" + +msgid "" +"Hostgroups to whose hosts apply the ID View to. Please note that view is not " +"applied automatically to any hosts added to the hostgroup after running the " +"idview-apply command." +msgstr "" +"Групи вузлів, до чиїх вузлів буде застосовано перегляд ідентифікаторів. Будь " +"ласка, зауважте, що перегляд не застосовується автоматично до жодних вузлів, " +"доданих до групи вузлів після виконання команди idview-apply." + +msgid "Hosts that this ID View was applied to." +msgstr "Вузли, до яких було застосовано цей перегляд ідентифікаторів." + +msgid "Hosts or hostgroups that this ID View could not be applied to." +msgstr "" +"Вузли або групи вузлів, до яких не можна застосувати цей перегляд " +"ідентифікаторів." + +msgid "Number of hosts the ID View was applied to:" +msgstr "Кількість вузлів, до яких застосовано перегляд ідентифікаторів:" + +msgid "Delete an ID View." +msgstr "Вилучити перегляд ідентифікаторів." + +msgid "Search for an ID View." +msgstr "Шукати перегляд ідентифікаторів." + +msgid "Results should contain primary key attribute only (\"name\")" +msgstr "Результати мають містити лише атрибут основного ключа («name»)" + +msgid "Modify an ID View." +msgstr "Змінити перегляд ідентифікаторів." + +msgid "Rename the ID View object" +msgstr "Перейменувати об’єкт перегляду ідентифікатора" + +msgid "Display information about an ID View." +msgstr "Показати дані щодо перегляду ідентифікаторів." + +msgid "Enumerate all the hosts the view applies to." +msgstr "Пронумерувати усі вузли, до яких застосовний перегляд." + +msgid "" +"Clears ID View from specified hosts or current members of specified " +"hostgroups." +msgstr "" +"Знімає перегляд ідентифікаторів із вказаних вузлів або поточних учасників " +"вказаних груп вузлів." + +msgid "Hosts to clear (any) ID View from." +msgstr "Вузли, з яких слід зняти (будь-який) перегляд ідентифікаторів." + +msgid "" +"Hostgroups whose hosts should have ID Views cleared. Note that view is not " +"cleared automatically from any host added to the hostgroup after running " +"idview-unapply command." +msgstr "" +"Групи вузлів, для вузлів яких знято обробку переглядами ідентифікаторів. " +"Зауважте, що після запуску команди idview-unapply перегляд з будь-якого " +"вузла, доданого до групи вузлів, не зніматиметься автоматично." + +msgid "Hosts that ID View was cleared from." +msgstr "Вузли, з яких знято перегляд ідентифікаторів." + +msgid "Hosts or hostgroups that ID View could not be cleared from." +msgstr "" +"Вузли або групи вузлів, з яких не можна зняти перегляд ідентифікаторів." + +msgid "Number of hosts that had a ID View was unset:" +msgstr "Кількість вузлів, з яких знято перегляд ідентифікаторів:" + +msgid "" +"\n" +"OTP configuration\n" +"\n" +"Manage the default values that IPA uses for OTP tokens.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Show basic OTP configuration:\n" +" ipa otpconfig-show\n" +"\n" +" Show all OTP configuration options:\n" +" ipa otpconfig-show --all\n" +"\n" +" Change maximum TOTP authentication window to 10 minutes:\n" +" ipa otpconfig-mod --totp-auth-window=600\n" +"\n" +" Change maximum TOTP synchronization window to 12 hours:\n" +" ipa otpconfig-mod --totp-sync-window=43200\n" +"\n" +" Change maximum HOTP authentication window to 5:\n" +" ipa hotpconfig-mod --hotp-auth-window=5\n" +"\n" +" Change maximum HOTP synchronization window to 50:\n" +" ipa hotpconfig-mod --hotp-sync-window=50\n" +msgstr "" +"\n" +"Налаштування OTP\n" +"\n" +"Керування типовими значеннями, які IPA використовує для ключів OTP.\n" +"\n" +"ПРИКЛАДИ:\n" +"\n" +" Показати базові налаштування OTP:\n" +" ipa otpconfig-show\n" +"\n" +" Показати усі параметри налаштування OTP:\n" +" ipa otpconfig-show --all\n" +"\n" +" Змінити тривалість максимального вікна розпізнавання TOTP на 10 хвилин:\n" +" ipa otpconfig-mod --totp-auth-window=600\n" +"\n" +" Змінити тривалість максимального вікна синхронізації TOTP на 12 годин:\n" +" ipa otpconfig-mod --totp-sync-window=43200\n" +"\n" +" Змінити тривалість максимального вікна розпізнавання HOTP на 5:\n" +" ipa hotpconfig-mod --hotp-auth-window=5\n" +"\n" +" Змінити тривалість максимального вікна синхронізації HOTP на 50:\n" +" ipa hotpconfig-mod --hotp-sync-window=50\n" + +msgid "TOTP authentication Window" +msgstr "Вікно розпізнавання TOTP" + +msgid "TOTP authentication time variance (seconds)" +msgstr "Відхилення часу розпізнавання TOTP (у секундах)" + +msgid "TOTP Synchronization Window" +msgstr "Вікно синхронізації TOTP" + +msgid "TOTP synchronization time variance (seconds)" +msgstr "Відхилення часу синхронізації TOTP (у секундах)" + +msgid "HOTP Authentication Window" +msgstr "Вікно розпізнавання HOTP" + +msgid "HOTP authentication skip-ahead" +msgstr "Випереджальне пропускання розпізнавання HOTP" + +msgid "HOTP Synchronization Window" +msgstr "Вікно синхронізації HOTP" + +msgid "HOTP synchronization skip-ahead" +msgstr "Випереджальне пропускання синхронізації HOTP" + +msgid "Modify OTP configuration options." +msgstr "Змінити параметри налаштування OTP." + +msgid "Show the current OTP configuration." +msgstr "Показати поточні налаштування OTP." + +msgid "" +"\n" +"Joining an IPA domain\n" +msgstr "" +"\n" +"Долучення до домену IPA\n" + +msgid "Join an IPA domain" +msgstr "Долучитися до домену IPA" + +msgid "The hostname to register as" +msgstr "Назва вузла для реєстрації" + +msgid "The IPA realm" +msgstr "Область IPA" + +msgid "Hardware platform of the host (e.g. Lenovo T61)" +msgstr "Апаратна платформа вузла (наприклад, «Lenovo T61»)" + +msgid "Operating System and version of the host (e.g. Fedora 9)" +msgstr "Операційна система вузла і її версія (наприклад, «Fedora 9»)" + +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" + +msgid "Enable or Disable Anonymous PKINIT." +msgstr "Увімкнути або вимкнути анонімний PKINIT." + +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" +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" + +msgid "Group" +msgstr "Група" + +msgid "Manage password policy for specific group" +msgstr "Керування правилами обробки паролів для певної групи" + +msgid "Max lifetime (days)" +msgstr "Макс. строк дії (у днях)" + +msgid "Maximum password lifetime (in days)" +msgstr "Максимальний строк дії пароля (у днях)" + +msgid "Min lifetime (hours)" +msgstr "Мін. строк дії (у годинах)" + +msgid "Minimum password lifetime (in hours)" +msgstr "Мінімальний строк дії пароля (у годинах)" + +msgid "History size" +msgstr "Розмір журналу" + +msgid "Password history size" +msgstr "Розмір журналу паролів" + +msgid "Character classes" +msgstr "Класи символів" + +msgid "Minimum number of character classes" +msgstr "Мінімальна кількість класів символів" + +msgid "Min length" +msgstr "Мін. довжина" + +msgid "Minimum length of password" +msgstr "Мінімальна довжина пароля" + +msgid "Priority" +msgstr "Пріоритет" + +msgid "Priority of the policy (higher number means lower priority" +msgstr "Пріоритет правил (більше число — нижчий пріоритет)" + +msgid "Max failures" +msgstr "Макс. к-ть помилок" + +msgid "Consecutive failures before lockout" +msgstr "Кількість помилок для блокування" + +msgid "Failure reset interval" +msgstr "Проміжок скидання помилок" + +msgid "Period after which failure count will be reset (seconds)" +msgstr "" +"Проміжок часу, по завершенню якого кількість помилок буде скинуто (у " +"секундах)" + +msgid "Lockout duration" +msgstr "Тривалість блокування" + +msgid "Period for which lockout is enforced (seconds)" +msgstr "Проміжок часу, протягом якого діятиме блокування (у секундах)" + +msgid "Results should contain primary key attribute only (\"cn\")" +msgstr "Результати мають містити лише атрибут основного ключа («cn»)" + +msgid "Add a new group password policy." +msgstr "Додати нову групу правил для паролів." + +msgid "Delete a group password policy." +msgstr "Вилучити групу правил для паролів." + +msgid "Search for group password policies." +msgstr "Знайти групу правил для паролів." + +msgid "Results should contain primary key attribute only (\"group\")" +msgstr "Результати мають містити лише атрибут основного ключа («group»)" + +msgid "Modify a group password policy." +msgstr "Змінити групу правил для паролів." + +msgid "Display information about password policy." +msgstr "Показати дані щодо групи правил для паролів." + +msgid "User" +msgstr "Користувач" + +msgid "Display effective policy for a specific user" +msgstr "Показати поточні правила для певного користувача" + +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 invoke Sudo.\n" +" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke " +"Sudo.\n" +" Allow Command: The specific command(s) permitted to be run via Sudo.\n" +" Deny Command: The specific command(s) prohibited to be run via Sudo.\n" +" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be " +"invoked with.\n" +" 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" +"An order can be added to a sudorule to control the order in which they\n" +"are evaluated (if the client supports it). This order is an integer and\n" +"must be unique.\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" +"EXAMPLES:\n" +"\n" +" Create a new rule:\n" +" ipa sudorule-add readfiles\n" +"\n" +" Add sudo command object and add it as allowed command in the rule:\n" +" ipa sudocmd-add /usr/bin/less\n" +" ipa sudorule-add-allow-command readfiles --sudocmds /usr/bin/less\n" +"\n" +" Add a host to the rule:\n" +" ipa sudorule-add-host readfiles --hosts server.example.com\n" +"\n" +" Add a user to the rule:\n" +" ipa sudorule-add-user readfiles --users jsmith\n" +"\n" +" Add a special Sudo rule for default Sudo server configuration:\n" +" ipa sudorule-add defaults\n" +"\n" +" Set a default Sudo option:\n" +" ipa sudorule-add-option defaults --sudooption '!authenticate'\n" +msgstr "" +"\n" +"Правила sudo\n" +"\n" +"Sudo (su \"do\") надає системному адміністратору змогу делегувати\n" +"повноваження певним користувачам (або групам користувачів) на виконання\n" +"деяких (або усіх) команд від імені адміністратора (root) або іншого\n" +"користувача, зберігаючи водночас журнал виконання команд та\n" +"аргументів.\n" +"\n" +"У FreeIPA передбачено декілька параметрів налаштовування роботи sudo:\n" +" Users: користувачі або групи, які можуть викликати sudo.\n" +" Hosts: вузли або групи вузлів, користувачі якого можуть викликати sudo.\n" +" Allow Command: специфічні команди, які можна виконувати за допомогою " +"sudo.\n" +" Deny Command: специфічні команди, які не можна виконувати за допомогою " +"sudo.\n" +" RunAsUser: користувачі або групи, від імені яких sudo виконуватиме " +"команди.\n" +" RunAsGroup: групи, ідентифікатори яких буде використано sudo для " +"виконання команд.\n" +" Options: різноманітні параметри sudoers, які можуть змінити поведінку " +"sudo.\n" +"\n" +"До правила sudo можна додати порядок, який керуватиме порядком\n" +"обробки записів (якщо такий порядок передбачено на клієнтському боці).\n" +"Порядок визначається числовим індексом, який не повинен повторюватися.\n" +"\n" +"У FreeIPA передбачено визначений binddn для використання з sudo, який " +"розташовано у\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\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" +"\n" +"ПРИКЛАДИ:\n" +"\n" +" Створити правило:\n" +" ipa sudorule-add readfiles\n" +"\n" +" Додати об’єкт команди sudo і записати його як дозволену команду до " +"правила:\n" +" ipa sudocmd-add /usr/bin/less\n" +" ipa sudorule-add-allow-command readfiles --sudocmds /usr/bin/less\n" +"\n" +" Додати запис вузла до правила:\n" +" ipa sudorule-add-host readfiles --hosts server.example.com\n" +"\n" +" Додати запис користувача до правила:\n" +" ipa sudorule-add-user readfiles --users jsmith\n" +"\n" +" Додати особливе правило sudo для типового налаштовування сервера sudo:\n" +" ipa sudorule-add defaults\n" +"\n" +" Встановити типовий варіант дій для sudo:\n" +" ipa sudorule-add-option defaults --sudooption '!authenticate'\n" + +msgid "Rule name" +msgstr "Назва правила" + +msgid "Enabled" +msgstr "Увімкнено" + +msgid "User category" +msgstr "Категорія користувачів" + +msgid "User category the rule applies to" +msgstr "Категорія користувачів, до якої застосовується правило" + +msgid "Host category" +msgstr "Категорія вузлів" + +msgid "Host category the rule applies to" +msgstr "Категорія вузлів, до якої застосовується правило" + +msgid "Command category" +msgstr "Категорія команд" + +msgid "Command category the rule applies to" +msgstr "Категорія команд, до якої застосовується правило" + +msgid "RunAs User category" +msgstr "Категорія запуску від імені користувачів" + +msgid "RunAs User category the rule applies to" +msgstr "" +"Категорія запуску від імені користувачів, до якої застосовується правило" + +msgid "RunAs Group category" +msgstr "Категорія запуску від імені групи" + +msgid "RunAs Group category the rule applies to" +msgstr "Категорія запуску від імені групи, до якої застосовується правило" + +msgid "Sudo order" +msgstr "Порядок sudo" + +msgid "integer to order the Sudo rules" +msgstr "ціле число для впорядковування правил sudo" + +msgid "Users" +msgstr "Користувачі" + +msgid "User Groups" +msgstr "Групи користувачів" + +msgid "External User" +msgstr "Зовнішній користувач" + +msgid "External User the rule applies to (sudorule-find only)" +msgstr "" +"Зовнішній користувач, до якого застосовуватиметься правило (лише sudorule-" +"find)" + +msgid "Hosts" +msgstr "Вузли" + +msgid "Host Groups" +msgstr "Групи вузлів" + +msgid "Host Masks" +msgstr "Маски вузлів" + +msgid "External host" +msgstr "Зовнішній вузол" + +msgid "Sudo Allow Commands" +msgstr "Дозволені команди sudo" + +msgid "Sudo Deny Commands" +msgstr "Заборонені команди sudo" + +msgid "Sudo Allow Command Groups" +msgstr "Групи дозволених команд sudo" + +msgid "Sudo Deny Command Groups" +msgstr "Групи заборонених команд sudo" + +msgid "RunAs Users" +msgstr "Користувачі запуску від імені" + +msgid "Run as a user" +msgstr "Запуск від користувача" + +msgid "Groups of RunAs Users" +msgstr "Групи користувачів запуску від імені" + +msgid "Run as any user within a specified group" +msgstr "Запускати від імені будь-якого користувача вказаної групи" + +msgid "RunAs External User" +msgstr "Зовнішній користувач для RunAs" + +msgid "External User the commands can run as (sudorule-find only)" +msgstr "" +"Зовнішній користувач, від імені якого можна віддавати команди (лише sudorule-" +"find)" + +msgid "External Groups of RunAs Users" +msgstr "Зовнішні групи користувачів для запуску від імені" + +msgid "External Groups of users that the command can run as" +msgstr "Зовнішні групи користувачів, від імені яких можна виконувати команду" + +msgid "RunAs Groups" +msgstr "Групи запуску від імені" + +msgid "Run with the gid of a specified POSIX group" +msgstr "Запускати з ідентифікатором вказаної групи POSIX" + +msgid "RunAs External Group" +msgstr "Зовнішня група для RunAs" + +msgid "External Group the commands can run as (sudorule-find only)" +msgstr "" +"Зовнішня група, від імені якої можна віддавати команди (лише sudorule-find)" + +msgid "Sudo Option" +msgstr "Пункт sudo" + +msgid "Create new Sudo Rule." +msgstr "Створити правило sudo." + +msgid "Add commands and sudo command groups affected by Sudo Rule." +msgstr "Додати команди і групи команд sudo, яких стосується правило sudo." + +msgid "member sudo command" +msgstr "команда учасника sudo" + +msgid "sudo commands to add" +msgstr "команди sudo, які слід додати" + +msgid "member sudo command group" +msgstr "учасник група команд sudo" + +msgid "sudo command groups to add" +msgstr "групи команд sudo для додавання" + +msgid "Add hosts and hostgroups affected by Sudo Rule." +msgstr "Додати вузли та групи вузлів, яких стосується правило sudo." + +msgid "member host" +msgstr "вузол-учасник" + +msgid "hosts to add" +msgstr "вузли для додавання" + +msgid "member host group" +msgstr "група вузлів учасника" + +msgid "host groups to add" +msgstr "групи вузлів для додавання" + +msgid "host masks of allowed hosts" +msgstr "маски для дозволених вузлів" + +msgid "Add an option to the Sudo Rule." +msgstr "Додати пункт до правила sudo." + +msgid "Add group for Sudo to execute as." +msgstr "Додати групу виконання до запису sudo." + +msgid "member group" +msgstr "група учасника" + +msgid "groups to add" +msgstr "групи для додавання" + +msgid "Add users and groups for Sudo to execute as." +msgstr "" +"Додати користувачів та групи для виконання команд sudo від їхнього імені." + +msgid "member user" +msgstr "користувач учасника" + +msgid "users to add" +msgstr "користувачі для додавання" + +msgid "Add users and groups affected by Sudo Rule." +msgstr "Додати записи користувачів та груп, яких стосується правило sudo." + +msgid "Delete Sudo Rule." +msgstr "Вилучити правило sudo." + +msgid "Disable a Sudo Rule." +msgstr "Вимкнути правило sudo." + +msgid "Enable a Sudo Rule." +msgstr "Увімкнути правило sudo." + +msgid "Search for Sudo Rule." +msgstr "Знайти правило sudo." + +msgid "Results should contain primary key attribute only (\"sudorule-name\")" +msgstr "" +"Результати мають містити лише атрибут основного ключа («sudorule-name»)" + +msgid "Modify Sudo Rule." +msgstr "Змінити правило sudo." + +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "Вилучити команди і групи команд sudo, яких стосується правило sudo." + +msgid "sudo commands to remove" +msgstr "команди sudo для вилучення" + +msgid "sudo command groups to remove" +msgstr "групи команд sudo для вилучення" + +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "Вилучити вузли та групи вузлів, яких стосується правило sudo." + +msgid "hosts to remove" +msgstr "вузли для вилучення" + +msgid "host groups to remove" +msgstr "групи вузлів для вилучення" + +msgid "Remove an option from Sudo Rule." +msgstr "Вилучити пункт з правила sudo." + +msgid "Remove group for Sudo to execute as." +msgstr "Вилучити групу виконання з запису sudo." + +msgid "groups to remove" +msgstr "групи для вилучення" + +msgid "Remove users and groups for Sudo to execute as." +msgstr "" +"Вилучити користувачів та групи для виконання команд sudo від їхнього імені." + +msgid "users to remove" +msgstr "користувачі, записи яких слід вилучити" + +msgid "Remove users and groups affected by Sudo Rule." +msgstr "Вилучити записи користувачів та груп, яких стосується правило sudo." + +msgid "Display Sudo Rule." +msgstr "Показати правило sudo." + +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 " +"junioradmin\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 'junioradmin' 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 " +"junioradmin\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" + +msgid "Role name" +msgstr "Назва ролі" + +msgid "A description of this role-group" +msgstr "Опис цієї групи ролей" + +msgid "Member users" +msgstr "Користувачі «member»" + +msgid "Member groups" +msgstr "Групи «member»" + +msgid "Member hosts" +msgstr "Вузли-учасники" + +msgid "Member host-groups" +msgstr "Учасник host-groups" + +msgid "Privileges" +msgstr "Привілеї" + +msgid "Member services" +msgstr "Служби учасника" + +msgid "Add a new role." +msgstr "Додати нову роль." + +msgid "Add members to a role." +msgstr "Додати учасників до запису ролі." + +msgid "member service" +msgstr "учасник служба" + +msgid "services to add" +msgstr "служби для додавання" + +msgid "Add privileges to a role." +msgstr "Додати привілеї до запису ролі." + +msgid "privilege" +msgstr "привілей" + +msgid "privileges" +msgstr "привілеї" + +msgid "Number of privileges added" +msgstr "Кількість доданих привілеїв" + +msgid "Delete a role." +msgstr "Вилучити роль." + +msgid "Search for roles." +msgstr "Знайти ролі." + +msgid "Modify a role." +msgstr "Змінити роль." + +msgid "Rename the role object" +msgstr "Перейменувати об’єкт ролі" + +msgid "Remove members from a role." +msgstr "Вилучити учасників з запису ролі." + +msgid "services to remove" +msgstr "служби для вилучення" + +msgid "Remove privileges from a role." +msgstr "Вилучити привілеї з запису ролі." + +msgid "Number of privileges removed" +msgstr "Кількість вилучених привілеїв" + +msgid "Display information about a role." +msgstr "Показати дані щодо ролі." + +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 --users=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 --users=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" + +msgid "Netgroup name" +msgstr "Назва мережевої групи" + +msgid "Netgroup description" +msgstr "Опис мережевої групи" + +msgid "NIS domain name" +msgstr "Назва домену NIS" + +msgid "IPA unique ID" +msgstr "Унікальний ід. IPA" + +msgid "Member netgroups" +msgstr "Мережеві групи учасника" + +msgid "Member of netgroups" +msgstr "Мережеві групи «member of»" + +msgid "Indirect Member netgroups" +msgstr "Опосередковані мережеві групи учасника" + +msgid "Member User" +msgstr "Користувач учасника" + +msgid "Member Group" +msgstr "Група учасника" + +msgid "Member Host" +msgstr "Вузол-учасник" + +msgid "Member Hostgroup" +msgstr "Група вузлів учасника" + +msgid "Add a new netgroup." +msgstr "Додати нову мережеву групу." + +msgid "Add members to a netgroup." +msgstr "Додати учасників до мережевої групи." + +msgid "member netgroup" +msgstr "мережева група учасника" + +msgid "netgroups to add" +msgstr "мережеві групи, які слід додати" + +msgid "Delete a netgroup." +msgstr "Вилучити мережеву групу." + +msgid "Search for a netgroup." +msgstr "Шукати мережеву групу." + +msgid "search for managed groups" +msgstr "шукати керовані групи" + +msgid "netgroup" +msgstr "мережева група" + +msgid "Search for netgroups with these member netgroups." +msgstr "Шукати мережеві групи з цими мережевими групами-учасниками." + +msgid "Search for netgroups without these member netgroups." +msgstr "Шукати мережеві групи без цих мережевих груп-учасників." + +msgid "user" +msgstr "користувач" + +msgid "Search for netgroups with these member users." +msgstr "Шукати мережеві групи з цими користувачами-учасниками." + +msgid "Search for netgroups without these member users." +msgstr "Шукати мережеві групи без цих користувачів-учасників." + +msgid "group" +msgstr "група" + +msgid "Search for netgroups with these member groups." +msgstr "Шукати мережеві групи із вказаними групами-учасниками." + +msgid "Search for netgroups without these member groups." +msgstr "Шукати мережеві групи без цих груп-учасників." + +msgid "host" +msgstr "вузол" + +msgid "Search for netgroups with these member hosts." +msgstr "Шукати мережеві групи з цими вузлами-учасниками." + +msgid "Search for netgroups without these member hosts." +msgstr "Шукати мережеві групи без цих вузлів-учасників." + +msgid "host group" +msgstr "група вузлів" + +msgid "Search for netgroups with these member host groups." +msgstr "Шукати мережеві групи із вказаними групами вузлів-учасниками." + +msgid "Search for netgroups without these member host groups." +msgstr "Шукати мережеві групи без цих груп вузлів-учасників." + +msgid "Search for netgroups with these member of netgroups." +msgstr "Шукати мережеві групи з цими мережевими групами участі." + +msgid "Search for netgroups without these member of netgroups." +msgstr "Шукати мережеві групи без цих мережевих груп участі." + +msgid "Modify a netgroup." +msgstr "Змінити мережеву групу." + +msgid "Remove members from a netgroup." +msgstr "Вилучити учасників з мережевої групи." + +msgid "netgroups to remove" +msgstr "мережеві групи для вилучення" + +msgid "Display information about a netgroup." +msgstr "Показати дані щодо мережевої групи." + +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 --group=managers --" +"membergroup=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 --attrs=postalCode --group=managers --" +"membergroup=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 --group=managers --" +"membergroup=employees \"managers edit employees' street\"\n" +"\n" +" Під час керування списком атрибутів слід включати всі атрибути списку\n" +" разом з вже створеними. Додавання до списку postalCode:\n" +" ipa delegation-mod --attrs=street --attrs=postalCode --group=managers --" +"membergroup=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" + +msgid "Permissions" +msgstr "Права доступу" + +msgid "Permissions to grant (read, write). Default is write." +msgstr "" +"Права доступу, які слід надати (read, write). Типовими є права доступу write." + +msgid "Attributes" +msgstr "Атрибути" + +msgid "Attributes to which the delegation applies" +msgstr "Атрибути, до яких застосовується уповноваження" + +msgid "Member user group" +msgstr "Учасник групи користувачів" + +msgid "User group to apply delegation to" +msgstr "Група користувачів, до якої слід застосувати уповноваження" + +msgid "User group" +msgstr "Група користувачів" + +msgid "User group ACI grants access to" +msgstr "Група користувачів, до якої надає доступ ACI" + +msgid "Add a new delegation." +msgstr "Додати нове уповноваження." + +msgid "Delete a delegation." +msgstr "Вилучити уповноваження." + +msgid "True means the operation was successful" +msgstr "True означає, що дію було виконано успішно" + +msgid "Search for delegations." +msgstr "Пошук уповноважень." + +msgid "Modify a delegation." +msgstr "Змінити уповноваження." + +msgid "Display information about a delegation." +msgstr "Показати дані щодо уповноваження." + msgid "" "\n" "ID ranges\n" @@ -1784,7 +2446,8820 @@ msgid "" "\n" "and an ID range of a trusted domain must set\n" " - rid-base: the first RID of the corresponding RID range\n" -" - dom_sid: domain SID of the trusted domain\n" +" - sid: domain SID of the trusted domain\n" +"\n" +"\n" +"\n" +"EXAMPLE: Add a new ID range for a trusted domain\n" +"\n" +"Since there might be more than one trusted domain the domain SID must be " +"given\n" +"while creating the ID range.\n" +"\n" +" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" +"base=0 --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" +"\n" +"This ID range is then used by the IPA server and the SSSD IPA provider to\n" +"assign Posix UIDs to users from the trusted domain.\n" +"\n" +"If e.g. a range for a trusted domain is configured with the following " +"values:\n" +" base-id = 1200000\n" +" range-size = 200000\n" +" rid-base = 0\n" +"the RIDs 0 to 199999 are mapped to the Posix ID from 1200000 to 13999999. " +"So\n" +"RID 1000 <-> Posix ID 1201000\n" +"\n" +"\n" +"\n" +"EXAMPLE: Add a new ID range for the local domain\n" +"\n" +"To create an ID range for the local domain it is not necessary to specify a\n" +"domain SID. But since it is possible that a user and a group can have the " +"same\n" +"value as Posix ID a second RID interval is needed to handle conflicts.\n" +"\n" +" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" +"base=1000 --secondary-rid-base=1000000 local_range\n" +"\n" +"The data from the ID ranges of the local domain are used by the IPA server\n" +"internally to assign SIDs to IPA users and groups. The SID will then be " +"stored\n" +"in the user or group objects.\n" +"\n" +"If e.g. the ID range for the local domain is configured with the values " +"from\n" +"the example above then a new user with the UID 1200007 will get the RID " +"1007.\n" +"If this RID is already used by a group the RID will be 1000007. This can " +"only\n" +"happen if a user or a group object was created with a fixed ID because the\n" +"automatic assignment will not assign the same ID twice. Since there are " +"only\n" +"users and groups sharing the same ID namespace it is sufficient to have " +"only\n" +"one fallback range to handle conflicts.\n" +"\n" +"To find the Posix ID for a given RID from the local domain it has to be\n" +"checked first if the RID falls in the primary or secondary RID range and\n" +"the rid-base or the secondary-rid-base has to be subtracted, respectively,\n" +"and the base-id has to be added to get the Posix ID.\n" +"\n" +"Typically the creation of ID ranges happens behind the scenes and this CLI\n" +"must not be used at all. The ID range for the local domain will be created\n" +"during installation or upgrade from an older version. The ID range for a\n" +"trusted domain will be created together with the trust by 'ipa trust-" +"add ...'.\n" +"\n" +"USE CASES:\n" +"\n" +" Add an ID range from a transitively trusted domain\n" +"\n" +" If the trusted domain (A) trusts another domain (B) as well and this " +"trust\n" +" is transitive 'ipa trust-add domain-A' will only create a range for\n" +" domain A. The ID range for domain B must be added manually.\n" +"\n" +" Add an additional ID range for the local domain\n" +"\n" +" If the ID range of the local domain is exhausted, i.e. no new IDs can " +"be\n" +" assigned to Posix users or groups by the DNA plugin, a new range has to " +"be\n" +" created to allow new users and groups to be added. (Currently there is " +"no\n" +" connection between this range CLI and the DNA plugin, but a future " +"version\n" +" might be able to modify the configuration of the DNS plugin as well)\n" +"\n" +"In general it is not necessary to modify or delete ID ranges. If there is " +"no\n" +"other way to achieve a certain configuration than to modify or delete an ID\n" +"range it should be done with great care. Because UIDs are stored in the " +"file\n" +"system and are used for access control it might be possible that users are\n" +"allowed to access files of other users if an ID range got deleted and " +"reused\n" +"for a different domain.\n" +"\n" +"(*) The RID is typically the last integer of a user or group SID which " +"follows\n" +"the domain SID. E.g. if the domain SID is S-1-5-21-123-456-789 and a user " +"from\n" +"this domain has the SID S-1-5-21-123-456-789-1010 then 1010 id the RID of " +"the\n" +"user. RIDs are unique in a domain, 32bit values and are used for users and\n" +"groups.\n" +"\n" +"=======\n" +"WARNING:\n" +"\n" +"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " +"the\n" +"local domain. Currently the DNA plugin *cannot* be reconfigured itself " +"based\n" +"on the local ranges set via this family of commands.\n" +"\n" +"Manual configuration change has to be done in the DNA plugin configuration " +"for\n" +"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" +"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " +"be\n" +"modified to match the new range.\n" +"=======\n" +msgstr "" +"\n" +"Діапазони ідентифікаторів\n" +"\n" +"Керування діапазонами ідентифікаторів, використаних для відображення\n" +"ідентифікаторів POSIX на SID, і навпаки.\n" +"\n" +"За допомогою цієї програми можна керувати обома типами діапазонів " +"ідентифікаторів:\n" +"\n" +" - діапазони ідентифікаторів локального домену\n" +" - діапазони ідентифікаторів довірених віддалених доменів\n" +"\n" +"Обидва типи мають такі спільні атрибути:\n" +"\n" +" - base-id: перший ідентифікатор діапазону ідентифікаторів POSIX\n" +" - range-size: розмір діапазону\n" +"\n" +"На основі цих двох атрибутів об’єкт діапазону може зарезервувати " +"ідентифікатори\n" +"POSIX, починаючи з base-id аж до, але не включно, base-id+range-size.\n" +"\n" +"Крім того, можна встановити діапазон ідентифікаторів локального домену\n" +" - rid-base: перший RID(*) відповідного діапазону RID\n" +" - secondary-rid-base: перший RID вторинного діапазону RID\n" +"\n" +"а діапазон ідентифікаторів довіреного домену слід задавати за допомогою\n" +" - rid-base: перший RID відповідного діапазону RID\n" +" - dom_sid: SID довіреного домену\n" +"\n" +"\n" +"\n" +"ПРИКЛАД: додавання нового діапазону ідентифікаторів для довіреного домену\n" +"\n" +"Оскільки може бути декілька довірених доменів, під час створення діапазону\n" +"ідентифікаторів слід вказати SID домену.\n" +"\n" +" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-base=0 \\\n" +" --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" +"\n" +"Цей діапазон ідентифікаторів потім використовуватиметься сервером IPA\n" +"та надавачем даних IPA SSSD для призначення UID Posix користувачам з\n" +"довіреного домену.\n" +"\n" +"Якщо, наприклад, налаштовано діапазон для довіреного домену з такими\n" +"значеннями:\n" +" base-id = 1200000\n" +" range-size = 200000\n" +" rid-base = 0\n" +"RID від 0 до 199999 прив’язуються до ідентифікаторів Posix від 1200000 до\n" +"13999999. Отже RID 1000 <-> Posix ID 1201000\n" +"\n" +"\n" +"\n" +"ПРИКЛАД: додавання нового діапазону ідентифікаторів до локального домену\n" +"\n" +"Щоб створити діапазон ідентифікаторів для локального домену не потрібно\n" +"вказувати SID домену. Але оскільки можливий конфлікт між ідентифікаторами\n" +"користувача і групи та ідентифікаторами POSIX, потрібен вторинний інтервал\n" +"RID.\n" +"\n" +" ipa range-add --base-id=1200000 --range-size=200000 --rid-base=1000 \\\n" +" --secondary-rid-base=1000000 local_range\n" +"\n" +"Дані з діапазонів ідентифікаторів локального домену використовуються\n" +"сервером IPA на внутрішньому рівні для призначення SID користувачам і " +"групам\n" +"IPA. SID буде збережено у об’єктах користувача або групи.\n" +"\n" +"Якщо, наприклад, для діапазону ідентифікаторів локального домену визначено\n" +"значення з наведеного вище прикладу, новий користувач з UID 1200007 отримає\n" +"RID 1007. Якщо цей RID вже буде використано групою, його буде змінено на " +"1000007.\n" +"Таке може трапитися лише, якщо об’єкт користувача або групи було створено з\n" +"фіксованим ідентифікатором, оскільки у разі автоматичного призначення один\n" +"ідентифікатор не може бути призначено двічі. Оскільки спільний простір назв\n" +"є лише у користувачів і груп, достатньо одного резервного діапазону для\n" +"того, щоб повністю позбутися конфліктів.\n" +"\n" +"Для визначення ідентифікатора POSIX за вказаним RID з локального домену " +"слід\n" +"спочатку перевірити, чи потрапляє RID у основний або вторинний діапазон " +"RID,\n" +"також, щоб отримати ідентифікатор POSIX, слід відняти від ідентифікатор rid-" +"base\n" +"або secondary-rid-base, відповідно, і додати base-id.\n" +"\n" +"Типово, створення діапазонів ідентифікаторів є зовні непомітним і потреби у\n" +"цьому інтерфейсі командного рядка не виникає. Діапазон ідентифікаторів\n" +"для локального домену буде створено під час встановлення або оновлення\n" +"попередньої версії. Діапазон ідентифікаторів для довіреного домену буде\n" +"створено разом з записом довіри командою «ipa trust-add ...».\n" +"Нижче наведено можливі випадки використання цього командного інтерфейсу.\n" +"\n" +"ВИПАДКИ ВИКОРИСТАННЯ:\n" +"\n" +" Додавання діапазону ідентифікаторів з перехідного довіреного домену\n" +"\n" +" Якщо довірений домен (A) довіряється іншому домену (B) і цей запис\n" +" довіри є перехідним, «ipa trust-add домен-A» створить лише діапазон\n" +" для домену A. Діапазон ідентифікаторів домену B має бути додано вручну.\n" +"\n" +" Додавання додаткового діапазону ідентифікаторів для локального домену\n" +"\n" +" Якщо діапазон ідентифікаторів локального домену вичерпано, тобто " +"додатком\n" +" DNA не може бути призначено нові ідентифікатори користувачам або групам\n" +" POSIX, має бути створено новий діапазон для додавання нових " +"користувачів\n" +" та груп. (У поточній версії між цим командним інтерфейсом і додатком " +"DNA\n" +" немає безпосереднього зв’язку, але у майбутній версії може бути " +"передбачено\n" +" можливість внесення змін і до налаштувань додатка DNS.)\n" +"\n" +"Загалом, потреби у зміні або вилученні діапазонів ідентифікаторів немає.\n" +"Якщо немає іншого виходу, окрім внесення змін або вилучення діапазону\n" +"ідентифікаторів, робити це слід дуже обережно. Оскільки UID зберігаються у\n" +"файловій системі і використовуються для керування доступом, можлива " +"ситуація,\n" +"коли одні користувачі отримуватимуть доступ до файлів інших користувачів\n" +"у разі вилучення діапазону ідентифікаторів і повторного його використання\n" +"у іншому домені.\n" +"\n" +"(*) RID типово є останнім цілим числом SID користувача або групи, перед " +"якими\n" +"має бути вказано SID домену. Наприклад, якщо SID домену " +"S-1-5-21-123-456-789, а\n" +"користувач з цього домену має SID S-1-5-21-123-456-789-1010, RID " +"користувача\n" +"буде 1010. RID є унікальними в межах домену, є 32-бітовими значенням і\n" +"використовуються для користувачів і груп.\n" +"\n" +"=======\n" +"ПОПЕРЕДЖЕННЯ:\n" +"\n" +"Додаток DNA у 389-ds розміщуватиме ідентифікатори на основі діапазонів\n" +"налаштованих для локального домену. У поточній версії додаток DNA *не " +"можна*\n" +"переналаштовувати самостійно на основі локальних діапазонів, встановлених\n" +"за допомогою цього сімейства команд.\n" +"\n" +"Зміни налаштувань вручну має бути виконано у налаштуваннях додатка DNA\n" +"для локального діапазону. Зокрема слід змінити атрибут dnaNextRange " +"«cn=Posix\n" +"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config» так, щоб\n" +"він відповідав новому діапазону.\n" +"=======\n" + +msgid "Range name" +msgstr "Назва діапазону" + +msgid "First Posix ID of the range" +msgstr "Перший ідентифікатор POSIX діапазону" + +msgid "Number of IDs in the range" +msgstr "Кількість ідентифікаторів у діапазоні" + +msgid "First RID of the corresponding RID range" +msgstr "Перший RID відповідного діапазону RID" + +msgid "First RID of the secondary RID range" +msgstr "Перший RID вторинного діапазону RID" + +msgid "Domain SID of the trusted domain" +msgstr "SID довіреного домену" + +msgid "Name of the trusted domain" +msgstr "Назва довіреного домену" + +msgid "Range type" +msgstr "Тип діапазону" + +msgid "ID range type, one of ipa-ad-trust-posix, ipa-ad-trust, ipa-local" +msgstr "" +"Тип діапазону ідентифікаторів. Можливі варіанти: ipa-ad-trust-posix, ipa-ad-" +"trust, ipa-local" + +msgid "" +"\n" +"Add new ID range.\n" +"\n" +" To add a new ID range you always have to specify\n" +"\n" +" --base-id\n" +" --range-size\n" +"\n" +" Additionally\n" +"\n" +" --rid-base\n" +" --secondary-rid-base\n" +"\n" +" may be given for a new ID range for the local domain while\n" +"\n" +" --rid-base\n" +" --dom-sid\n" +"\n" +" must be given to add a new range for a trusted AD domain.\n" +"\n" +"=======\n" +"WARNING:\n" +"\n" +"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " +"the\n" +"local domain. Currently the DNA plugin *cannot* be reconfigured itself " +"based\n" +"on the local ranges set via this family of commands.\n" +"\n" +"Manual configuration change has to be done in the DNA plugin configuration " +"for\n" +"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" +"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " +"be\n" +"modified to match the new range.\n" +"=======\n" +" " +msgstr "" +"\n" +" Додати новий діапазон ідентифікаторів.\n" +"\n" +" Для додавання нового діапазону ідентифікаторів вам слід завжди " +"вказувати\n" +"\n" +" --base-id\n" +" --range-size\n" +"\n" +" Крім того, може бути надано\n" +"\n" +" --rid-base\n" +" --econdary-rid-base\n" +"\n" +" для додавання нового діапазону ідентифікаторів для локального домену і\n" +"\n" +" --rid-base\n" +" --dom-sid\n" +"\n" +" для додавання нового діапазону для довіреного домену AD.\n" +"\n" +"=======\n" +"ПОПЕРЕДЖЕННЯ:\n" +"\n" +" Додаток DNA у 389-ds визначатиме ідентифікатори у діапазонах, " +"налаштованих\n" +" для локального домену. У поточній версії додаток DNA *не може* змінити\n" +" власні налаштування на основі локальних діапазонів, встановлених за\n" +" допомогою цього сімейства команд.\n" +"\n" +" Для внесення змін щодо локального діапазону слід змінити налаштування\n" +" додатка DNA вручну. Зокрема, слід внести зміни до атрибута 'cn=Posix\n" +" IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' " +"відповідно\n" +" до параметрів нового діапазону.\n" +"=======\n" +" " + +msgid "Delete an ID range." +msgstr "Вилучити діапазон ідентифікаторів." + +msgid "Search for ranges." +msgstr "Шукати діапазони." + +msgid "" +"\n" +"Modify ID range.\n" +"\n" +"=======\n" +"WARNING:\n" +"\n" +"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " +"the\n" +"local domain. Currently the DNA plugin *cannot* be reconfigured itself " +"based\n" +"on the local ranges set via this family of commands.\n" +"\n" +"Manual configuration change has to be done in the DNA plugin configuration " +"for\n" +"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" +"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " +"be\n" +"modified to match the new range.\n" +"=======\n" +" " +msgstr "" +"\n" +"Змінити діапазон ідентифікаторів.\n" +"\n" +"=======\n" +"ПОПЕРЕДЖЕННЯ:\n" +"\n" +"Додаток DNA у 389-ds розподілятиме ідентифікатори на основі діапазонів,\n" +"налаштованих для локального домену. У поточній версії додаток DNA *не може*\n" +"переналаштуватися на основі локальних діапазонів, встановлених цим\n" +"сімейством команд.\n" +"\n" +"Для використання нового локального діапазону до налаштувань додатка DNA\n" +"слід внести зміни вручну. Зокрема, слід змінити атрибут dnaNextRange " +"'cn=Posix\n" +"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' так, щоб\n" +"він відповідав новому діапазону.\n" +"=======\n" +" " + +msgid "Display information about a range." +msgstr "Показати дані щодо діапазону." + +msgid "" +"\n" +"Services\n" +"\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" +"\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" +"\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" +"\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" +"\n" +" Override a default list of supported PAC types for the service:\n" +" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n" +"\n" +" A typical use case where overriding the PAC type is needed is NFS.\n" +" Currently the related code in the Linux kernel can only handle Kerberos\n" +" tickets up to a maximal size. Since the PAC data can become quite large " +"it\n" +" is recommended to set --pac-type=NONE for NFS services.\n" +"\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" +"\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" +"\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" +"\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +"\n" +" Allow user to create a keytab:\n" +" ipa service-allow-create-keytab HTTP/web.example.com --users=tuser1\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" +msgstr "" +"\n" +"Служби\n" +"\n" +"Служба IPA — це служба, що працює на вузлі системи. У записі служби\n" +"IPA можуть зберігатися дані реєстраційного запису Kerberos, сертифікат\n" +"SSL або обидва набори даних.\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" +"\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" +" Перевизначити типовий список підтримуваних типів PAC для служби:\n" +" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n" +"\n" +" Типовим випадком, коли потрібне перевизначення типу PAC є NFS.\n" +" У поточній версії ядра Linux відповідний код може працювати лише з\n" +" квитками Kerberos, розмір яких не перевищує максимально заданого.\n" +" Оскільки дані PAC можуть бути доволі об’ємними, для служб NFS\n" +" рекомендуємо встановити --pac-type=NONE.\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" +" Дозволити користувачеві створювати сховище ключів:\n" +" ipa service-allow-create-keytab HTTP/web.example.com --users=tuser1\n" +"\n" +" Створити і отримати вміст сховища ключів для служби IPA:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/" +"httpd.keytab\n" + +msgid "Principal" +msgstr "Реєстраційний запис" + +msgid "Service principal" +msgstr "Реєстраційний запис служби" + +msgid "Certificate" +msgstr "Сертифікат" + +msgid "Base-64 encoded server certificate" +msgstr "Сертифікат сервера у кодуванні Base-64" + +msgid "PAC type" +msgstr "Тип PAC" + +msgid "" +"Override default list of supported PAC types. Use 'NONE' to disable PAC " +"support for this service, e.g. this might be necessary for NFS services." +msgstr "" +"Перевизначити типовий список підтримуваних типів PAC. Скористайтеся " +"значенням «NONE», щоб вимкнути підтримку PAC для цієї служби. Це, наприклад, " +"може бути необхідним для служб NFS." + +msgid "Requires pre-authentication" +msgstr "Вимагає попереднього розпізнавання" + +msgid "Pre-authentication is required for the service" +msgstr "Для роботи з цією службою потрібне попереднє розпізнавання" + +msgid "Trusted for delegation" +msgstr "Довірено для уповноваження" + +msgid "Client credentials may be delegated to the service" +msgstr "Реєстраційні дані клієнта може бути передано службі" + +msgid "Roles" +msgstr "Ролі" + +msgid "Keytab" +msgstr "Таблиця ключів" + +msgid "Managed by" +msgstr "Керується" + +msgid "Users allowed to retrieve keytab" +msgstr "Користувачі, яким дозволено отримувати таблицю ключів" + +msgid "Groups allowed to retrieve keytab" +msgstr "Групи, яким дозволено отримувати таблицю ключів" + +msgid "Hosts allowed to retrieve keytab" +msgstr "Вузли, яким дозволено отримувати таблицю ключів" + +msgid "Host Groups allowed to retrieve keytab" +msgstr "Групи вузлів, яким дозволено отримувати таблицю ключів" + +msgid "Users allowed to create keytab" +msgstr "Користувачі, яким дозволено створення таблиці ключів" + +msgid "Groups allowed to create keytab" +msgstr "Групи, яким дозволено створення таблиці ключів" + +msgid "Hosts allowed to create keytab" +msgstr "Вузли, яким дозволено створення таблиці ключів" + +msgid "Host Groups allowed to create keytab" +msgstr "Групи вузлів, яким дозволено створення таблиці ключів" + +msgid "Add a new IPA new service." +msgstr "Додати нову службу IPA." + +msgid "Force" +msgstr "Примусово" + +msgid "force principal name even if not in DNS" +msgstr "" +"примусове значення назви реєстраційного запису, навіть якщо назви немає у DNS" + +msgid "Add new certificates to a service" +msgstr "Додати нові сертифікати до запису служби" + +msgid "Add hosts that can manage this service." +msgstr "Додати вузли, які можуть керувати цією службою." + +msgid "" +"Allow users, groups, hosts or host groups to create a keytab of this service." +msgstr "" +"Дозволити користувачам, групам, вузлам і групам вузлів створювати таблицю " +"ключів цієї служби." + +msgid "" +"Allow users, groups, hosts or host groups to retrieve a keytab of this " +"service." +msgstr "" +"Дозволити користувачам, групам, вузлам і групам вузлів отримувати таблицю " +"ключів цієї служби." + +msgid "Delete an IPA service." +msgstr "Вилучити службу IPA." + +msgid "Disable the Kerberos key and SSL certificate of a service." +msgstr "Вимкнути ключ Kerberos і сертифікат SSL служби." + +msgid "" +"Disallow users, groups, hosts or host groups to create a keytab of this " +"service." +msgstr "" +"Заборонити користувачам, групам, вузлам і групам вузлів створювати таблицю " +"ключів цієї служби." + +msgid "" +"Disallow users, groups, hosts or host groups to retrieve a keytab of this " +"service." +msgstr "" +"Заборонити користувачам, групам, вузлам і групам вузлів отримувати таблицю " +"ключів цієї служби." + +msgid "Search for IPA services." +msgstr "Знайти служби IPA." + +msgid "Results should contain primary key attribute only (\"principal\")" +msgstr "Результати мають містити лише атрибут основного ключа («principal»)" + +msgid "Search for services with these managed by hosts." +msgstr "Шукати служби із цими керованими вузлами." + +msgid "Search for services without these managed by hosts." +msgstr "Шукати служби без цих керованих вузлів." + +msgid "Modify an existing IPA service." +msgstr "Змінити вже створену службу IPA." + +msgid "Remove certificates from a service" +msgstr "Вилучити сертифікати із запису служби" + +msgid "Remove hosts that can manage this service." +msgstr "Вилучити вузли, які можуть керувати цією службою." + +msgid "Display information about an IPA service." +msgstr "Показати дані щодо служби IPA." + +msgid "file to store certificate in" +msgstr "файл, у якому зберігатимуться дані сертифіката" + +msgid "" +"\n" +"Raise the IPA Domain Level.\n" +msgstr "" +"\n" +"Підняти рівень домену IPA.\n" + +msgid "Query current Domain Level." +msgstr "Надіслати запити щодо поточного рівня домену." + +msgid "Current domain level:" +msgstr "Поточний рівень домену:" + +msgid "Change current Domain Level." +msgstr "Змінити поточний рівень домену." + +msgid "Domain Level" +msgstr "Рівень домену" + +msgid "" +"\n" +"Host-based access control\n" +"\n" +"Control who can access what services on what hosts. You\n" +"can use HBAC to control which users or groups can\n" +"access a service, or group of services, on a target host.\n" +"\n" +"You can also specify a category of users and target hosts.\n" +"This is currently limited to \"all\", but might be expanded in the\n" +"future.\n" +"\n" +"Target hosts in HBAC rules must be hosts managed by IPA.\n" +"\n" +"The available services and groups of services are controlled by the\n" +"hbacsvc and hbacsvcgroup plug-ins respectively.\n" +"\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 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 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 --hbacsvcs=sftp ftpers\n" +" ipa hbacrule-add --hostcat=all john_ftp\n" +" ipa hbacrule-add-user --users=john john_ftp\n" +" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" +"\n" +" 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 --usercat=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 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 --hbacsvcs=sftp ftpers\n" +" ipa hbacrule-add --type=allow --hostcat=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" + +msgid "Rule type" +msgstr "Тип правила" + +msgid "Rule type (allow)" +msgstr "Тип правила (allow)" + +msgid "Service category" +msgstr "Категорія служб" + +msgid "Service category the rule applies to" +msgstr "Категорія служб, до якої застосовується правило" + +msgid "Services" +msgstr "Служби" + +msgid "Service Groups" +msgstr "Групи служб" + +msgid "Create a new HBAC rule." +msgstr "Створити правило HBAC." + +msgid "Add target hosts and hostgroups to an HBAC rule." +msgstr "Додати вузли призначення та групи вузлів до правила HBAC." + +msgid "Add services to an HBAC rule." +msgstr "Додати служби до правила HBAC." + +msgid "member HBAC service" +msgstr "служба HBAC учасника" + +msgid "HBAC services to add" +msgstr "служби HBAC для додавання" + +msgid "member HBAC service group" +msgstr "група служб учасника HBAC" + +msgid "HBAC service groups to add" +msgstr "група служб HBAC для додавання" + +msgid "Add users and groups to an HBAC rule." +msgstr "Додати користувачів та групи до правила HBAC." + +msgid "Delete an HBAC rule." +msgstr "Вилучити правило HBAC." + +msgid "Disable an HBAC rule." +msgstr "Вимкнути правило HBAC." + +msgid "Enable an HBAC rule." +msgstr "Увімкнути правило HBAC." + +msgid "Search for HBAC rules." +msgstr "Шукати правила HBAC." + +msgid "Modify an HBAC rule." +msgstr "Змінити правило HBAC." + +msgid "Remove target hosts and hostgroups from an HBAC rule." +msgstr "Вилучити вузли призначення та групи вузлів з правила HBAC." + +msgid "Remove service and service groups from an HBAC rule." +msgstr "Вилучити служби та групи служб з правила HBAC." + +msgid "HBAC services to remove" +msgstr "служби HBAC для вилучення" + +msgid "HBAC service groups to remove" +msgstr "групи служб HBAC для вилучення" + +msgid "Remove users and groups from an HBAC rule." +msgstr "Вилучити користувачів і групи з правила HBAC." + +msgid "Display the properties of an HBAC rule." +msgstr "Показати властивості правила HBAC." + +msgid "RPC command used to log the current user out of their session." +msgstr "" +"Команда RPC, яка використовується для завершення сеансу поточного " +"користувача." + +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" + +msgid "Privilege name" +msgstr "Назва привілею" + +msgid "Privilege description" +msgstr "Опис привілею" + +msgid "Granting privilege to roles" +msgstr "Надання привілеїв ролям" + +msgid "Add a new privilege." +msgstr "Додати новий привілей." + +msgid "Add members to a privilege." +msgstr "Додати учасників до запису привілею." + +msgid "member role" +msgstr "роль учасника" + +msgid "roles to add" +msgstr "ролі для додавання" + +msgid "Add permissions to a privilege." +msgstr "Додати права доступу до привілею." + +msgid "permission" +msgstr "права доступу" + +msgid "permissions" +msgstr "права доступу" + +msgid "Number of permissions added" +msgstr "Кількість доданих прав доступу" + +msgid "Delete a privilege." +msgstr "Вилучити привілей." + +msgid "Search for privileges." +msgstr "Знайти привілеї." + +msgid "Modify a privilege." +msgstr "Змінити привілей." + +msgid "Rename the privilege object" +msgstr "Перейменувати об’єкт привілеїв" + +msgid "Remove members from a privilege" +msgstr "Вилучити учасників з запису привілеїв" + +msgid "roles to remove" +msgstr "ролі для вилучення" + +msgid "Remove permissions from a privilege." +msgstr "Вилучити права доступу з привілею." + +msgid "Number of permissions removed" +msgstr "Кількість вилучених записів прав доступу" + +msgid "Display information about a privilege." +msgstr "Показати дані щодо привілею." + +msgid "" +"\n" +"Realm domains\n" +"\n" +"Manage the list of domains associated with IPA realm.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Display the current list of realm domains:\n" +" ipa realmdomains-show\n" +"\n" +" Replace the list of realm domains:\n" +" ipa realmdomains-mod --domain=example.com\n" +" ipa realmdomains-mod --domain={example1.com,example2.com,example3.com}\n" +"\n" +" Add a domain to the list of realm domains:\n" +" ipa realmdomains-mod --add-domain=newdomain.com\n" +"\n" +" Delete a domain from the list of realm domains:\n" +" ipa realmdomains-mod --del-domain=olddomain.com\n" +msgstr "" +"\n" +"Домени області\n" +"\n" +"Керування списком доменів, пов’язаних з областю IPA.\n" +"\n" +"ПРИКЛАДИ:\n" +"\n" +" Показати поточний список доменів області:\n" +" ipa realmdomains-show\n" +"\n" +" Замірити список доменів області:\n" +" ipa realmdomains-mod --domain=example.com\n" +" ipa realmdomains-mod --domain={example1.com,example2.com,example3.com}\n" +"\n" +" Додати домен до списку доменів області:\n" +" ipa realmdomains-mod --add-domain=newdomain.com\n" +"\n" +" Вилучити домен зі списку доменів області:\n" +" ipa realmdomains-mod --del-domain=olddomain.com\n" + +msgid "Domain" +msgstr "Домен" + +msgid "Add domain" +msgstr "Додати домен" + +msgid "Delete domain" +msgstr "Вилучити домен" + +msgid "Modify realm domains." +msgstr "Змінити домени області." + +msgid "Force adding domain even if not in DNS" +msgstr "Примусове додавання домену, навіть якщо назви немає у DNS" + +msgid "Display the list of realm domains." +msgstr "Показати список доменів області." + +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" +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" + +msgid "Service name" +msgstr "Назва служби" + +msgid "HBAC service" +msgstr "Служба HBAC" + +msgid "HBAC service description" +msgstr "Опис служби HBAC" + +msgid "Member of HBAC service groups" +msgstr "Учасник груп служб HBAC" + +msgid "Add a new HBAC service." +msgstr "Додати нову службу HBAC." + +msgid "Delete an existing HBAC service." +msgstr "Вилучити вже створену службу HBAC." + +msgid "Search for HBAC services." +msgstr "Шукати служби HBAC." + +msgid "Results should contain primary key attribute only (\"service\")" +msgstr "Результати мають містити лише атрибут основного ключа («service»)" + +msgid "Modify an HBAC service." +msgstr "Змінити службу HBAC." + +msgid "Display information about an HBAC service." +msgstr "Показати дані щодо служби HBAC." + +msgid "" +"\n" +"Stageusers\n" +"\n" +"Manage stage user entries.\n" +"\n" +"Stage user entries are directly under the container: \"cn=stage users,\n" +"cn=accounts, cn=provisioning, SUFFIX\".\n" +"User can not authenticate with those entries (even if the entries\n" +"contain credentials) and are candidate to become Active entries.\n" +"\n" +"Active user entries are Posix users directly under the container: " +"\"cn=accounts, SUFFIX\".\n" +"User can authenticate with Active entries, at the condition they have\n" +"credentials\n" +"\n" +"Delete user entries are Posix users directly under the container: " +"\"cn=deleted users,\n" +"cn=accounts, cn=provisioning, SUFFIX\".\n" +"User can not authenticate with those entries (even if the entries contain " +"credentials)\n" +"\n" +"The stage user container contains entries\n" +" - created by 'stageuser-add' commands that are Posix users\n" +" - created by external provisioning system\n" +"\n" +"A valid stage user entry MUST:\n" +" - entry RDN is 'uid'\n" +" - ipaUniqueID is 'autogenerate'\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" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new stageuser:\n" +" ipa stageuser-add --first=Tim --last=User --password tuser1\n" +"\n" +" Add a stageuser from the Delete container\n" +" ipa stageuser-add --first=Tim --last=User --from-delete tuser1\n" +msgstr "" +"\n" +"Користувачі етапу\n" +"\n" +"Керування записами користувачів етапу.\n" +"\n" +"Записи користувачів етапу перебувають безпосередньо у контейнері:\n" +"\"cn=stage users, cn=accounts, cn=provisioning, SUFFIX\".\n" +"Користувач не може пройти розпізнавання за допомогою цих записів\n" +"(навіть якщо записи містять реєстраційні дані) і є кандидатами на\n" +"перетворення на активні записи.\n" +"\n" +"Записи активних користувачів є користувачами Posix, що перебувають\n" +"безпосередньо у контейнері: \"cn=accounts, SUFFIX\".\n" +"Користувач може пройти розпізнавання за допомогою активних записів,\n" +"якщо для них передбачено реєстраційні дані\n" +"\n" +"Вилучені записи користувачів є записами користувачів Posix, що\n" +"перебувають безпосередньо у контейнері: \"cn=deleted users,\n" +"cn=accounts, cn=provisioning, SUFFIX\".\n" +"Користувачі не можуть проходити розпізнавання за допомогою цих\n" +"записів (навіть якщо записи містять реєстраційні дані)\n" +"\n" +"Контейнер користувачів етапу містить записи\n" +" - створені командами 'stageuser-add', які є користувачами Posix\n" +" - створені зовнішньою системою забезпечення\n" +"\n" +"Коректний запис користувача етапу МАЄ відповідати таким вимогам:\n" +" - RDN запису має значення 'uid'\n" +" - ipaUniqueID має значення 'autogenerate'\n" +"\n" +"У IPA передбачено підтримку широкого діапазону форматів імен користувачів,\n" +"але слід зважати на різноманітні обмеження, які можуть стосуватися " +"середовища,\n" +"у якому ви працюєте. Наприклад, імена користувачів, що починаються з цифри,\n" +"або імена користувачів, довжина яких перевищує певну довжину, що може\n" +"призвести до проблем у деяких системах UNIX.\n" +"Для зміни формату, який дозволено інструментами IPA, скористайтеся командою\n" +"'ipa config-mod'.\n" +"\n" +"\n" +"ПРИКЛАДИ:\n" +"\n" +" Додати нового користувача етапу:\n" +" ipa stageuser-add --first=Tim --last=User --password tuser1\n" +"\n" +" Додати користувача етапу з контейнера Delete\n" +" ipa stageuser-add --first=Tim --last=User --from-delete tuser1\n" + +msgid "First name" +msgstr "Ім'я" + +msgid "Last name" +msgstr "Прізвище" + +msgid "Full name" +msgstr "Повне ім’я" + +msgid "Display name" +msgstr "Екранне ім'я" + +msgid "Initials" +msgstr "Ініціали" + +msgid "Kerberos principal" +msgstr "Реєстраційний запис Kerberos" + +msgid "Kerberos principal expiration" +msgstr "Завершення строку дії реєстраційного запису Kerberos" + +msgid "Email address" +msgstr "Адреса ел. пошти" + +msgid "Password" +msgstr "Пароль" + +msgid "Prompt to set the user password" +msgstr "Надіслати запит щодо встановлення пароля користувача" + +msgid "Generate a random user password" +msgstr "Створити випадковий пароль для користувача" + +msgid "Random password" +msgstr "Випадковий пароль" + +msgid "User ID Number (system will assign one if not provided)" +msgstr "" +"Ідентифікаційний номер користувача (система призначить його, якщо не буде " +"вказано)" + +msgid "Street address" +msgstr "Вулиця і будинок" + +msgid "City" +msgstr "Місто" + +msgid "State/Province" +msgstr "Область/провінція" + +msgid "ZIP" +msgstr "Індекс" + +msgid "Telephone Number" +msgstr "Номер телефону" + +msgid "Mobile Telephone Number" +msgstr "Номер мобільного телефону" + +msgid "Pager Number" +msgstr "Номер пейджера" + +msgid "Fax Number" +msgstr "Номер факсу" + +msgid "Org. Unit" +msgstr "Підрозділ" + +msgid "Job Title" +msgstr "Посада" + +msgid "Manager" +msgstr "Керівник" + +msgid "Car License" +msgstr "Водійська ліцензія" + +msgid "User authentication types" +msgstr "Типи розпізнавання користувачів" + +msgid "Types of supported user authentication" +msgstr "Типи підтримуваного розпізнавання користувачів" + +msgid "Class" +msgstr "Клас" + +msgid "" +"User category (semantics placed on this attribute are for local " +"interpretation)" +msgstr "" +"Категорія вузлів (семантику цього атрибуту призначено для локальної обробки)" + +msgid "RADIUS proxy configuration" +msgstr "Налаштування проксі RADIUS" + +msgid "RADIUS proxy username" +msgstr "Ім’я користувача проксі-сервера RADIUS" + +msgid "Department Number" +msgstr "Номер відділу" + +msgid "Employee Number" +msgstr "Номер працівника" + +msgid "Employee Type" +msgstr "Тип працівника" + +msgid "Preferred Language" +msgstr "Бажана мова" + +msgid "Member of groups" +msgstr "Групи «member of»" + +msgid "Member of Sudo rule" +msgstr "Правило Sudo «member of»" + +msgid "Member of HBAC rule" +msgstr "Правило HBAC «member of»" + +msgid "Indirect Member of group" +msgstr "Опосередкована група «member of»" + +msgid "Indirect Member of netgroup" +msgstr "Опосередкована група «member of»" + +msgid "Indirect Member of role" +msgstr "Опосередкована роль «member of»" + +msgid "Indirect Member of Sudo rule" +msgstr "Опосередковане правило sudo «member of»" + +msgid "Indirect Member of HBAC rule" +msgstr "Опосередковане правило HBAC «member of»" + +msgid "Kerberos keys available" +msgstr "Доступні ключі Kerberos" + +msgid "Activate a stage user." +msgstr "Активувати користувача етапу." + +msgid "Add a new stage user." +msgstr "Додати нового користувача етапу." + +msgid "Create Stage user in from a delete user" +msgstr "" +"Створити запис користувача етапу на основі вилученого запису користувача" + +msgid "Add a manager to the stage user entry" +msgstr "Додати керування до запису користувача етапу" + +msgid "Delete a stage user." +msgstr "Вилучити запис користувача етапу." + +msgid "Search for stage users." +msgstr "Шукати записи користувачів етапу." + +msgid "Results should contain primary key attribute only (\"login\")" +msgstr "Результати мають містити лише атрибут основного ключа («login»)" + +msgid "Search for stage users with these member of groups." +msgstr "Шукати користувачів етапу із вказаними групами участі." + +msgid "Search for stage users without these member of groups." +msgstr "Шукати користувачів етапу без вказаних груп участі." + +msgid "Search for stage users with these member of netgroups." +msgstr "Шукати користувачів етапу із вказаними мережевими групами участі." + +msgid "Search for stage users without these member of netgroups." +msgstr "Шукати користувачів етапу без вказаних мережевих груп участі." + +msgid "role" +msgstr "роль" + +msgid "Search for stage users with these member of roles." +msgstr "Шукати користувачів етапу із вказаними ролями участі." + +msgid "Search for stage users without these member of roles." +msgstr "Шукати користувачів етапу без вказаних ролей участі." + +msgid "HBAC rule" +msgstr "Правило HBAC" + +msgid "Search for stage users with these member of HBAC rules." +msgstr "Шукати користувачів етапу із цими правилами HBAC участі." + +msgid "Search for stage users without these member of HBAC rules." +msgstr "Шукати користувачів етапу без цих правил HBAC участі." + +msgid "sudo rule" +msgstr "правило sudo" + +msgid "Search for stage users with these member of sudo rules." +msgstr "Шукати користувачів етапу із цими правилами sudo участі." + +msgid "Search for stage users without these member of sudo rules." +msgstr "Шукати користувачів етапу без цих правил sudo участі." + +msgid "Modify a stage user." +msgstr "Змінити запис користувача етапу." + +msgid "Rename the stage user object" +msgstr "Перейменувати об’єкт користувача етапу" + +msgid "Remove a manager to the stage user entry" +msgstr "Вилучити керування із запису користувача етапу" + +msgid "Display information about a stage user." +msgstr "Показати дані щодо користувача етапу." + +msgid "" +"\n" +"RADIUS Proxy Servers\n" +"\n" +"Manage RADIUS Proxy Servers.\n" +"\n" +"IPA supports the use of an external RADIUS proxy server for krb5 OTP\n" +"authentications. This permits a great deal of flexibility when\n" +"integrating with third-party authentication services.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new server:\n" +" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" +"\n" +" Find all servers whose entries include the string \"example.com\":\n" +" ipa radiusproxy-find example.com\n" +"\n" +" Examine the configuration:\n" +" ipa radiusproxy-show MyRADIUS\n" +"\n" +" Change the secret:\n" +" ipa radiusproxy-mod MyRADIUS --secret\n" +"\n" +" Delete a configuration:\n" +" ipa radiusproxy-del MyRADIUS\n" +msgstr "" +"\n" +"Проксі-сервери RADIUS\n" +"\n" +"Керування проксі-серверами RADIUS.\n" +"\n" +"У IPA передбачено підтримку зовнішнього проксі-сервера RADIUS для\n" +"виконання розпізнавання OTP krb5. Це надає системі значної гнучкості\n" +"з метою інтеграції зі сторонніми службами розпізнавання.\n" +"\n" +"ПРИКЛАДИ:\n" +"\n" +" Додати новий сервер:\n" +" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" +"\n" +" Знайти усі сервери, чиї запис містять рядок «example.com»:\n" +" ipa radiusproxy-find example.com\n" +"\n" +" Перевірити налаштування:\n" +" ipa radiusproxy-show MyRADIUS\n" +"\n" +" Змінити реєстраційні дані:\n" +" ipa radiusproxy-mod MyRADIUS --secret\n" +"\n" +" Вилучити налаштування:\n" +" ipa radiusproxy-del MyRADIUS\n" + +msgid "RADIUS proxy server name" +msgstr "Назва проксі-сервера RADIUS" + +msgid "A description of this RADIUS proxy server" +msgstr "Опис цього проксі-сервера RADIUS" + +msgid "Server" +msgstr "Сервер" + +msgid "The hostname or IP (with or without port)" +msgstr "Назва вузла або IP-адреса (з портом або без порту)" + +msgid "Secret" +msgstr "Ключ" + +msgid "The secret used to encrypt data" +msgstr "Ключ, який використовується для шифрування даних" + +msgid "Timeout" +msgstr "Час очікування" + +msgid "The total timeout across all retries (in seconds)" +msgstr "Загальний час очікування за усіма спробами (у секундах)" + +msgid "Retries" +msgstr "Кількість спроб" + +msgid "The number of times to retry authentication" +msgstr "Кількість спроб пройти розпізнавання" + +msgid "User attribute" +msgstr "Атрибут користувача" + +msgid "The username attribute on the user object" +msgstr "Атрибут імені користувача об’єкта користувача" + +msgid "Add a new RADIUS proxy server." +msgstr "Додати новий проксі-сервер RADIUS." + +msgid "Delete a RADIUS proxy server." +msgstr "Вилучити проксі-сервер RADIUS." + +msgid "Search for RADIUS proxy servers." +msgstr "Шукати проксі-сервери RADIUS." + +msgid "Modify a RADIUS proxy server." +msgstr "Змінити запис проксі-сервера RADIUS." + +msgid "Rename the RADIUS proxy server object" +msgstr "Перейменувати об’єкт проксі-сервера RADIUS" + +msgid "Display information about a RADIUS proxy server." +msgstr "Показати дані щодо проксі-сервера RADIUS." + +msgid "" +"\n" +"Misc plug-ins\n" +msgstr "" +"\n" +"Інші додатки\n" + +msgid "Show environment variables." +msgstr "Показати змінні середовища." + +msgid "Forward to server instead of running locally" +msgstr "Переспрямувати на сервер замість локального виконання" + +msgid "" +"retrieve and print all attributes from the server. Affects command output." +msgstr "" +"отримати і вивести всі атрибути з сервера. Стосується лише виводу команд." + +msgid "Dictionary mapping variable name to value" +msgstr "Відображення назви змінної на значення за словником" + +msgid "Total number of variables env (>= count)" +msgstr "Кількість змінних env (>= count)" + +msgid "Number of variables returned (<= total)" +msgstr "Кількість повернутих змінних (<= загальної)" + +msgid "Show all loaded plugins." +msgstr "Показати список завантажених додатків." + +msgid "Dictionary mapping plugin names to bases" +msgstr "Словник для встановлення відповідності назв додатків основним" + +msgid "Number of plugins loaded" +msgstr "Кількість завантажених додатків" + +msgid "" +"\n" +"Manage Certificate Profiles\n" +"\n" +"Certificate Profiles are used by Certificate Authority (CA) in the signing " +"of\n" +"certificates to determine if a Certificate Signing Request (CSR) is " +"acceptable,\n" +"and if so what features and extensions will be present on the certificate.\n" +"\n" +"The Certificate Profile format is the property-list format understood by " +"the\n" +"Dogtag or Red Hat Certificate System CA.\n" +"\n" +"PROFILE ID SYNTAX:\n" +"\n" +"A Profile ID is a string without spaces or punctuation starting with a " +"letter\n" +"and followed by a sequence of letters, digits or underscore (\"_\").\n" +"\n" +"EXAMPLES:\n" +"\n" +" Import a profile that will not store issued certificates:\n" +" ipa certprofile-import ShortLivedUserCert --file UserCert.profile " +"--desc \"User Certificates\" --store=false\n" +"\n" +" Delete a certificate profile:\n" +" ipa certprofile-del ShortLivedUserCert\n" +"\n" +" Show information about a profile:\n" +" ipa certprofile-show ShortLivedUserCert\n" +"\n" +" Save profile configuration to a file:\n" +" ipa certprofile-show caIPAserviceCert --out caIPAserviceCert.cfg\n" +"\n" +" Search for profiles that do not store certificates:\n" +" ipa certprofile-find --store=false\n" +"\n" +"PROFILE CONFIGURATION FORMAT:\n" +"\n" +"The profile configuration format is the raw property-list format\n" +"used by Dogtag Certificate System. The XML format is not supported.\n" +"\n" +"The following restrictions apply to profiles managed by FreeIPA:\n" +"\n" +"- When importing a profile the \"profileId\" field, if present, must\n" +" match the ID given on the command line.\n" +"\n" +"- The \"classId\" field must be set to \"caEnrollImpl\"\n" +"\n" +"- The \"auth.instance_id\" field must be set to \"raCertAuth\"\n" +"\n" +"- The \"certReqInputImpl\" input class and \"certOutputImpl\" output\n" +" class must be used.\n" +msgstr "" +"\n" +"Керування профілями сертифікатів\n" +"\n" +"Профілі сертифікатів використовуються службами сертифікації (CA) під час\n" +"підписування сертифікатів для визначення того, чи є прийнятним запит на\n" +"підписування сертифіката (CSR), і, якщо це так, визначення можливостей\n" +"і розширень, які буде надано сертифікатом.\n" +"\n" +"Форматом профілю сертифікатів є список значень, які може обробляти\n" +"Dogtag або система сертифікації служби сертифікації Red Hat.\n" +"\n" +"СИНТАКСИС ІДЕНТИФІКАТОРА ПРОФІЛЮ:\n" +"\n" +"Ідентифікатор профілю — рядок без пробілів і символів пунктуації,\n" +"що починається з літери і складається з послідовності літер, цифр, та " +"символів підкреслювання («_»).\n" +"\n" +"ПРИКЛАДИ:\n" +"\n" +" Імпортувати профіль, у якому не зберігатимуться видані сертифікати:\n" +" ipa certprofile-import ShortLivedUserCert \\\n" +" --file UserCert.profile --summary \"User Certificates\" \\\n" +" --store=false\n" +"\n" +" Вилучити профіль сертифікатів:\n" +" ipa certprofile-del ShortLivedUserCert\n" +"\n" +" Показати дані щодо профілю:\n" +" ipa certprofile-show ShortLivedUserCert\n" +"\n" +" Зберегти налаштування профілю до файла:\n" +" ipa certprofile-show caIPAserviceCert --out caIPAserviceCert.cfg\n" +"\n" +" Шукати профілі, у яких не зберігаються сертифікати:\n" +" ipa certprofile-find --store=false\n" +"\n" +"ФОРМАТ НАЛАШТУВАНЬ ПРОФІЛЮ:\n" +"\n" +"Налаштування профілю зберігаються у вигляді простого списку\n" +"властивостей, що використовується системою сертифікації Dogtag.\n" +"Підтримки формату XML не передбачено.\n" +"\n" +"Профілів, які керуються FreeIPA, стосуються такі обмеження:\n" +"\n" +"- Під час імпортування профілю поле «profileId», якщо таке є, має\n" +" містити значення, що збігається з ідентифікатором, вказаним у рядку " +"команди.\n" +"\n" +"- Значенням поля «classId» має бути «caEnrollImpl»\n" +"\n" +"- Значенням поля «auth.instance_id» має бути «raCertAuth»\n" +"\n" +"- Має бути використано вхідний клас «certReqInputImpl» і вихідний\n" +" клас «certOutputImpl».\n" + +msgid "Profile ID" +msgstr "Ід. профілю" + +msgid "Profile ID for referring to this profile" +msgstr "Ідентифікатор профілю для посилання на цей профіль" + +msgid "Profile description" +msgstr "Опис профілю" + +msgid "Brief description of this profile" +msgstr "Короткий опис профілю" + +msgid "Store issued certificates" +msgstr "Зберігати видані сертифікати" + +msgid "Whether to store certs issued using this profile" +msgstr "" +"Визначає, чи слід зберігати сертифікати, видані за допомогою цього профілю" + +msgid "Delete a Certificate Profile." +msgstr "Вилучити профіль сертифікатів." + +msgid "Search for Certificate Profiles." +msgstr "Шукати профілі сертифікатів." + +msgid "Results should contain primary key attribute only (\"id\")" +msgstr "Результати мають містити лише атрибут основного ключа («id»)" + +msgid "Import a Certificate Profile." +msgstr "Імпортувати профіль сертифікатів." + +msgid "Filename of a raw profile. The XML format is not supported." +msgstr "" +"Назва файла профілю з необробленими даними. Підтримки формату XML не " +"передбачено." + +msgid "Modify Certificate Profile configuration." +msgstr "Змінити налаштування профілю сертифікатів." + +msgid "File containing profile configuration" +msgstr "Файл, який містить налаштування профілів" + +msgid "Display the properties of a Certificate Profile." +msgstr "Показати властивості профілю сертифікатів." + +msgid "Write profile configuration to file" +msgstr "Записати налаштування профілів до файла" + +msgid "" +"\n" +"OTP Tokens\n" +"\n" +"Manage OTP tokens.\n" +"\n" +"IPA supports the use of OTP tokens for multi-factor authentication. This\n" +"code enables the management of OTP tokens.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new token:\n" +" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" +"\n" +" Examine the token:\n" +" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" +"\n" +" Change the vendor:\n" +" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" +"\"\n" +"\n" +" Delete a token:\n" +" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" +msgstr "" +"\n" +"Жетони OTP\n" +"\n" +"Керування жетонами OTP.\n" +"\n" +"У IPA передбачено підтримку використання жетонів OTP для багатофакторного " +"розпізнавання.\n" +"За допомогою цього коду уможливлюється керування жетонами OTP.\n" +"\n" +" Додати новий жетон:\n" +" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" +"\n" +" Перевірити жетон:\n" +" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" +"\n" +" Змінити постачальника:\n" +" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" +"\"\n" +"\n" +" Вилучити жетон:\n" +" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" + +msgid "Unique ID" +msgstr "Унікальний ід." + +msgid "Type" +msgstr "Тип" + +msgid "Type of the token" +msgstr "Тип ключа" + +msgid "Token description (informational only)" +msgstr "Опис ключа (лише інформаційний)" + +msgid "Owner" +msgstr "Власник" + +msgid "Assigned user of the token (default: self)" +msgstr "Призначений користувач ключа (типове значення: self)" + +msgid "Assigned manager of the token (default: self)" +msgstr "Призначений керівник ключа (типове значення: self)" + +msgid "Disabled" +msgstr "Вимкнено" + +msgid "Mark the token as disabled (default: false)" +msgstr "Позначення ключа як вимкненого (типове значення: false)" + +msgid "Validity start" +msgstr "Початок чинності" + +msgid "First date/time the token can be used" +msgstr "Час початку використання ключа (дата і час)" + +msgid "Validity end" +msgstr "Завершення чинності" + +msgid "Last date/time the token can be used" +msgstr "Строк дії ключа (дата і час)" + +msgid "Vendor" +msgstr "Постачальник" + +msgid "Token vendor name (informational only)" +msgstr "Назва виробника ключа (лише інформація)" + +msgid "Model" +msgstr "Модель" + +msgid "Token model (informational only)" +msgstr "Модель ключа (лише інформація)" + +msgid "Serial" +msgstr "Серійний номер" + +msgid "Token serial (informational only)" +msgstr "Серійний номер ключа (лише інформація)" + +msgid "Key" +msgstr "Ключ" + +msgid "Token secret (Base32; default: random)" +msgstr "Пароль ключа (Base32; типове значення: випадковий)" + +msgid "Algorithm" +msgstr "Алгоритм" + +msgid "Token hash algorithm" +msgstr "Алгоритм хешування ключа" + +msgid "Digits" +msgstr "Цифри" + +msgid "Number of digits each token code will have" +msgstr "Кількість цифр у кожному з кодів ключа" + +msgid "Clock offset" +msgstr "Зсув годинника" + +msgid "TOTP token / FreeIPA server time difference" +msgstr "Часова розбіжність між ключем TOTP і сервером FreeIPA" + +msgid "Clock interval" +msgstr "Інтервал годинника" + +msgid "Length of TOTP token code validity" +msgstr "Тривалість чинності коду ключа TOTP" + +msgid "Counter" +msgstr "Лічильник" + +msgid "Initial counter for the HOTP token" +msgstr "Початковий лічильник для ключа HOTP" + +msgid "Add a new OTP token." +msgstr "Додати новий жетон OTP." + +msgid "(deprecated)" +msgstr "(застаріле)" + +msgid "Do not display QR code" +msgstr "Не показувати код QR" + +msgid "Add users that can manage this token." +msgstr "Додати записи користувачів, які можуть керувати цим жетоном." + +msgid "Delete an OTP token." +msgstr "Вилучити жетон OTP." + +msgid "Search for OTP token." +msgstr "Шукати жетон OTP." + +msgid "Modify a OTP token." +msgstr "Змінити жетон OTP." + +msgid "Rename the OTP token object" +msgstr "Перейменувати об’єкт жетона OTP" + +msgid "Remove users that can manage this token." +msgstr "Вилучити записи користувачів, які можуть керувати цим жетоном." + +msgid "Display information about an OTP token." +msgstr "Показати інформацію щодо жетона OTP." + +msgid "" +"\n" +"Plugins not accessible directly through the CLI, commands used internally\n" +msgstr "" +"\n" +"Інтерфейс командного рядка не надає безпосереднього доступу до додатків, " +"команди використано для внутрішньої обробки\n" + +msgid "Dict of I18N messages" +msgstr "Словник перекладених повідомлень" + +msgid "Export plugin meta-data for the webUI." +msgstr "Експортувати метадані додатка для webUI." + +msgid "Name of object to export" +msgstr "Назва об’єкта, який слід експортувати" + +msgid "Name of method to export" +msgstr "Назва методу, який буде експортовано" + +msgid "Name of command to export" +msgstr "Назва команди для експортування" + +msgid "Dict of JSON encoded IPA Objects" +msgstr "Словник закодованих JSON об’єктів IPA" + +msgid "Dict of JSON encoded IPA Methods" +msgstr "Словник JSON-закодованих методів IPA" + +msgid "Dict of JSON encoded IPA Commands" +msgstr "Словник закодованих JSON команд IPA" + +msgid "" +"\n" +"Auto Membership Rule.\n" +"\n" +"Bring clarity to the membership of hosts and users by configuring inclusive\n" +"or exclusive regex patterns, you can automatically assign a new entries " +"into\n" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup.\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"A default group or hostgroup could be specified for entries that do not\n" +"match any rule. In case of user entries this group will be a fallback group\n" +"because all users are by default members of group specified in IPA config.\n" +"\n" +"The automember-rebuild command can be used to retroactively run automember " +"rules\n" +"against existing entries, thus rebuilding their membership.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Add the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-" +"regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-" +"regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-" +"regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-" +"regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default (fallback) target group:\n" +" ipa automember-default-group-set --default-group=webservers --" +"type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Remove the default (fallback) target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default (fallback) target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" +"\n" +" Rebuild membership for all users:\n" +" ipa automember-rebuild --type=group\n" +"\n" +" Rebuild membership for all hosts:\n" +" ipa automember-rebuild --type=hostgroup\n" +"\n" +" Rebuild membership for specified users:\n" +" ipa automember-rebuild --users=tuser1 --users=tuser2\n" +"\n" +" Rebuild membership for specified hosts:\n" +" ipa automember-rebuild --hosts=web1.example.com --hosts=web2.example." +"com\n" +msgstr "" +"\n" +"Правило автоматичної участі.\n" +"\n" +"Внесіть ясність у правила участі вузлів та користувачів налаштовуванням\n" +"формальних виразів шаблонів включення або виключення. Ви можете автоматично\n" +"пов’язувати нові записи з групою або групою вузлів на основі даних щодо " +"атрибутів.\n" +"\n" +"Правило безпосередньо пов’язується з групою за назвою, отже ви не можете\n" +"створити правило без визначення групи або групи вузлів.\n" +"\n" +"Умова є формальним виразом, використовується 389-ds для встановлення\n" +"відповідності нового вхідного запису з правилом автоматичної участі.\n" +"Якщо умові відповідає правило включення, запис додається до відповідної\n" +"групи або групи вузлів.\n" +"\n" +"Можна визначити типову групу або групу вузлів, яку буде використано для\n" +"записів, які не відповідають жодному правилу. У випадку записів " +"користувачів\n" +"ця група буде резервною групою, оскільки усіх користувачі типово є " +"учасниками\n" +"групи, вказаної у налаштуваннях IPA.\n" +"\n" +"За допомогою програми automember-rebuild ви можете повторно застосувати " +"правила\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" +" 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" +" Група вузлів: webservers\n" +" Опис: Web Servers\n" +" Вузли-учасники: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Назва групи: devel\n" +" Опис: Developers\n" +" GID: 1004200000\n" +" Користувачі-учасники: 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" +"\n" +" Перебудувати записи участі для усіх користувачів:\n" +" ipa automember-rebuild --type=group\n" +"\n" +" Перебудувати записи участі для усіх вузлів:\n" +" ipa automember-rebuild --type=hostgroup\n" +"\n" +" Перебудувати записи участі для вказаних користувачів:\n" +" ipa automember-rebuild --users=tuser1 --users=tuser2\n" +"\n" +" Перебудувати записи участі для вказаних вузлів:\n" +" ipa automember-rebuild --hosts=web1.example.com --hosts=web2.example." +"com\n" + +msgid "A description of this auto member rule" +msgstr "Опис цього правила автоматичної участі" + +msgid "Default (fallback) Group" +msgstr "Типова (резервна) група" + +msgid "Default group for entries to land" +msgstr "Типова група для додавання записів" + +msgid "Add an automember rule." +msgstr "Додати правило автоматичної участі." + +msgid "Automember Rule" +msgstr "Правило автоматичної участі" + +msgid "Grouping Type" +msgstr "Тип групування" + +msgid "Grouping to which the rule applies" +msgstr "Групування, якого стосується правило" + +msgid "Add conditions to an automember rule." +msgstr "Додати умови до правила автоматичної участі." + +msgid "Inclusive Regex" +msgstr "Формальний вираз включення" + +msgid "Exclusive Regex" +msgstr "Формальний вираз виключення" + +msgid "Attribute Key" +msgstr "Ключ атрибута" + +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a " +"user" +msgstr "" +"Атрибут для фільтрування за формальним виразом. Приклад: fqdn для вузла або " +"manager для користувача" + +msgid "Conditions that could not be added" +msgstr "Умови, які не вдалося додати" + +msgid "Number of conditions added" +msgstr "Кількість доданих умов" + +msgid "Remove default (fallback) group for all unmatched entries." +msgstr "Вилучити типову (резервну) групу для невідповідних записів." + +msgid "Set default (fallback) group for all unmatched entries." +msgstr "Встановити типову (резервну) групу для невідповідних записів." + +msgid "Default (fallback) group for entries to land" +msgstr "Типова (резервна) група для додавання записів" + +msgid "Display information about the default (fallback) automember groups." +msgstr "Показати дані щодо типових (резервних) груп автоматичної участі." + +msgid "Delete an automember rule." +msgstr "Вилучити правило автоматичної участі." + +msgid "Search for automember rules." +msgstr "Шукати правила автоматичної участі." + +msgid "Modify an automember rule." +msgstr "Змінити правило автоматичної участі." + +msgid "Rebuild auto membership." +msgstr "Повторне збирання правил автоматичної участі." + +msgid "Rebuild membership for all members of a grouping" +msgstr "Повторне збирання правил участі для усіх учасників угрупування" + +msgid "Rebuild membership for specified users" +msgstr "Повторне збирання правил участі для вказаних користувачів" + +msgid "Rebuild membership for specified hosts" +msgstr "Повторне збирання правил участі для вказаних вузлів" + +msgid "No wait" +msgstr "Не чекати" + +msgid "Don't wait for rebuilding membership" +msgstr "Не чекати на завершення перебудови записів участі" + +msgid "Remove conditions from an automember rule." +msgstr "Вилучити умови з правила автоматичної участі." + +msgid "Conditions that could not be removed" +msgstr "Умови, які не вдалося вилучити" + +msgid "Number of conditions removed" +msgstr "Кількість вилучених умов" + +msgid "Display information about an automember rule." +msgstr "Показати дані щодо правила автоматичної участі." + +msgid "" +"\n" +"Permissions\n" +"\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable wrapper around a 389-ds Access Control Rule,\n" +"or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" +"\n" +"A permission may not contain other permissions.\n" +"\n" +"* A permission grants access to read, write, add, delete, read, search,\n" +" or compare.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" +"\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. search - search on one or more attributes\n" +"4. compare - compare one or more attributes\n" +"5. add - add a new entry to the tree\n" +"6. delete - delete an existing entry\n" +"7. all - all permissions are granted\n" +"\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. subtree: a DN; the permission applies to the subtree under this DN\n" +"2. target filter: an LDAP filter\n" +"3. target: DN with possible wildcards, specifies entries permission applies " +"to\n" +"\n" +"Additionally, there are the following convenience options.\n" +"Setting one of these options will set the corresponding attribute(s).\n" +"1. type: a type of object (user, group, etc); sets subtree and target " +"filter.\n" +"2. memberof: apply to members of a group; sets target filter\n" +"3. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership); sets target.\n" +"\n" +"Managed permissions\n" +"\n" +"Permissions that come with IPA by default can be so-called \"managed\"\n" +"permissions. These have a default set of attributes they apply to,\n" +"but the administrator can add/remove individual attributes to/from the set.\n" +"\n" +"Deleting or renaming a managed permission, as well as changing its target,\n" +"is not allowed.\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. search - пошук одного або декількох атрибутів\n" +"4. compare - порівняння одного або декількох атрибутів\n" +"5. add - додавання нового запису до ієрархії\n" +"6. delete - вилучення наявного запису\n" +"7. all - надати усі права доступу\n" +"\n" +"Зауважте відмінність між атрибутами і записами. Права доступу є " +"незалежними,\n" +"отже можливість додавання запису користувача не означає, що цей запис " +"згодом\n" +"буде придатним до редагування.\n" +"\n" +"Передбачено декілька можливих призначень:\n" +"1. subtree: DN; право доступу застосовується до піддерева DN\n" +"2. target filter: фільтр LDAP\n" +"3. target: DN з можливими символами-замінниками, що визначає записи, яких " +"стосуються права доступу\n" +"\n" +"Крім того, передбачено вказані нижче параметри.\n" +"Встановлення одного з цих параметрів призводить до встановлення відповідних " +"атрибутів.\n" +"1. type: тип об’єкта (користувач, група тощо); встановлює фільтрування за " +"піддеревом (subtree) та фільтрування за призначенням (target filter).\n" +"2. memberof: застосовувати до учасників групи; встановлює фільтр за " +"призначенням (target filter).\n" +"3. targetgroup: надає доступ до внесення змін до певної групи (зокрема, " +"доступ до\n" +" надання можливості керування участю у групі); встановлює призначення " +"(target).\n" +"\n" +"Керовані права доступу\n" +"\n" +"Права доступу, які типово встановлюються разом з IPA, можуть бути\n" +"так званими «керованим» правами доступу. Такі права доступу мають\n" +"типовий набір атрибутів, до яких вони застосовуються. Втім, адміністратор\n" +"може додавати або вилучати окремі атрибути набору.\n" +"\n" +"Вилучення або перейменування керованих прав доступу, а також зміну " +"призначення\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" + +msgid "Permission name" +msgstr "Назва прав доступу" + +msgid "Granted rights" +msgstr "Надані права" + +msgid "Rights to grant (read, search, compare, write, add, delete, all)" +msgstr "" +"Права доступу, які слід надати (read, search, compare, write, add, delete, " +"all)" + +msgid "Effective attributes" +msgstr "Ефективні атрибути" + +msgid "All attributes to which the permission applies" +msgstr "Усі атрибути, яких стосуються ці права доступу" + +msgid "Included attributes" +msgstr "Атрибути включення" + +msgid "User-specified attributes to which the permission applies" +msgstr "Вказані користувачем атрибути, до яких застосовується правило доступу" + +msgid "Excluded attributes" +msgstr "Атрибути виключення" + +msgid "" +"User-specified attributes to which the permission explicitly does not apply" +msgstr "" +"Вказані користувачем атрибути, до яких права доступу явним чином не " +"застосовуватимуться" + +msgid "Default attributes" +msgstr "Типові атрибути" + +msgid "Attributes to which the permission applies by default" +msgstr "Атрибути, до яких типово застосовується правило доступу" + +msgid "Bind rule type" +msgstr "Тип правила прив’язування" + +msgid "Subtree" +msgstr "Піддерево" + +msgid "Subtree to apply permissions to" +msgstr "Піддерево, до якого буде застосовано права доступу" + +msgid "Extra target filter" +msgstr "Додатковий фільтр призначення" + +msgid "Raw target filter" +msgstr "Фільтр призначення без обробки" + +msgid "All target filters, including those implied by type and memberof" +msgstr "" +"Усі фільтри призначення, зокрема ті, які визначаються типом та членством" + +msgid "Target DN" +msgstr "DN призначення" + +msgid "" +"Optional DN to apply the permission to (must be in the subtree, but may not " +"yet exist)" +msgstr "" +"Необов’язковий DN, до якого застосовуватимуться дозвіл (має належати до " +"піддерева, але може ще не існувати)" + +msgid "Target DN subtree" +msgstr "Піддерево DN призначення" + +msgid "" +"Optional DN subtree where an entry can be moved to (must be in the subtree, " +"but may not yet exist)" +msgstr "" +"Необов’язкове піддерево DN, куди має бути пересунуто запис (має належати до " +"піддерева, але може ще не існувати)" + +msgid "Origin DN subtree" +msgstr "Піддерево DN походження" + +msgid "" +"Optional DN subtree from where an entry can be moved (must be in the " +"subtree, but may not yet exist)" +msgstr "" +"Необов’язкове піддерево DN, звідки має бути пересунуто запис (має належати " +"до піддерева, але може ще не існувати)" + +msgid "Member of group" +msgstr "Учасник групи" + +msgid "Target members of a group (sets memberOf targetfilter)" +msgstr "Цільові учасники групи (встановлює фільтр призначення memberOf)" + +msgid "Target group" +msgstr "Цільова група" + +msgid "User group to apply permissions to (sets target)" +msgstr "" +"Група користувачів, до якої буде застосовано права доступу (встановлює " +"target)" + +msgid "Type of IPA object (sets subtree and objectClass targetfilter)" +msgstr "Тип об’єкта IPA (встановлює фільтри призначення subtree і objectClass)" + +msgid "Deprecated; use extratargetfilter" +msgstr "Вважається застарілою; скористайтеся extratargetfilter" + +msgid "Deprecated; use ipapermlocation" +msgstr "Вважається застарілою; скористайтеся ipapermlocation" + +msgid "Deprecated; use ipapermright" +msgstr "Вважається застарілою; скористайтеся ipapermright" + +msgid "Granted to Privilege" +msgstr "Надані привілеї" + +msgid "Indirect Member of roles" +msgstr "Опосередкований учасник roles" + +msgid "Add a new permission." +msgstr "Додати нові права доступу." + +msgid "Add members to a permission." +msgstr "Додати учасників до запису прав доступу." + +msgid "member privilege" +msgstr "привілеї учасника" + +msgid "privileges to add" +msgstr "привілеї для додавання" + +msgid "Add a system permission without an ACI (internal command)" +msgstr "Додати системні права доступу без ACI (внутрішня команда)" + +msgid "Permission flags" +msgstr "Прапорці прав доступу" + +msgid "Delete a permission." +msgstr "Вилучити права доступу." + +msgid "force delete of SYSTEM permissions" +msgstr "примусове вилучення прав доступу SYSTEM" + +msgid "Search for permissions." +msgstr "Знайти права доступу." + +msgid "Modify a permission." +msgstr "Змінити права доступу." + +msgid "Rename the permission object" +msgstr "Перейменувати об’єкт права доступу" + +msgid "Remove members from a permission." +msgstr "Вилучити учасників із запису права доступу." + +msgid "privileges to remove" +msgstr "привілеї для вилучення" + +msgid "Display information about a permission." +msgstr "Показати дані щодо прав доступу." + +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 --hbacsvcs=login login\n" +"\n" +" Display information about a named group:\n" +" ipa hbacsvcgroup-show 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 --hbacsvcs=login login\n" +"\n" +" Показ даних щодо вказаної групи:\n" +" ipa hbacsvcgroup-show login\n" +"\n" +" Вилучення групи служб HBAC:\n" +" ipa hbacsvcgroup-del login\n" + +msgid "Service group name" +msgstr "Назва групи служб" + +msgid "HBAC service group description" +msgstr "Опис групи служб HBAC" + +msgid "Member HBAC service" +msgstr "Служба HBAC учасника" + +msgid "Add a new HBAC service group." +msgstr "Додати нову групу служб HBAC." + +msgid "Add members to an HBAC service group." +msgstr "Додати учасників до групи служб HBAC." + +msgid "Delete an HBAC service group." +msgstr "Вилучити групу служб HBAC." + +msgid "Search for an HBAC service group." +msgstr "Шукати групу служб HBAC." + +msgid "Modify an HBAC service group." +msgstr "Змінити групу служб HBAC." + +msgid "Remove members from an HBAC service group." +msgstr "Вилучити учасників з групи служб HBAC." + +msgid "Display information about an HBAC service group." +msgstr "Показати дані щодо групи служб HBAC." + +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 (using Bash\n" +" brace expansion):\n" +" ipa selfservice-add --permissions=write --attrs={street,postalCode,l,c," +"st} \"Users manage their own address\"\n" +"\n" +" When managing the list of attributes you need to include all attributes\n" +" in the list, including existing ones.\n" +" Add telephoneNumber to the list (using Bash brace expansion):\n" +" ipa selfservice-mod --attrs={street,postalCode,l,c,st,telephoneNumber} " +"\"Users manage their own address\"\n" +"\n" +" Display our updated rule:\n" +" 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" +"\n" +" Додавання правила самообслуговування для уможливлення керування " +"користувачами\n" +" власною адресою (з використанням виразу Bash у фігурних дужках):\n" +" ipa selfservice-add --permissions=write --attrs={street,postalCode,l,c," +"st} \"Users manage their own address\"\n" +"\n" +" Якщо ви керуєте списком атрибутів, вам слід включити до списку всі " +"атрибути,\n" +" зокрема вже створені. Додавання telephoneNumber до списку (з використанням " +"виразу Bash у фігурних дужках):\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" + +msgid "Self-service name" +msgstr "Назва самообслуговування" + +msgid "Attributes to which the permission applies." +msgstr "Атрибути, до яких застосовується правило доступу." + +msgid "Add a new self-service permission." +msgstr "Додати нові права доступу автослужби." + +msgid "Delete a self-service permission." +msgstr "Вилучити права доступу автослужби." + +msgid "Search for a self-service permission." +msgstr "Шукати права доступу автослужби." + +msgid "Modify a self-service permission." +msgstr "Змінити права доступу автослужби." + +msgid "Display information about a self-service permission." +msgstr "Показати дані щодо прав доступу автослужби." + +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 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 admins 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 --attrs=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 --" +"attrs=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" +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 --attrs=postalcode --prefix=none \"Адміністратори редагують " +"адреси редакторів\"\n" +"\n" +" Додавання ACI, яке надасть доступ групі \"admins\" до зміни поштової адреси " +"та індексу всіх, хто працює начальником:\n" +" ipa aci-add --permissions=write --group=admins --attrs=street --" +"attrs=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" + +msgid "ACI name" +msgstr "Назва ACI" + +msgid "Permission" +msgstr "Права доступу" + +msgid "Permission ACI grants access to" +msgstr "ACI прав доступу надає доступ до" + +msgid "Permissions to grant(read, write, add, delete, all)" +msgstr "Права доступу, які слід надати (read, write, add, delete, all)" + +msgid "Attributes to which the permission applies" +msgstr "Атрибути, до яких застосовується правило доступу" + +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +msgstr "" +"тип об’єкта IPA (user (користувач), group (група), host (вузол), hostgroup " +"(група вузлів), service (служба), netgroup (мережева група))" + +msgid "Member of" +msgstr "Учасник" + +msgid "Member of a group" +msgstr "Учасник групи" + +msgid "Filter" +msgstr "Фільтр" + +msgid "Legal LDAP filter (e.g. ou=Engineering)" +msgstr "Припустимий фільтр LDAP (наприклад, ou=Engineering)" + +msgid "Subtree to apply ACI to" +msgstr "Піддерево, до якого слід застосувати ACI" + +msgid "Group to apply ACI to" +msgstr "Група, до якої слід застосувати ACI" + +msgid "Target your own entry (self)" +msgstr "Виконати над власним записом (self)" + +msgid "Apply ACI to your own entry (self)" +msgstr "Застосувати ACI до вашого власного запису (self)" + +msgid "Create new ACI." +msgstr "Створити запис ACI." + +msgid "ACI prefix" +msgstr "префікс ACI" + +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" +msgstr "" +"Префікс, за яким визначається тип ACI (permission, delegation, selfservice, " +"none)" + +msgid "Test the ACI syntax but don't write anything" +msgstr "Перевірити синтаксис ACI, але не виконувати запису" + +msgid "Delete ACI." +msgstr "Вилучити ACI." + +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" +" у яких memberof містить ipausers. Але можуть існувати інші ACI, які\n" +" застосовуються до учасників цієї групи опосередковано.\n" +" " + +msgid "Modify ACI." +msgstr "Змінити запис ACI." + +msgid "Rename an ACI." +msgstr "Перейменувати запис ACI." + +msgid "New ACI name" +msgstr "Нова назва ACI" + +msgid "Display a single ACI given an ACI name." +msgstr "Показати окремий запис ACI за вказаною назвою ACI." + +msgid "Location of the ACI" +msgstr "Розташування ACI" + +msgid "" +"\n" +"IPA servers\n" +"\n" +"Get information about installed IPA servers.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Find all servers:\n" +" ipa server-find\n" +"\n" +" Show specific server:\n" +" ipa server-show ipa.example.com\n" +msgstr "" +"\n" +"Сервери IPA\n" +"\n" +"Отримати дані щодо встановлених серверів IPA.\n" +"\n" +"ПРИКЛАДИ:\n" +"\n" +" Знайти усі сервери:\n" +" ipa server-find\n" +"\n" +" Показати вказаний сервер:\n" +" ipa server-show ipa.example.com\n" + +msgid "Server name" +msgstr "Назва сервера" + +msgid "IPA server hostname" +msgstr "Назва вузла сервера IPA" + +msgid "Managed suffixes" +msgstr "Керовані суфікси" + +msgid "Min domain level" +msgstr "Мін. рівень домену" + +msgid "Minimum domain level" +msgstr "Мінімальний рівень домену" + +msgid "Max domain level" +msgstr "Макс. рівень домену" + +msgid "Maximum domain level" +msgstr "Максимальний рівень домену" + +msgid "Check connection to remote IPA server." +msgstr "Перевірити з’єднання із віддаленим сервером IPA." + +msgid "Remote server name" +msgstr "Назва віддаленого сервера" + +msgid "Remote IPA server hostname" +msgstr "Назва вузла віддаленого сервера IPA" + +msgid "Delete IPA server." +msgstr "Вилучити сервер IPA." + +msgid "Search for IPA servers." +msgstr "Шукати сервери IPA." + +msgid "suffix" +msgstr "суфікс" + +msgid "Search for servers with these managed suffixes." +msgstr "Шукати сервери із цими керованими суфіксами." + +msgid "Search for servers without these managed suffixes." +msgstr "Шукати сервери без цих керованих суфіксів." + +msgid "Show IPA server." +msgstr "Показати сервер IPA." + +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" +"RE-ENROLLMENT:\n" +"\n" +"Host that has been enrolled at some point, and lost its configuration (e.g. " +"VM\n" +"destroyed) can be re-enrolled.\n" +"\n" +"For more information, consult the manual pages for ipa-client-install.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" +"\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" +" Remove SSH public keys of a host and update DNS to reflect this change:\n" +" ipa host-mod --sshpubkey= --updatedns 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" +"\n" +" Allow user to create a keytab:\n" +" ipa host-allow-create-keytab test2 --users=tuser1\n" +msgstr "" +"\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" +" Host Enrollment.\n" +"3. Вузол було створено з одноразовим паролем.\n" +"\n" +"ПОВТОРНА РЕЄСТРАЦІЯ:\n" +"\n" +"Вузол, якому вже колись було надано певну роль, але налаштування було " +"втрачено\n" +"(наприклад через знищення віртуальної машини), можна знову зареєструвати " +"(надати роль).\n" +"\n" +"Щоб дізнатися більше, зверніться до сторінок підручника (man) щодо ipa-" +"client-install.\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" +" Вилучити відкриті ключі SSH вузла і оновити DNS відповідно до внесених " +"змін:\n" +" ipa host-mod --sshpubkey= --updatedns test.example.com\n" +"\n" +"Вимкнути ключ Kerberos вузла, сертифікат SSL та усі його служби:\n" +" ipa host-disable test.example.com\n" +"\n" +"Додати вузол, який може керувати сховищем ключів та сертифікатом цього " +"вузла :\n" +" ipa host-add-managedby --hosts=test2 test\n" +"\n" +" Дозволити користувачеві створення таблиці ключів:\n" +" ipa host-allow-create-keytab test2 --users=tuser1\n" + +msgid "Host name" +msgstr "Назва вузла" + +msgid "A description of this host" +msgstr "Опис цього вузла" + +msgid "Locality" +msgstr "Адреса" + +msgid "Host locality (e.g. \"Baltimore, MD\")" +msgstr "Адреса розташування вузла (наприклад, «Київ, Україна»)" + +msgid "Location" +msgstr "Запис" + +msgid "Host location (e.g. \"Lab 2\")" +msgstr "Розташування вузла (наприклад, «Lab 2»)" + +msgid "Platform" +msgstr "Платформа" + +msgid "Host hardware platform (e.g. \"Lenovo T61\")" +msgstr "Апаратна платформа вузла (наприклад, «Lenovo T61»)" + +msgid "Operating system" +msgstr "Операційна система" + +msgid "Host operating system and version (e.g. \"Fedora 9\")" +msgstr "Операційна система вузла і її версія (наприклад, «Fedora 9\")" + +msgid "User password" +msgstr "Пароль користувача" + +msgid "Password used in bulk enrollment" +msgstr "Пароль для загального керування реєстраційними записами" + +msgid "Generate a random password to be used in bulk enrollment" +msgstr "" +"Створити випадковий пароль, який буде використано для загальної реєстрації" + +msgid "Principal name" +msgstr "Назва реєстраційного запису" + +msgid "MAC address" +msgstr "MAC-адреса" + +msgid "Hardware MAC address(es) on this host" +msgstr "Апаратні MAC-адреси цього вузла" + +msgid "" +"Host category (semantics placed on this attribute are for local " +"interpretation)" +msgstr "" +"Категорія вузлів (семантика розташування цього атрибуту призначена для " +"локальної обробки)" + +msgid "Assigned ID View" +msgstr "Перегляд призначених ідентифікаторів" + +msgid "Member of host-groups" +msgstr "Учасник host-groups" + +msgid "Indirect Member of host-group" +msgstr "Опосередкований учасник групи вузлів" + +msgid "Managing" +msgstr "Керування" + +msgid "Add a new host." +msgstr "Додати новий запис вузла." + +msgid "force host name even if not in DNS" +msgstr "примусове значення назви вузла, навіть якщо назви немає у DNS" + +msgid "skip reverse DNS detection" +msgstr "пропустити зворотне визначення DNS" + +msgid "IP Address" +msgstr "IP-адреса" + +msgid "Add the host to DNS with this IP address" +msgstr "Додати запис вузла до DNS з цією IP-адресою" + +msgid "Add certificates to host entry" +msgstr "Додати сертифікати до запису вузла" + +msgid "Add hosts that can manage this host." +msgstr "Додати записи вузлів, які можуть керувати цим вузлом." + +msgid "" +"Allow users, groups, hosts or host groups to create a keytab of this host." +msgstr "" +"Дозволити користувачам, групам, вузлам і групам вузлів створювати таблицю " +"ключів цього вузла." + +msgid "" +"Allow users, groups, hosts or host groups to retrieve a keytab of this host." +msgstr "" +"Дозволити користувачам, групам, вузлам і групам вузлів отримувати таблицю " +"ключів цього вузла." + +msgid "Delete a host." +msgstr "Вилучити вузол." + +msgid "Remove entries from DNS" +msgstr "Вилучити записи з DNS" + +msgid "Disable the Kerberos key, SSL certificate and all services of a host." +msgstr "Вимкнути ключ Kerberos, сертифікат SSL і всі служби на вузлі." + +msgid "" +"Disallow users, groups, hosts or host groups to create a keytab of this host." +msgstr "" +"Заборонити користувачам, групам, вузлам і групам вузлів створювати таблицю " +"ключів цього вузла." + +msgid "" +"Disallow users, groups, hosts or host groups to retrieve a keytab of this " +"host." +msgstr "" +"Заборонити користувачам, групам, вузлам і групам вузлів отримувати таблицю " +"ключів цього вузла." + +msgid "Search for hosts." +msgstr "Шукати вузли." + +msgid "Results should contain primary key attribute only (\"hostname\")" +msgstr "Результати мають містити лише атрибут основного ключа («hostname»)" + +msgid "Search for hosts with these member of host groups." +msgstr "Шукати вузли із вказаними групами вузлів участі." + +msgid "Search for hosts without these member of host groups." +msgstr "Шукати вузли без вказаних груп вузлів участі." + +msgid "Search for hosts with these member of netgroups." +msgstr "Шукати вузли із вказаними мережевими групами участі." + +msgid "Search for hosts without these member of netgroups." +msgstr "Шукати вузли без вказаних мережевих груп участі." + +msgid "Search for hosts with these member of roles." +msgstr "Шукати вузли із вказаними ролями участі." + +msgid "Search for hosts without these member of roles." +msgstr "Шукати вузли без вказаних ролей участі." + +msgid "Search for hosts with these member of HBAC rules." +msgstr "Шукати вузли із цими правилами HBAC участі." + +msgid "Search for hosts without these member of HBAC rules." +msgstr "Шукати вузли без цих правил HBAC участі." + +msgid "Search for hosts with these member of sudo rules." +msgstr "Шукати вузли із цими правилами sudo участі." + +msgid "Search for hosts without these member of sudo rules." +msgstr "Шукати вузли без цих правил sudo участі." + +msgid "Search for hosts with these enrolled by users." +msgstr "Шукати вузли з цими користувачами, якими надано ролі." + +msgid "Search for hosts without these enrolled by users." +msgstr "Шукати вузли без цих користувачів, якими надано ролі." + +msgid "Search for hosts with these managed by hosts." +msgstr "Шукати вузли із цими керованими вузлами." + +msgid "Search for hosts without these managed by hosts." +msgstr "Шукати вузли без цих керованих вузлів." + +msgid "Search for hosts with these managing hosts." +msgstr "Шукати вузли із цими керівними вузлами." + +msgid "Search for hosts without these managing hosts." +msgstr "Шукати вузли без цих керівних вузлів." + +msgid "Modify information about a host." +msgstr "Змінити дані щодо вузла." + +msgid "Kerberos principal name for this host" +msgstr "Назва реєстраційного запису Kerberos для цього вузла" + +msgid "Update DNS entries" +msgstr "Оновити записи DNS" + +msgid "Remove certificates from host entry" +msgstr "Вилучити сертифікати із запису вузла" + +msgid "Remove hosts that can manage this host." +msgstr "Вилучити записи вузлів, які можуть керувати цим вузлом." + +msgid "Display information about a host." +msgstr "Показати дані щодо вузла." + +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup (using Bash brace expansion):\n" +" ipa hostgroup-add-member --hosts={box1,box2,box3} baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" 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" +" Додавання учасників до групи вузлів з використанням виразу Bash у фігурних " +"дужках):\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" + +msgid "Host-group" +msgstr "Група вузлів" + +msgid "Name of host-group" +msgstr "Назва групи вузлів" + +msgid "A description of this host-group" +msgstr "Опис цієї групи вузлів" + +msgid "Indirect Member hosts" +msgstr "Вузли з опосередкованою участю" + +msgid "Indirect Member host-groups" +msgstr "Групи вузлів з опосередкованою участю" + +msgid "Add a new hostgroup." +msgstr "Додати нову групу вузлів." + +msgid "Add members to a hostgroup." +msgstr "Додати записи до групи вузлів." + +msgid "Delete a hostgroup." +msgstr "Вилучити групу вузлів." + +msgid "Search for hostgroups." +msgstr "Шукати групи вузлів." + +msgid "Results should contain primary key attribute only (\"hostgroup-name\")" +msgstr "" +"Результати мають містити лише атрибут основного ключа («hostgroup-name»)" + +msgid "Search for host groups with these member hosts." +msgstr "Шукати групи вузлів із цими вузлами-учасниками." + +msgid "Search for host groups without these member hosts." +msgstr "Шукати групи вузлів без цих вузлів-учасників." + +msgid "Search for host groups with these member host groups." +msgstr "Шукати групи вузлів із цими групами вузлів-учасників." + +msgid "Search for host groups without these member host groups." +msgstr "Шукати групи вузлів без цих груп вузлів-учасників." + +msgid "Search for host groups with these member of host groups." +msgstr "Шукати групи вузлів із цими групами вузлів участі." + +msgid "Search for host groups without these member of host groups." +msgstr "Шукати групи вузлів без цих груп вузлів участі." + +msgid "Search for host groups with these member of netgroups." +msgstr "Шукати групи вузлів із вказаними мережевими групами участі." + +msgid "Search for host groups without these member of netgroups." +msgstr "Шукати групи вузлів без вказаних мережевих груп учасників." + +msgid "Search for host groups with these member of HBAC rules." +msgstr "Шукати групи вузлів із цими правилами HBAC участі." + +msgid "Search for host groups without these member of HBAC rules." +msgstr "Шукати групи вузлів без цього учасника правил HBAC." + +msgid "Search for host groups with these member of sudo rules." +msgstr "Шукати групи вузлів із цим учасником правил sudo." + +msgid "Search for host groups without these member of sudo rules." +msgstr "Шукати групи вузлів без вказаних учасників правил sudo." + +msgid "Modify a hostgroup." +msgstr "Змінити групу вузлів." + +msgid "Remove members from a hostgroup." +msgstr "Вилучити записи з групи вузлів." + +msgid "Display information about a hostgroup." +msgstr "Показати дані щодо групи вузлів." + +msgid "" +"\n" +"Server configuration\n" +"\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" +"\n" +"NOTES:\n" +"\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" +"\n" +"Some attributes are read-only, provided only for information purposes. " +"These\n" +"include:\n" +"\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" +"\n" +"When setting the order list for mapping SELinux users you may need to\n" +"quote the value so it isn't interpreted by the shell.\n" +"\n" +"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" +"\n" +" Define SELinux user map order:\n" +" ipa config-mod --ipaselinuxusermaporder='guest_u:s0$xguest_u:s0$user_u:s0-" +"s0:c0.c1023$staff_u:s0-s0:c0.c1023$unconfined_u:s0-s0:c0.c1023'\n" +msgstr "" +"\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" +"Під час встановлення списку пріоритетності для користувачів SELinux може " +"виникнути\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" +"\n" +" Визначити пріоритетність користувачів у карті SELinux:\n" +" ipa config-mod --ipaselinuxusermaporder='guest_u:s0$xguest_u:s0$user_u:s0-" +"s0:c0.c1023$staff_u:s0-s0:c0.c1023$unconfined_u:s0-s0:c0.c1023'\n" + +msgid "Maximum username length" +msgstr "Максимальна довжина імені користувача" + +msgid "Home directory base" +msgstr "Адреса домашніх каталогів" + +msgid "Default location of home directories" +msgstr "Типова адреса домашніх каталогів" + +msgid "Default shell" +msgstr "Типова оболонка" + +msgid "Default shell for new users" +msgstr "Типова оболонка для нових користувачів" + +msgid "Default users group" +msgstr "Типова група користувачів" + +msgid "Default group for new users" +msgstr "Типова група для нових користувачів" + +msgid "Default e-mail domain" +msgstr "Типовий домен ел. пошти" + +msgid "Search time limit" +msgstr "Обмеження часу пошуку" + +msgid "Maximum amount of time (seconds) for a search (-1 or 0 is unlimited)" +msgstr "" +"Максимальний проміжок часу (у секундах) для виконання однієї дії з пошуку " +"(-1 або 0 — без обмежень)" + +msgid "Search size limit" +msgstr "Обмеження розміру пошуку" + +msgid "Maximum number of records to search (-1 or 0 is unlimited)" +msgstr "" +"Максимальна кількість записів результатів пошуку (-1 або 0 — без обмежень)" + +msgid "User search fields" +msgstr "Поля пошуку користувачів" + +msgid "A comma-separated list of fields to search in when searching for users" +msgstr "" +"Відокремлений комами список полів, за якими виконуватиметься пошук " +"користувачів" + +msgid "Group search fields" +msgstr "Поля пошуку груп" + +msgid "A comma-separated list of fields to search in when searching for groups" +msgstr "" +"Відокремлений комами список полів, за якими виконуватиметься пошук груп" + +msgid "Enable migration mode" +msgstr "Увімкнути режим міграції" + +msgid "Certificate Subject base" +msgstr "Базовий об’єкт сертифікації" + +msgid "Base for certificate subjects (OU=Test,O=Example)" +msgstr "Основа для створення записів об’єктів сертифікації (OU=Test,O=Example)" + +msgid "Default group objectclasses" +msgstr "Типові класи об’єктів групи" + +msgid "Default group objectclasses (comma-separated list)" +msgstr "Типові класи об’єктів груп (список класів, відокремлених комами)" + +msgid "Default user objectclasses" +msgstr "Типові класи об’єктів користувачів" + +msgid "Default user objectclasses (comma-separated list)" +msgstr "" +"Типові класи об’єктів користувачів (список класів, відокремлених комами)" + +msgid "Password Expiration Notification (days)" +msgstr "Сповіщення про вичерпання строку дії пароля (у днях)" + +msgid "Number of days's notice of impending password expiration" +msgstr "" +"Сповіщення про кількість днів, які залишилися до завершення дії пароля." + +msgid "Password plugin features" +msgstr "Можливості додатка паролів" + +msgid "Extra hashes to generate in password plug-in" +msgstr "Додаткові хеші для створення у додатку паролів." + +msgid "SELinux user map order" +msgstr "Порядок карт користувачів SELinux" + +msgid "Order in increasing priority of SELinux users, delimited by $" +msgstr "" +"Порядок у збільшенні пріоритетності користувачів SELinux, відокремлений $" + +msgid "Default SELinux user" +msgstr "Типовий користувач SELinux" + +msgid "Default SELinux user when no match is found in SELinux map rule" +msgstr "" +"Типовий користувач SELinux, якщо не буде знайдено відповідного у правилі " +"карти SELinux" + +msgid "Default PAC types" +msgstr "Типові типи PAC" + +msgid "Default types of PAC supported for services" +msgstr "Типові типи PAC, підтримувані для служб" + +msgid "Default user authentication types" +msgstr "Типові типи розпізнавання користувачів" + +msgid "Default types of supported user authentication" +msgstr "Типові типи підтримуваного розпізнавання користувачів" + +msgid "Modify configuration options." +msgstr "Змінити параметри налаштування." + +msgid "Show the current configuration." +msgstr "Показати поточні налаштування." + +msgid "" +"\n" +"Manage CA ACL rules.\n" +"\n" +"This plugin is used to define rules governing which principals are\n" +"permitted to have certificates issued using a given certificate\n" +"profile.\n" +"\n" +"PROFILE ID SYNTAX:\n" +"\n" +"A Profile ID is a string without spaces or punctuation starting with a " +"letter\n" +"and followed by a sequence of letters, digits or underscore (\"_\").\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a CA ACL \"test\" that grants all users access to the\n" +" \"UserCert\" profile:\n" +" ipa caacl-add test --usercat=all\n" +" ipa caacl-add-profile test --certprofiles UserCert\n" +"\n" +" Display the properties of a named CA ACL:\n" +" ipa caacl-show test\n" +"\n" +" Create a CA ACL to let user \"alice\" use the \"DNP3\" profile:\n" +" ipa caacl-add-profile alice_dnp3 --certprofiles DNP3\n" +" ipa caacl-add-user alice_dnp3 --user=alice\n" +"\n" +" Disable a CA ACL:\n" +" ipa caacl-disable test\n" +"\n" +" Remove a CA ACL:\n" +" ipa caacl-del test\n" +msgstr "" +"\n" +"Керування правилами CA ACL.\n" +"\n" +"Цей додаток призначено для визначення правил, що керують тим,\n" +"які реєстраційні записи можуть мати сертифікати, випущені за\n" +"допомогою даного профілю сертифікатів.\n" +"\n" +"СИНТАКСИС ІДЕНТИФІКАТОРА ПРОФІЛЮ:\n" +"\n" +"Ідентифікатор профілю — рядок без пробілів і символів пунктуації,\n" +"що починається з літери і складається з послідовності літер, цифр, та " +"символів підкреслювання («_»).\n" +"\n" +"ПРИКЛАДИ:\n" +"\n" +" Створити CA ACL «test», який надає доступ усім користувачам до\n" +" профілю «UserCert»:\n" +" ipa caacl-add test --usercat=all\n" +" ipa caacl-add-profile test --certprofiles UserCert\n" +"\n" +" Показати усі властивості вказаного за назвою CA ACL:\n" +" ipa caacl-show test\n" +"\n" +" Створити CA ACL, який надає користувачеві «alice» право\n" +" використовувати профіль «DNP3»:\n" +" ipa caacl-add-profile alice_dnp3 --certprofiles DNP3\n" +" ipa caacl-add-user alice_dnp3 --user=alice\n" +"\n" +" Вимкнути певний CA ACL:\n" +" ipa caacl-disable test\n" +"\n" +" Вилучити певний CA ACL:\n" +" ipa caacl-del test\n" + +msgid "ACL name" +msgstr "Назва ACL" + +msgid "Profile category" +msgstr "Категорія профілів" + +msgid "Profile category the ACL applies to" +msgstr "Категорія профілів, до якої застосовується ACL" + +msgid "User category the ACL applies to" +msgstr "Категорія користувачів, до якої застосовується ACL" + +msgid "Host category the ACL applies to" +msgstr "Категорія вузлів, до якої застосовується ACL" + +msgid "Service category the ACL applies to" +msgstr "Категорія служб, до якої застосовується ACL" + +msgid "Profiles" +msgstr "Профілі" + +msgid "Create a new CA ACL." +msgstr "Створити запис CA ACL." + +msgid "Add target hosts and hostgroups to a CA ACL." +msgstr "Додати вузли і групи вузлів призначення до CA ACL." + +msgid "Add profiles to a CA ACL." +msgstr "Додати профілі до CA ACL." + +msgid "member Certificate Profile" +msgstr "учасник Профіль сертифікатів" + +msgid "Certificate Profiles to add" +msgstr "Профілі сертифікатів для додавання" + +msgid "Add services to a CA ACL." +msgstr "Додати служби до CA ACL." + +msgid "Add users and groups to a CA ACL." +msgstr "Додати користувачів і групи до CA ACL." + +msgid "Delete a CA ACL." +msgstr "Вилучити CA ACL." + +msgid "Disable a CA ACL." +msgstr "Вимкнути CA ACL." + +msgid "Enable a CA ACL." +msgstr "Увімкнути CA ACL." + +msgid "Search for CA ACLs." +msgstr "Шукати CA ACL." + +msgid "Modify a CA ACL." +msgstr "Змінити CA ACL." + +msgid "Remove target hosts and hostgroups from a CA ACL." +msgstr "Вилучити вузли призначення та групи вузлів з CA ACL." + +msgid "Remove profiles from a CA ACL." +msgstr "Вилучити профілі із CA ACL." + +msgid "Certificate Profiles to remove" +msgstr "Профілі сертифікатів для вилучення" + +msgid "Remove services from a CA ACL." +msgstr "Вилучити служби з CA ACL." + +msgid "Remove users and groups from a CA ACL." +msgstr "Вилучити користувачів або групи з CA ACL." + +msgid "Display the properties of a CA ACL." +msgstr "Показати властивості CA ACL." + +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts.\n" +"You can use HBAC to control which users or groups can access a service,\n" +"or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +" [--sizelimit= ]\n" +"\n" +" --user, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to " +"simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to " +"simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/" +"not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules " +"_and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +" By default there is a IPA-wide limit to number of entries fetched, you can " +"change it\n" +" with --sizelimit option.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +" Matched rules: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --" +"rules=myrule --rules=my-second-rule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified " +"rules:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --" +"rules=myrule --rules=my-second-rule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +" Matched rules: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" Not matched rules: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified " +"rules:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --" +"rules=myrule --rules=my-second-rule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --enabled " +"--disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +" Not matched rules: new-rule\n" +" Matched rules: allow_all\n" +"\n" +"\n" +"HBACTEST AND TRUSTED DOMAINS\n" +"\n" +"When an external trusted domain is configured in IPA, HBAC rules are also " +"applied\n" +"on users accessing IPA resources from the trusted domain. Trusted domain " +"users and\n" +"groups (and their SIDs) can be then assigned to external groups which can " +"be\n" +"members of POSIX groups in IPA which can be used in HBAC rules and thus " +"allowing\n" +"access to resources protected by the HBAC system.\n" +"\n" +"hbactest plugin is capable of testing access for both local IPA users and " +"users\n" +"from the trusted domains, either by a fully qualified user name or by user " +"SID.\n" +"Such user names need to have a trusted domain specified as a short name\n" +"(DOMAIN\\Administrator) or with a user principal name (UPN), " +"Administrator@ad.test.\n" +"\n" +"Please note that hbactest executed with a trusted domain user as --user " +"parameter\n" +"can be only run by members of \"trust admins\" group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Test if a user from a trusted domain specified by its shortname " +"matches any\n" +" rule:\n" +"\n" +" $ ipa hbactest --user 'DOMAIN\\Administrator' --host `hostname` --" +"service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 2. Test if a user from a trusted domain specified by its domain name " +"matches\n" +" any rule:\n" +"\n" +" $ ipa hbactest --user 'Administrator@domain.com' --host `hostname` --" +"service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 3. Test if a user from a trusted domain specified by its SID matches any " +"rule:\n" +"\n" +" $ ipa hbactest --user " +"S-1-5-21-3035198329-144811719-1378114514-500 --host `hostname` --" +"service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 4. Test if other user from a trusted domain specified by its SID matches " +"any rule:\n" +"\n" +" $ ipa hbactest --user " +"S-1-5-21-3035198329-144811719-1378114514-1203 --host `hostname` " +"--service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Not matched rules: can_login\n" +"\n" +" 5. Test if other user from a trusted domain specified by its shortname " +"matches\n" +" any rule:\n" +"\n" +" $ ipa hbactest --user 'DOMAIN\\Otheruser' --host `hostname` --service " +"sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Not matched rules: can_login\n" +msgstr "" +"\n" +"Імітація використання керування доступом на основі вузлів (HBAC)\n" +"\n" +"Правила HBAC керують тим, хто може отримувати доступ до певних служб на\n" +"певних вузлах.\n" +"Ви можете скористатися HBAC для керування тим, які користувачі або групи\n" +"на початковому вузлі можуть отримувати доступ до служби або групи служб\n" +"на вузлі призначення\n" +"\n" +"Оскільки застосування правил HBAC передбачає використання робочого\n" +"середовища, це додаток призначено для імітації обробки правил HBAC без\n" +"доступу до реального середовища\n" +"\n" +" Перевірити відповідність користувача з початкового вузла до служби на " +"іменованому\n" +" вузлі правилам уможливлення доступу.\n" +"\n" +" ipa hbactest --user= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +" [--sizelimit= ]\n" +"\n" +" --user, --host і --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 --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Надано доступ: Так\n" +" --------------------\n" +"\n" +" 3. Перевірити явно вказані правила HBAC:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --" +"rules=myrule --rules=my-second-rule\n" +" ---------------------\n" +" Надано доступ: Ні\n" +" ---------------------\n" +" невідповідне: my-second-rule\n" +" невідповідне: myrule\n" +"\n" +" 4. Використання всіх увімкнених правил HBAC у базі даних IPA + явно " +"вказаних правил:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --" +"rules=myrule --rules=my-second-rule\n" +" --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 --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Надано доступ: Ні\n" +" ---------------------\n" +" невідповідне: new-rule\n" +"\n" +" 6. Перевірка всіх вимкнених правил HBAC у базі даних IPA + явно вказані " +"правила:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --" +"rules=myrule --rules=my-second-rule --disabled\n" +" ---------------------\n" +" Надано доступ: Ні\n" +" ---------------------\n" +" невідповідне: my-second-rule\n" +" невідповідне: my-third-rule\n" +" невідповідне: myrule\n" +"\n" +" 7. Перевірка всіх (увімкнених і вимкнених) правил HBAC у базі даних " +"IPA:\n" +" $ ipa hbactest --user=a1a --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" +"\n" +"HBACTEST І ДОВІРЕНІ ДОМЕНИ\n" +"\n" +"Якщо у IPA налаштовано зовнішній довірений домен, правила HBAC також\n" +"застосовуються до користувачів, що отримують доступ до ресурсів IPA з\n" +"з довіреного домену. Після цього користувачі і групи довіреного домену\n" +"(на їхні SID) може бути прив’язано до зовнішніх груп, які можуть бути\n" +"учасниками груп POSIX у IPA. Такі прив’язки може бути використано у\n" +"правилах HBAC, отже уможливлення доступу до ресурсів, захищених системою\n" +"HBAC.\n" +"\n" +"Додаток hbactest здатен тестувати доступ як для локальних користувачів\n" +"IPA, так і користувачів з довірених доменів, як за повним іменем\n" +"користувача, так і за SID користувачів. У таких іменах користувачів\n" +"має бути вказано скорочено довірений домен (ДОМЕН\\Administrator) або\n" +"назву реєстраційного запису користувача (UPN), Administrator@ad.test.\n" +"\n" +"Будь ласка, зауважте, що виконувати hbactest з аргументом користувача\n" +"довіреного домену у параметрі --user можуть виконувати лише учасники\n" +"групи «trust admins».\n" +"\n" +"ПРИКЛАД:\n" +"\n" +" 1. Перевірити, чи відповідає користувач з довіреного домену,\n" +" вказаний за коротким іменем, якомусь правилу:\n" +"\n" +" $ ipa hbactest --user 'DOMAIN\\Administrator' --host `hostname` --" +"service sshd\n" +" --------------------\n" +" Надано доступ: Так\n" +" --------------------\n" +" Відповідні правила: allow_all\n" +" Відповідні правила: can_login\n" +"\n" +" 2. Перевірити, чи відповідає користувач з довіреного домену,\n" +" вказаний за назвою його домену, якомусь правилу:\n" +"\n" +" $ ipa hbactest --user 'Administrator@domain.com' --host `hostname` --" +"service sshd\n" +" --------------------\n" +" Надано доступ: Так\n" +" --------------------\n" +" Відповідні правила: allow_all\n" +" Невідповідні правила: can_login\n" +"\n" +" 3. Перевірити, чи відповідає користувач з довіреного домену\n" +" вказаний за SID, якомусь правилу:\n" +"\n" +" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n" +" --host `hostname` --service sshd\n" +" --------------------\n" +" Надано доступ: Так\n" +" --------------------\n" +" Відповідні правила: allow_all\n" +" Відповідні правила: can_login\n" +"\n" +" 4. Перевірити, чи відповідає інший користувач з довіреного домену,\n" +" вказаний за SID, якомусь правилу:\n" +"\n" +" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n" +" --host `hostname` --service sshd\n" +" --------------------\n" +" Надано доступ: Так\n" +" --------------------\n" +" Відповідні правила: allow_all\n" +" Відповідні правила: can_login\n" +"\n" +" 5. Перевірити, чи відповідає інший користувач з довіреного домену,\n" +" вказаний за коротким ім’ям, якомусь правилу:\n" +"\n" +" $ ipa hbactest --user 'DOMAIN\\Otheruser' --host `hostname` --service " +"sshd\n" +" --------------------\n" +" Надано доступ: Так\n" +" --------------------\n" +" Відповідні правила: allow_all\n" +" Невідповідні правила: can_login\n" + +msgid "Simulate use of Host-based access controls" +msgstr "Імітувати використання керування доступом на основі вузлів" + +msgid "Target host" +msgstr "Вузол призначення" + +msgid "Service" +msgstr "Служба" + +msgid "Rules to test. If not specified, --enabled is assumed" +msgstr "" +"Правила для перевірки. Якщо не вказано, вважається, що використано --enabled." + +msgid "Hide details which rules are matched, not matched, or invalid" +msgstr "" +"Приховати дані щодо того, які правила є відповідними, які не є відповідними " +"і які є некоректними" + +msgid "Include all enabled IPA rules into test [default]" +msgstr "Перевірити всі увімкнені правила IPA [типова поведінка]" + +msgid "Include all disabled IPA rules into test" +msgstr "Перевірити всі вимкнені правила IPA" + +msgid "Maximum number of rules to process when no --rules is specified" +msgstr "" +"Максимальна кількість правил, які слід обробити, якщо не вказано параметра --" +"rules" + +msgid "Warning" +msgstr "Попередження" + +msgid "Matched rules" +msgstr "Відповідні правила" + +msgid "Not matched rules" +msgstr "Невідповідні правила" + +msgid "Non-existent or invalid rules" +msgstr "Некоректні правила або правила, яких не існує" + +msgid "Result of simulation" +msgstr "Результат імітації" + +msgid "" +"\n" +"Migration to IPA\n" +"\n" +"Migrate users and groups from an LDAP server to IPA.\n" +"\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" +"\n" +"The default user container is ou=People.\n" +"\n" +"The default group container is ou=Groups.\n" +"\n" +"Users and groups that already exist on the IPA server are skipped.\n" +"\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"The schema compat feature allows IPA to reformat data for systems that\n" +"do not support RFC2307bis. It is recommended that this feature is disabled\n" +"during migration to reduce system overhead. It can be re-enabled after\n" +"migration. To migrate with it enabled use the \"--with-compat\" option.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +"If a base DN is not provided with --basedn then IPA will use either\n" +"the value of defaultNamingContext if it is set or the first value\n" +"in namingContexts set in the root of the remote LDAP server.\n" +"\n" +"Users are added as members to the default user group. This can be a\n" +"time-intensive task so during migration this is done in a batch\n" +"mode for every 100 users. As a result there will be a window in which\n" +"users will be added to IPA but will not be members of the default\n" +"user group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user\n" +" and group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --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\n" +" having colliding group as their primary group may happen to belong to\n" +" an unknown group on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing " +"groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid --user-container='cn=users," +"cn=accounts' --group-container='cn=groups,cn=accounts' " +"ldap://ds.example.com:389\n" +"\n" +" Migrated users or groups may have object class and accompanied attributes\n" +" unknown to the IPA v2 server. These object classes and attributes may be\n" +" left out of the migration process:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-" +"container='cn=groups,cn=accounts' --user-ignore-" +"objectclass=radiusprofile --user-ignore-" +"attribute=radiusgroupname ldap://ds.example.com:389\n" +"\n" +"LOGGING\n" +"\n" +"Migration will log warnings and errors to the Apache error log. This\n" +"file should be evaluated post-migration to correct or investigate any\n" +"issues that were discovered.\n" +"\n" +"For every 100 users migrated an info-level message will be displayed to\n" +"give the current progress and duration to make it possible to track\n" +"the progress of migration.\n" +"\n" +"If the log level is debug, either by setting debug = True in\n" +"/etc/ipa/default.conf or /etc/ipa/server.conf, then an entry will be " +"printed\n" +"for each user added plus a summary when the default user group is\n" +"updated.\n" +msgstr "" +"\n" +"Перехід на IPA\n" +"\n" +"Перенесення користувачів і груп з сервера LDAP на IPA.\n" +"\n" +"Надсилає запит LDAP до віддаленого сервера з метою пошуку користувачів\n" +"і груп у контейнері. З метою перенесення паролів вам слід прив’язатися\n" +"до сервера від імені користувача, який може читати атрибут userPassword\n" +"на сервері. Перелік таких користувачів зазвичай обмежено адміністраторами\n" +"вищого рівня, зокрема cn=Directory Manager на 389-ds (типовий користувач\n" +"bind).\n" +"\n" +"Типовим контейнером користувачів є ou=People.\n" +"\n" +"Типовим контейнером груп є ou=Groups.\n" +"\n" +"Записи користувачів і груп, які вже створено на сервері IPA буде\n" +"пропущено.\n" +"\n" +"Дві схеми LDAP визначають спосіб зберігання записів учасників групи:\n" +"RFC2307 і RFC2307bis. RFC2307bis використовує атрибути member і\n" +"uniquemember для визначення учасників групи, RFC2307 використовує\n" +"memberUid. Типовою є схема RFC2307bis.\n" +"\n" +"За допомогою додатка compat IPA може повторно форматувати дані для систем,\n" +"де не передбачено підтримки RFC2307bis. Рекомендується вимикати цей додаток\n" +"під час перенесення, щоб зменшити навантаження на систему. Ви зможете\n" +"увімкнути його після перенесення. Щоб перенести дані з увімкненим додатком\n" +"скористайтеся параметром «--with-compat».\n" +"\n" +"Перенесені користувачі не матимуть реєстраційних записів Kerberos,\n" +"перенесено буде лише пароль LDAP. Щоб завершити процес перенесення,\n" +"користувачам слід відкрити сторінку\n" +"http://ipa.example.com/ipa/migration і пройти розпізнавання за\n" +"допомогою пароля LDAP з метою створення запису реєстраційних даних\n" +"Kerberos.\n" +"\n" +"Типово перенесення вимкнено. Для його вмикання скористайтеся командою\n" +"ipa config-mod:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +"Якщо основний DN не буде надано за допомогою --basedn, IPA " +"використовуватиме\n" +"значення defaultNamingContext, якщо його встановлено, або перше значення у\n" +"наборі namingContexts у кореневій теці віддаленого сервера LDAP.\n" +"\n" +"Записи користувачів додають до типової групи користувачів. Процес такого\n" +"додавання може бути доволі тривалим, отже під час перенесення він " +"виконується\n" +"у пакетному режимі, пакетами по 100 користувачів. У результаті буде певний\n" +"період, коли записи користувачів вже буде додано до IPA, але ці користувачі\n" +"ще не будуть учасниками типової групи користувачів.\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 \\\n" +" --user-container='cn=users,cn=accounts' --group-container='cn=groups," +"cn=accounts' ldap://ds.example.com:389\n" +"\n" +" Перенесені дані користувачів та груп можуть містити класи об’єктів та " +"супутні\n" +" атрибути, невідомі серверу IPA версії 2. Ці класти об’єктів та атрибутів\n" +" може бути виключено з процедури перенесення даних:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-" +"container='cn=groups,cn=accounts' --user-ignore-objectclass=radiusprofile --" +"user-ignore-attribute=radiusgroupname ldap://ds.example.com:389\n" +"\n" +"ВЕДЕННЯ ЖУРНАЛУ\n" +"\n" +"Під час перенесення повідомлення з попередженнями та записами помилок\n" +"додаватимуться до журналу помилок Apache. З відповідним файлом слід\n" +"ознайомитися після завершення перенесення для виправлення та виявлення\n" +"помилок, які могли статися.\n" +"\n" +"Для кожного пакета зі 100 перенесених записів користувачів буде показано\n" +"інформаційне повідомлення, призначене для оцінки поступу обробки та\n" +"визначення її тривалості.\n" +"\n" +"Якщо визначено рівень ведення журналу debug за допомогою встановлення\n" +"debug = True у /etc/ipa/default.conf або у /etc/ipa/server.conf,\n" +"для кожного перенесеного запису додаватиметься власний запис, також\n" +"додаватиметься резюме щодо кожного оновлення типової групи\n" +"користувачів.\n" + +msgid "Migrate users and groups from DS to IPA." +msgstr "Перенести дані користувачів і груп з DS до IPA." + +msgid "LDAP URI" +msgstr "URI LDAP" + +msgid "LDAP URI of DS server to migrate from" +msgstr "URI LDAP сервера DS, з якого здійснюватиметься міграція" + +msgid "bind password" +msgstr "пароль прив’язки" + +msgid "Bind DN" +msgstr "DN для прив'язки" + +msgid "User container" +msgstr "Контейнер користувачів" + +msgid "DN of container for users in DS relative to base DN" +msgstr "DN контейнера користувачів у DS відносно до основного DN" + +msgid "Group container" +msgstr "Контейнер груп" + +msgid "DN of container for groups in DS relative to base DN" +msgstr "DN контейнера груп у DS відносно до основного DN" + +msgid "User object class" +msgstr "Клас об’єктів користувача" + +msgid "Objectclasses used to search for user entries in DS" +msgstr "Класи об’єктів, використаних для пошуку записів користувачів у DS" + +msgid "Group object class" +msgstr "Клас об’єктів групи" + +msgid "Objectclasses used to search for group entries in DS" +msgstr "Класи об’єктів, використаних для пошуку записів груп у DS" + +msgid "Ignore user object class" +msgstr "Ігнорувати клас об’єктів користувача" + +msgid "Objectclasses to be ignored for user entries in DS" +msgstr "Класи об’єктів, які буде проігноровано для записів користувачів у DS" + +msgid "Ignore user attribute" +msgstr "Ігнорувати атрибут користувача" + +msgid "Attributes to be ignored for user entries in DS" +msgstr "Атрибути, які буде проігноровано для записів користувачів у DS" + +msgid "Ignore group object class" +msgstr "Ігнорувати клас об’єктів групи" + +msgid "Objectclasses to be ignored for group entries in DS" +msgstr "Класи об’єктів, які буде проігноровано для записів груп у DS" + +msgid "Ignore group attribute" +msgstr "Ігнорувати атрибут групи" + +msgid "Attributes to be ignored for group entries in DS" +msgstr "Атрибути, які буде проігноровано для записів груп у DS" + +msgid "Overwrite GID" +msgstr "Перезаписати ідентифікатор групи" + +msgid "" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" +msgstr "" +"Під час перенесення групи, яку вже створено у домені IPA буде перезаписано " +"ідентифікатор групи і повідомлено про успіх" + +msgid "LDAP schema" +msgstr "Схема LDAP" + +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" +msgstr "" +"Схема, використана на сервері LDAP. Підтримувані значення: RFC2307 і " +"RFC2307bis. Типове значення: RFC2307bis" + +msgid "Continue" +msgstr "Продовжити" + +msgid "" +"Continuous operation mode. Errors are reported but the process continues" +msgstr "" +"Режим неперервної обробки. Програма повідомляє про помилки, але продовжує " +"обробку." + +msgid "Base DN" +msgstr "Кореневий DN" + +msgid "Base DN on remote LDAP server" +msgstr "Основний DN на віддаленому сервері LDAP" + +msgid "Ignore compat plugin" +msgstr "Ігнорувати додаток compat" + +msgid "Allows migration despite the usage of compat plugin" +msgstr "Уможливлює перенесення, незважаючи на використання додатка compat" + +msgid "CA certificate" +msgstr "Сертифікат CA" + +msgid "Load CA certificate of LDAP server from FILE" +msgstr "Завантажити сертифікат CA сервера LDAP з вказаного файла" + +msgid "Add to default group" +msgstr "Додати до типової групи" + +msgid "Add migrated users without a group to a default group (default: true)" +msgstr "" +"Додавати перенесені записи користувачів без групи до типової групи (типове " +"значення: true)" + +msgid "Search scope" +msgstr "Область пошуку" + +msgid "" +"LDAP search scope for users and groups: base, onelevel, or subtree. Defaults " +"to onelevel" +msgstr "" +"Область пошуку LDAP для користувачів і груп: base, onelevel або subtree. " +"Типове значення: onelevel" + +msgid "groups to exclude from migration" +msgstr "групи, які слід виключити з перенесення" + +msgid "users to exclude from migration" +msgstr "записи користувачів, які слід виключити з перенесення" + +msgid "Lists of objects migrated; categorized by type." +msgstr "Списки об’єктів, міграцію яких виконано; впорядкований за типами." + +msgid "Lists of objects that could not be migrated; categorized by type." +msgstr "" +"Списки об’єктів, міграцію яких не вдалося виконати; впорядкований за типами." + +msgid "False if migration mode was disabled." +msgstr "False, якщо режим міграції було вимкнено." + +msgid "False if migration fails because the compatibility plug-in is enabled." +msgstr "" +"False, якщо перенесення зазнає невдачі через увімкнення додатка сумісності." + +msgid "" +"\n" +"SELinux User Mapping\n" +"\n" +"Map IPA users to SELinux users by host.\n" +"\n" +"Hosts, hostgroups, users and groups can be either defined within\n" +"the rule or it may point to an existing HBAC rule. When using\n" +"--hbacrule option to selinuxusermap-find an exact match is made on the\n" +"HBAC rule name, so only one or zero entries will be returned.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a rule, \"test1\", that sets all users to xguest_u:s0 on the host " +"\"server\":\n" +" ipa selinuxusermap-add --usercat=all --selinuxuser=xguest_u:s0 test1\n" +" ipa selinuxusermap-add-host --hosts=server.example.com test1\n" +"\n" +" Create a rule, \"test2\", that sets all users to guest_u:s0 and uses an " +"existing HBAC rule for users and hosts:\n" +" ipa selinuxusermap-add --usercat=all --hbacrule=webserver --" +"selinuxuser=guest_u:s0 test2\n" +"\n" +" Display the properties of a rule:\n" +" ipa selinuxusermap-show test2\n" +"\n" +" Create a rule for a specific user. This sets the SELinux context for\n" +" user john to unconfined_u:s0-s0:c0.c1023 on any machine:\n" +" ipa selinuxusermap-add --hostcat=all --selinuxuser=unconfined_u:s0-s0:c0." +"c1023 john_unconfined\n" +" ipa selinuxusermap-add-user --users=john john_unconfined\n" +"\n" +" Disable a rule:\n" +" ipa selinuxusermap-disable test1\n" +"\n" +" Enable a rule:\n" +" ipa selinuxusermap-enable test1\n" +"\n" +" Find a rule referencing a specific HBAC rule:\n" +" ipa selinuxusermap-find --hbacrule=allow_some\n" +"\n" +" Remove a rule:\n" +" ipa selinuxusermap-del john_unconfined\n" +"\n" +"SEEALSO:\n" +"\n" +" The list controlling the order in which the SELinux user map is applied\n" +" and the default SELinux user are available in the config-show command.\n" +msgstr "" +"\n" +"Встановлення відповідності користувачів SELinux\n" +"\n" +"Встановити відповідність користувачів IPA користувачам SELinux за вузлами.\n" +"\n" +"Вузли, групи вузлів, користувачі і групи можна визначати або\n" +"в межах правила, або може вказувати на вже створене правило HBAC.\n" +"У разі використання параметра --hbacrule команди selinuxusermap-find\n" +"буде встановлено точну відповідність за назвою правила HBAC, отже буде\n" +"повернуто один або жодного запису.\n" +"\n" +"ПРИКЛАДИ:\n" +"\n" +" Створення правила, «test1», яке встановлює всіх користувачів у xguest_u:s0 " +"на вузлі «server»:\n" +" ipa selinuxusermap-add --usercat=all --selinuxuser=xguest_u:s0 test1\n" +" ipa selinuxusermap-add-host --hosts=serverexample.com test1\n" +"\n" +" Створення правила, \"test2\", яке встановлює всіх користувачів у guest_u:s0 " +"і використовує вже створене правило HBAC для користувачів і вузлів:\n" +" ipa selinuxusermap-add --usercat=all --hbacrule=webserver --" +"selinuxuser=guest_u:s0 test2\n" +"\n" +" Показ властивостей правил:\n" +" ipa selinuxusermap-show test2\n" +"\n" +" Створення правила для певного користувача. Встановлює контекст SELinux для " +"користувача\n" +" john у unconfined_u:s0-s0:c0.c1023 на всіх комп’ютерах:\n" +" ipa selinuxusermap-add --hostcat=all --selinuxuser=unconfined_u:s0-s0:c0." +"c1023 john_unconfined\n" +" ipa selinuxusermap-add-user --users=john john_unconfined\n" +"\n" +" Вимикання правила:\n" +" ipa selinuxusermap-disable test1\n" +"\n" +" Увімкнення правила:\n" +" ipa selinuxusermap-enable test1\n" +"\n" +" Пошук правила, що посилається на певне правило HBAC:\n" +" ipa selinuxusermap-find --hbacrule=allow_some\n" +"\n" +" Вилучення правила:\n" +" ipa selinuxusermap-del john_unconfined\n" +"\n" +"ТАКОЖ ОЗНАЙОМТЕСЯ:\n" +"\n" +" Застосовується список, який визначає порядок, у якому встановлюється\n" +" відповідність користувачів. Типового користувача можна за допомогою\n" +" програми config-show.\n" + +msgid "SELinux User" +msgstr "Користувач SELinux" + +msgid "HBAC Rule" +msgstr "Правило HBAC" + +msgid "HBAC Rule that defines the users, groups and hostgroups" +msgstr "Правило HBAC, яке визначає користувачів, групи і групи вузлів" + +msgid "Create a new SELinux User Map." +msgstr "Створити карту користувачів SELinux." + +msgid "Add target hosts and hostgroups to an SELinux User Map rule." +msgstr "" +"Додати вузли призначення та групи вузлів до правила карти користувачів " +"SELinux." + +msgid "Add users and groups to an SELinux User Map rule." +msgstr "Додати користувачів і групи до правила карти користувачів SELinux." + +msgid "Delete a SELinux User Map." +msgstr "Вилучити карту користувачів SELinux." + +msgid "Disable an SELinux User Map rule." +msgstr "Вимкнути правило карти користувачів SELinux." + +msgid "Enable an SELinux User Map rule." +msgstr "Увімкнути правило карти користувачів SELinux." + +msgid "Search for SELinux User Maps." +msgstr "Шукати карти користувачів SELinux." + +msgid "Modify a SELinux User Map." +msgstr "Змінити карту користувачів SELinux." + +msgid "Remove target hosts and hostgroups from an SELinux User Map rule." +msgstr "" +"Вилучити вузли призначення та групи вузлів з правила карти користувачів " +"SELinux." + +msgid "Remove users and groups from an SELinux User Map rule." +msgstr "Вилучити користувачів і групи з правила карти користувачів SELinux." + +msgid "Display the properties of a SELinux User Map rule." +msgstr "Показати властивості правила карти користувачів SELinux." + +msgid "" +"\n" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less --sudocmds=/usr/bin/" +"vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\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 --sudocmds=/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" + +msgid "Sudo Command Group" +msgstr "Група команд sudo" + +msgid "Group description" +msgstr "Опис групи" + +msgid "Commands" +msgstr "Команди" + +msgid "Sudo Command Groups" +msgstr "Групи команд sudo" + +msgid "Member Sudo commands" +msgstr "Команди учасника Sudo" + +msgid "Create new Sudo Command Group." +msgstr "Створити групу команд sudo." + +msgid "Add members to Sudo Command Group." +msgstr "Додати учасників до групи команд sudo." + +msgid "Delete Sudo Command Group." +msgstr "Вилучити групу команд sudo." + +msgid "Search for Sudo Command Groups." +msgstr "Шукати групи команд sudo." + +msgid "" +"Results should contain primary key attribute only (\"sudocmdgroup-name\")" +msgstr "" +"Результати мають містити лише атрибут основного ключа («suydocmdgroup-name»)" + +msgid "Modify Sudo Command Group." +msgstr "Змінити групу команд sudo." + +msgid "Remove members from Sudo Command Group." +msgstr "Вилучити учасників з групи команд sudo." + +msgid "Display Sudo Command Group." +msgstr "Показати групу команд sudo." + +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" +"Account lockout on password failure happens per IPA master. The user-status\n" +"command can be used to identify which master the user is locked out on.\n" +"It is on that master the administrator must unlock the user.\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" +"Блокування облікового запису виконується окремим основним вузлом IPA.\n" +"Для визначення основного вузла, на якому було заблоковано запис, можна\n" +"скористатися командою user-status. Адміністратор має розблоковувати\n" +"користувача саме на цьому основному вузлі.\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" + +msgid "Account disabled" +msgstr "Обліковий запис вимкнено" + +msgid "Preserved user" +msgstr "Зарезервований користувач" + +msgid "Add a new user." +msgstr "Додати нового користувача." + +msgid "Don't create user private group" +msgstr "Не створювати закриту групу користувача" + +msgid "Add one or more certificates to the user entry" +msgstr "Додати один або декілька сертифікатів до запису користувача" + +msgid "Add a manager to the user entry" +msgstr "Додати керування до запису користувача" + +msgid "Delete a user." +msgstr "Вилучити користувача." + +msgid "Disable a user account." +msgstr "Вимкнути обліковий запис користувача." + +msgid "Enable a user account." +msgstr "Увімкнути обліковий запис користувача." + +msgid "Search for users." +msgstr "Шукати користувачів." + +msgid "Self" +msgstr "Self" + +msgid "Display user record for current Kerberos principal" +msgstr "" +"Показати запис користувача для поточного реєстраційного запису Kerberos" + +msgid "Search for users with these member of groups." +msgstr "Шукати користувачів з вказаними групами участі." + +msgid "Search for users without these member of groups." +msgstr "Шукати користувачів без вказаних груп участі." + +msgid "Search for users with these member of netgroups." +msgstr "Шукати користувачів із вказаними мережевими групами участі." + +msgid "Search for users without these member of netgroups." +msgstr "Шукати користувачів без вказаних мережевих груп участі." + +msgid "Search for users with these member of roles." +msgstr "Шукати користувачів із вказаними ролями участі." + +msgid "Search for users without these member of roles." +msgstr "Шукати користувачів без вказаних ролей участі." + +msgid "Search for users with these member of HBAC rules." +msgstr "Шукати користувачів із цими правилами HBAC участі." + +msgid "Search for users without these member of HBAC rules." +msgstr "Шукати користувачів без цих правил HBAC участі." + +msgid "Search for users with these member of sudo rules." +msgstr "Шукати користувачів із цими правилами sudo участі." + +msgid "Search for users without these member of sudo rules." +msgstr "Шукати користувачів без цих правил sudo участі." + +msgid "Modify a user." +msgstr "Змінити параметри користувача." + +msgid "Rename the user object" +msgstr "Перейменувати об’єкт користувача" + +msgid "Remove one or more certificates to the user entry" +msgstr "Вилучити один або декілька сертифікатів запису користувача" + +msgid "Remove a manager to the user entry" +msgstr "Вилучити керування із запису користувача" + +msgid "Display information about a user." +msgstr "Показати дані щодо користувача." + +msgid "Move deleted user into staged area" +msgstr "Пересунути вилучений запис користувача до області етапу" + +msgid "" +"\n" +"Lockout status of a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked " +"by\n" +" an administrator.\n" +"\n" +" This connects to each IPA master and displays the lockout status on\n" +" each one.\n" +"\n" +" To determine whether an account is locked on a given server you need\n" +" to compare the number of failed logins and the time of the last " +"failure.\n" +" For an account to be locked it must exceed the maxfail failures within\n" +" the failinterval duration as specified in the password policy " +"associated\n" +" with the user.\n" +"\n" +" The failed login counter is modified only when a user attempts a log in\n" +" so it is possible that an account may appear locked but the last failed\n" +" login attempt is older than the lockouttime of the password policy. " +"This\n" +" means that the user may attempt a login again.\n" +" " +msgstr "" +"\n" +" Стан блокування облікового запису користувача\n" +"\n" +" Обліковий запис може бути заблоковано, якщо введено неправильний пароль\n" +" забагато разів протягом певного проміжку часу, який визначається " +"правилами\n" +" роботи з паролями. Блокування облікового запису є тимчасовим станом, " +"його\n" +" може бути розблоковано адміністратором.\n" +"\n" +" Ця програма з’єднується з кожним основним вузлом IPA і показує стан\n" +" блокування на кожному з них.\n" +"\n" +" Щоб визначити, чи слід блокувати обліковий запис на певному сервері, " +"слід\n" +" виконати порівняння кількості помилкових спроб входу та час останньої\n" +" невдалої спроби з еталонними значеннями. Обліковий запис буде " +"заблоковано,\n" +" якщо буде перевищено кількість maxfail помилкових спроб протягом " +"проміжку\n" +" часу failinterval. Відповідні значення задаються правилами обробки " +"паролів,\n" +" пов’язаними з обліковим записом користувача.\n" +"\n" +" Зміни до лічильника помилкових спроб входу вносяться, лише коли " +"користувач\n" +" виконує спробу увійти, тому може статися так, що обліковий запис " +"заблоковано,\n" +" хоча час, що минув з останньої помилкової спроби, перевищує час " +"блокування\n" +" (lockouttime), заданий правилам обробки паролів. Це означає, що " +"користувач\n" +" може увійти до системи знову.\n" +" " + +msgid "Undelete a delete user account." +msgstr "Відновити вилучений обліковий запис користувача." + +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" +" " + +msgid "" +"\n" +"Topology\n" +"\n" +"Management of a replication topology at domain level 1.\n" +"\n" +"IPA server's data is stored in LDAP server in two suffixes:\n" +"* domain suffix, e.g., 'dc=example,dc=com', contains all domain related " +"data\n" +"* ca suffix, 'o=ipaca', is present only on server with CA installed. It\n" +" contains data for Certificate Server component\n" +"\n" +"Data stored on IPA servers is replicated to other IPA servers. The way it " +"is\n" +"replicated is defined by replication agreements. Replication agreements " +"needs\n" +"to be set for both suffixes separately. On domain level 0 they are managed\n" +"using ipa-replica-manage and ipa-csreplica-manage tools. With domain level " +"1\n" +"they are managed centrally using `ipa topology*` commands.\n" +"\n" +"Agreements are represented by topology segments. By default topology " +"segment\n" +"represents 2 replication agreements - one for each direction, e.g., A to B " +"and\n" +"B to A. Creation of unidirectional segments is not allowed.\n" +"\n" +"To verify that no server is disconnected in the topology of the given " +"suffix,\n" +"use:\n" +" ipa topologysuffix-verify $suffix\n" +"\n" +"\n" +"Examples:\n" +" Find all IPA servers:\n" +" ipa server-find\n" +"\n" +" Find all suffixes:\n" +" ipa topologysuffix-find\n" +"\n" +" Add topology segment to 'domain' suffix:\n" +" ipa topologysegment-add domain --left IPA_SERVER_A --right IPA_SERVER_B\n" +"\n" +" Add topology segment to 'ca' suffix:\n" +" ipa topologysegment-add ca --left IPA_SERVER_A --right IPA_SERVER_B\n" +"\n" +" List all topology segments in 'domain' suffix:\n" +" ipa topologysegment-find domain\n" +"\n" +" List all topology segments in 'ca' suffix:\n" +" ipa topologysegment-find ca\n" +"\n" +" Delete topology segment in 'domain' suffix:\n" +" ipa topologysegment-del domain segment_name\n" +"\n" +" Delete topology segment in 'ca' suffix:\n" +" ipa topologysegment-del ca segment_name\n" +"\n" +" Verify topology of 'domain' suffix:\n" +" ipa topologysuffix-verify domain\n" +"\n" +" Verify topology of 'ca' suffix:\n" +" ipa topologysuffix-verify ca\n" +msgstr "" +"\n" +"Топологія\n" +"\n" +"Керування топологією реплікації на домені рівня 1.\n" +"\n" +"Дані сервера IPA зберігаються на сервері LDAP у двох суфіксах:\n" +"* суфіксі домену, наприклад «dc=example,dc=com», тут містяться усі пов’язані " +"із доменом дані\n" +"* суфіксі ca, «o=ipaca», наявні лише на серверах із встановленим CA. Тут\n" +" містяться дані для компонента сервера сертифікатів.\n" +"\n" +"Дані, що зберігаються на серверах IPA, відтворюються на інших серверах IPA. " +"Спосіб\n" +"відтворення (реплікації) визначається угодами. Угоди реплікації потрібно\n" +"встановлювати для обох суфіксів окремо. На рівні домену 0 угодами керують\n" +"програми ipa-replica-manage та ipa-csreplica-manage. На рівні доменів 1\n" +"керування виконується централізовано за допомогою команд «ipa topology*».\n" +"\n" +"Угоди представляються сегментами топології. Типово, сегмент топології\n" +"представляється 2 угодами реплікації — по одній для кожного напрямку, " +"наприклад\n" +"від A до B і від B до A. Створення односпрямованих сегментів заборонене.\n" +"\n" +"Щоб перевірити, що жоден сервер не від’єднано у топології вказаного " +"суфікса,\n" +"скористайтеся такою командою:\n" +" ipa topologysuffix-verify $suffix\n" +"\n" +"\n" +"Приклади:\n" +" Знайти усі сервери IPA:\n" +" ipa server-find\n" +"\n" +" Знайти усі суфікси:\n" +" ipa topologysuffix-find\n" +"\n" +" Додати сегмент топології до суфікса «domain»:\n" +" ipa topologysegment-add domain --left IPA_SERVER_A --right IPA_SERVER_B\n" +"\n" +" Додати сегмент топології до суфікса «ca»:\n" +" ipa topologysegment-add ca --left IPA_SERVER_A --right IPA_SERVER_B\n" +"\n" +" Вивести список усіх сегментів топології у суфіксі «domain»:\n" +" ipa topologysegment-find domain\n" +"\n" +" Вивести список усіх сегментів топології у суфіксі «ca»:\n" +" ipa topologysegment-find ca\n" +"\n" +" Вилучити сегмент топології у суфіксі «domain»:\n" +" ipa topologysegment-del domain segment_name\n" +"\n" +" Вилучити сегмент топології у суфіксі «ca»:\n" +" ipa topologysegment-del ca segment_name\n" +"\n" +" Перевірити топологію суфікса «domain»:\n" +" ipa topologysuffix-verify domain\n" +"\n" +" Перевірити топологію суфікса «ca»:\n" +" ipa topologysuffix-verify ca\n" + +msgid "Segment name" +msgstr "Назва сегмента" + +msgid "Arbitrary string identifying the segment" +msgstr "Довільний рядок для ідентифікації сегмента" + +msgid "Left node" +msgstr "Лівий вузол" + +msgid "Left replication node - an IPA server" +msgstr "Лівий вузол реплікації — сервер IPA" + +msgid "Right node" +msgstr "Правий вузол" + +msgid "Right replication node - an IPA server" +msgstr "Правий вузол реплікації — сервер IPA" + +msgid "Connectivity" +msgstr "Можливість з’єднання" + +msgid "Direction of replication between left and right replication node" +msgstr "Напрямок реплікації між лівим і правим вузлами реплікації" + +msgid "Attributes to strip" +msgstr "Атрибути, які слід прибрати" + +msgid "" +"A space separated list of attributes which are removed from replication " +"updates." +msgstr "" +"Розділений пробілами список атрибутів, які слід вилучати під час оновлено " +"реплікації." + +msgid "Attributes to replicate" +msgstr "Атрибути для реплікації" + +msgid "" +"Attributes that are not replicated to a consumer server during a fractional " +"update. E.g., `(objectclass=*) $ EXCLUDE accountlockout memberof" +msgstr "" +"Атрибути, для яких не відбуватиметься реплікація до сервера споживання під " +"час часткового оновлення. Наприклад, `(objectclass=*) $ EXCLUDE " +"accountlockout memberof" + +msgid "Attributes for total update" +msgstr "Атрибути для загального оновлення" + +msgid "" +"Attributes that are not replicated to a consumer server during a total " +"update. E.g. (objectclass=*) $ EXCLUDE accountlockout" +msgstr "" +"Атрибути, для яких не відбуватиметься реплікація до сервера споживання під " +"час загального оновлення. Наприклад, (objectclass=*) $ EXCLUDE accountlockout" + +msgid "Session timeout" +msgstr "Час очікування сеансу" + +msgid "" +"Number of seconds outbound LDAP operations waits for a response from the " +"remote replica before timing out and failing" +msgstr "" +"Кількість секунд, протягом яких відбуватиметься очікування зовнішнім LDAP на " +"відповідь під час дій від віддаленої репліки, перш ніж дію буде припинено " +"через перевищення часу очікування і буде видано повідомлення щодо помилки" + +msgid "Replication agreement enabled" +msgstr "Увімкнено угоду щодо реплікації" + +msgid "" +"Whether a replication agreement is active, meaning whether replication is " +"occurring per that agreement" +msgstr "" +"Визначає, чи є активною угода щодо реплікації, тобто, чи відбувається " +"реплікація за цією угодою" + +msgid "Suffix name" +msgstr "Назва суфікса" + +msgid "Managed LDAP suffix DN" +msgstr "DN керованого суфікса LDAP" + +msgid "Add a new segment." +msgstr "Додати новий сегмент." + +msgid "Delete a segment." +msgstr "Вилучити сегмент." + +msgid "Search for topology segments." +msgstr "Шукати сегменти топології." + +msgid "Modify a segment." +msgstr "Змінити сегмент." + +msgid "" +"Request a full re-initialization of the node retrieving data from the other " +"node." +msgstr "" +"Надіслати запит щодо повної повторної ініціалізації вузла, щоб отримує дані " +"з іншого вузла." + +msgid "Initialize left node" +msgstr "Ініціалізувати лівий вузол" + +msgid "Initialize right node" +msgstr "Ініціалізувати правий вузол" + +msgid "Stop already started refresh of chosen node(s)" +msgstr "Зупинити вже почате оновлення вибраних вузлів" + +msgid "Display a segment." +msgstr "Показати сегмент." + +msgid "Add a new topology suffix to be managed." +msgstr "Додати новий суфікс топології для керування." + +msgid "Delete a topology suffix." +msgstr "Вилучити суфікс топології." + +msgid "Search for topology suffixes." +msgstr "Шукати суфікси топології." + +msgid "Modify a topology suffix." +msgstr "Змінити суфікс топології." + +msgid "Show managed suffix." +msgstr "Показати керований суфікс." + +msgid "" +"\n" +"Verify replication topology for suffix.\n" +"\n" +"Checks done:\n" +" 1. check if a topology is not disconnected. In other words if there are\n" +" replication paths between all servers.\n" +" 2. check if servers don't have more than the recommended number of\n" +" replication agreements\n" +" " +msgstr "" +"\n" +"Перевірити топологію реплікації для суфікса.\n" +"\n" +"Перевірки, які виконуються:\n" +" 1. перевірка того, чи є топологія роз’єднаною. Іншими словами, того, чи\n" +" пов’язано усі сервери шляхами реплікації.\n" +" 2. перевірка того, чи не перевищено кількість рекомендованих угод з\n" +" реплікації між серверами.\n" +" " + +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" +"An automount map may contain a submount key. This key defines a mount\n" +"location within the map that references another map. This can be done\n" +"either using automountmap-add-indirect --parentmap or manually\n" +"with automountkey-add and setting info to \"-type=autofs :\".\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" +" Create an indirect map with auto.share as a submount:\n" +" ipa automountmap-add-indirect baltimore --parentmap=auto.share --" +"mount=sub auto.man\n" +"\n" +" This is equivalent to:\n" +"\n" +" ipa automountmap-add-indirect baltimore --mount=/man auto.man\n" +" ipa automountkey-add baltimore auto.man --key=sub --info=\"-" +"fstype=autofs ldap:auto.share\"\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" +"може бути додано або за допомогою команди automountmap-add-indirect --" +"parentmap\n" +"або вручну за допомогою automountkey-add зі встановленням info у значення\n" +"\"-type=autofs :<назва карти>\".\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-add-indirect baltimore --parentmap=auto.share --" +"mount=sub auto.man\n" +"\n" +" Ця команда еквівалентна до таких команд:\n" +"\n" +" ipa automountmap-add-indirect baltimore --mount=/man auto.man\n" +" ipa automountkey-add baltimore auto.man --key=sub --info=\"-" +"fstype=autofs ldap:auto.share\"\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" + +msgid "Automount key name." +msgstr "Назва ключа автоматичного монтування." + +msgid "Mount information" +msgstr "Інформація щодо монтування" + +msgid "description" +msgstr "опис" + +msgid "Automount location name." +msgstr "Адреса автомонтування." + +msgid "Map" +msgstr "Карта" + +msgid "Automount map name." +msgstr "Назва карти автоматичного монтування." + +msgid "Create a new automount key." +msgstr "Створити ключ автоматичного монтування." + +msgid "Delete an automount key." +msgstr "Вилучити ключ автоматичного монтування." + +msgid "Search for an automount key." +msgstr "Виконати пошук ключа автоматичного монтування." + +msgid "Modify an automount key." +msgstr "Змінити ключ автоматичного монтування." + +msgid "New mount information" +msgstr "Інформація нового монтування" + +msgid "Rename the automount key object" +msgstr "Перейменувати об’єкт ключа автоматичного монтування" + +msgid "Display an automount key." +msgstr "Показати ключ автоматичного монтування." + +msgid "Create a new automount location." +msgstr "Створити новий запис автоматичного монтування." + +msgid "Delete an automount location." +msgstr "Вилучити запис автоматичного монтування." + +msgid "Search for an automount location." +msgstr "Шукати запис автоматичного монтування." + +msgid "Results should contain primary key attribute only (\"location\")" +msgstr "Результати мають містити лише атрибут основного ключа («location»)" + +msgid "Display an automount location." +msgstr "Показати запис автоматичного монтування." + +msgid "Generate automount files for a specific location." +msgstr "Створити файли automount для певної адреси." + +msgid "Create a new automount map." +msgstr "Створити карту автомонтування." + +msgid "Create a new indirect mount point." +msgstr "Створити опосередковану точку монтування." + +msgid "Mount point" +msgstr "Точка монтування" + +msgid "Parent map" +msgstr "Батьківська карта" + +msgid "Name of parent automount map (default: auto.master)." +msgstr "" +"Назва батьківської карти автомонтування (типове значення: auto.master)." + +msgid "Delete an automount map." +msgstr "Вилучити карту автоматичного монтування." + +msgid "Search for an automount map." +msgstr "Виконати пошук карти автоматичного монтування." + +msgid "Results should contain primary key attribute only (\"map\")" +msgstr "Результати мають містити лише атрибут основного ключа («map»)" + +msgid "Modify an automount map." +msgstr "Змінити карту автоматичного монтування." + +msgid "Display an automount map." +msgstr "Показати карту автоматичного монтування." + +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" +msgstr "" +"\n" +"Додаток для виконання декількох викликів ipa за допомогою одного віддаленого " +"виклику процедури\n" +"\n" +"Щоб запустити цей код на легкому сервері, віддайте такі команди:\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" +"де у файлі batch_request.json міститься десь такий код:\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" +"Формат відповіді має бути розподілений за рівнями вкладеності у подібний же " +"спосіб. На початку ви побачите таке:\n" +" \"error\": null,\n" +" \"id\": 1,\n" +" \"result\": {\n" +" \"count\": 3,\n" +" \"results\": [\n" +"\n" +"\n" +"а далі буде вкладена відповідь для кожного методу команди IPA, який було " +"надіслано у запиті\n" + +msgid "Nested Methods to execute" +msgstr "Вкладені методи, які слід виконати" + +msgid "" +"\n" +"Vaults\n" +"\n" +"Manage vaults.\n" +"\n" +"Vault is a secure place to store a secret.\n" +"\n" +"Based on the ownership there are three vault categories:\n" +"* user/private vault\n" +"* service vault\n" +"* shared vault\n" +"\n" +"User vaults are vaults owned used by a particular user. Private\n" +"vaults are vaults owned the current user. Service vaults are\n" +"vaults owned by a service. Shared vaults are owned by the admin\n" +"but they can be used by other users or services.\n" +"\n" +"Based on the security mechanism there are three types of\n" +"vaults:\n" +"* standard vault\n" +"* symmetric vault\n" +"* asymmetric vault\n" +"\n" +"Standard vault uses a secure mechanism to transport and\n" +"store the secret. The secret can only be retrieved by users\n" +"that have access to the vault.\n" +"\n" +"Symmetric vault is similar to the standard vault, but it\n" +"pre-encrypts the secret using a password before transport.\n" +"The secret can only be retrieved using the same password.\n" +"\n" +"Asymmetric vault is similar to the standard vault, but it\n" +"pre-encrypts the secret using a public key before transport.\n" +"The secret can only be retrieved using the private key.\n" +"\n" +"EXAMPLES:\n" +"\n" +" List vaults:\n" +" ipa vault-find\n" +" [--user |--service |--shared]\n" +"\n" +" Add a standard vault:\n" +" ipa vault-add \n" +" [--user |--service |--shared]\n" +" --type standard\n" +"\n" +" Add a symmetric vault:\n" +" ipa vault-add \n" +" [--user |--service |--shared]\n" +" --type symmetric --password-file password.txt\n" +"\n" +" Add an asymmetric vault:\n" +" ipa vault-add \n" +" [--user |--service |--shared]\n" +" --type asymmetric --public-key-file public.pem\n" +"\n" +" Show a vault:\n" +" ipa vault-show \n" +" [--user |--service |--shared]\n" +"\n" +" Modify vault description:\n" +" ipa vault-mod \n" +" [--user |--service |--shared]\n" +" --desc \n" +"\n" +" Modify vault type:\n" +" ipa vault-mod \n" +" [--user |--service |--shared]\n" +" --type \n" +" [old password/private key]\n" +" [new password/public key]\n" +"\n" +" Modify symmetric vault password:\n" +" ipa vault-mod \n" +" [--user |--service |--shared]\n" +" --change-password\n" +" ipa vault-mod \n" +" [--user |--service |--shared]\n" +" --old-password \n" +" --new-password \n" +" ipa vault-mod \n" +" [--user |--service |--shared]\n" +" --old-password-file \n" +" --new-password-file \n" +"\n" +" Modify asymmetric vault keys:\n" +" ipa vault-mod \n" +" [--user |--service |--shared]\n" +" --private-key-file \n" +" --public-key-file \n" +"\n" +" Delete a vault:\n" +" ipa vault-del \n" +" [--user |--service |--shared]\n" +"\n" +" Display vault configuration:\n" +" ipa vaultconfig-show\n" +"\n" +" Archive data into standard vault:\n" +" ipa vault-archive \n" +" [--user |--service |--shared]\n" +" --in \n" +"\n" +" Archive data into symmetric vault:\n" +" ipa vault-archive \n" +" [--user |--service |--shared]\n" +" --in \n" +" --password-file password.txt\n" +"\n" +" Archive data into asymmetric vault:\n" +" ipa vault-archive \n" +" [--user |--service |--shared]\n" +" --in \n" +"\n" +" Retrieve data from standard vault:\n" +" ipa vault-retrieve \n" +" [--user |--service |--shared]\n" +" --out \n" +"\n" +" Retrieve data from symmetric vault:\n" +" ipa vault-retrieve \n" +" [--user |--service |--shared]\n" +" --out \n" +" --password-file password.txt\n" +"\n" +" Retrieve data from asymmetric vault:\n" +" ipa vault-retrieve \n" +" [--user |--service |--shared]\n" +" --out --private-key-file private.pem\n" +"\n" +" Add vault owners:\n" +" ipa vault-add-owner \n" +" [--user |--service |--shared]\n" +" [--users ] [--groups ] [--services ]\n" +"\n" +" Delete vault owners:\n" +" ipa vault-remove-owner \n" +" [--user |--service |--shared]\n" +" [--users ] [--groups ] [--services ]\n" +"\n" +" Add vault members:\n" +" ipa vault-add-member \n" +" [--user |--service |--shared]\n" +" [--users ] [--groups ] [--services ]\n" +"\n" +" Delete vault members:\n" +" ipa vault-remove-member \n" +" [--user |--service |--shared]\n" +" [--users ] [--groups ] [--services ]\n" +msgstr "" +"\n" +"Сховища\n" +"\n" +"Керування сховищами.\n" +"\n" +"Сховище — безпечне місце для зберігання ключів і паролів.\n" +"\n" +"За правами власності сховища поділяються на три категорії:\n" +"* приватні сховища користувачів\n" +"* сховища служб\n" +"* сховища спільного використання\n" +"\n" +"Сховища користувачів — це сховища, власником яких є конкретний\n" +"користувач. Приватними є сховища, власником яких є поточний\n" +"користувач. Власником сховища служби є певна служба. Сховища\n" +"спільного використання належать адміністратору, але можуть\n" +"використовуватися іншими користувачами або службами.\n" +"\n" +"За механізмами захисту сховища поділяються на три\n" +"типи:\n" +"* стандартні сховища\n" +"* симетричні сховища\n" +"* асиметричні сховища\n" +"\n" +"У стандартному сховищі для передавання і зберігання реєстраційних\n" +"даних використовуються безпечні механізми. Реєстраційні дані\n" +"може бути отримано лише користувачами, які мають доступ\n" +"до сховища.\n" +"\n" +"Симетричне сховище є подібним до стандартного сховища, але\n" +"у ньому реєстраційні дані попередньо шифруються до\n" +"передавання за допомогою пароля.\n" +"Реєстраційні дані можна отримати лише за допомогою цього пароля.\n" +"\n" +"Асиметричне сховище є подібним до стандартного сховища, але\n" +"у ньому реєстраційні дані попередньо шифруються до\n" +"передавання за допомогою відкритого ключа.\n" +"Реєстраційні дані можна отримати лише за допомогою закритого ключа.\n" +"\n" +" Вивести список сховищ:\n" +" ipa vault-find\n" +" [--user <користувач>|--service <служба>|--shared]\n" +"\n" +" Додати стандартне сховище:\n" +" ipa vault-add <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +" --type standard\n" +"\n" +" Додати симетричне сховище:\n" +" ipa vault-add <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +" --type symmetric --password-file пароль.txt\n" +"\n" +" Додати асиметричне сховище:\n" +" ipa vault-add <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +" --type asymmetric --public-key-file відкритий_ключ.pem\n" +"\n" +" Показати сховище:\n" +" ipa vault-show <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +"\n" +" Змінити опис сховища:\n" +" ipa vault-mod <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +" --desc <опис>\n" +"\n" +" Змінити тип сховища:\n" +" ipa vault-mod <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +" --type <тип>\n" +" [старий пароль/закритий ключ]\n" +" [новий пароль/відкритий ключ]\n" +"\n" +" Змінити пароль до симетричного сховища:\n" +" ipa vault-mod <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +" --change-password\n" +" ipa vault-mod <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +" --old-password <старий пароль>\n" +" --new-password <новий пароль>\n" +" ipa vault-mod <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +" --old-password-file <файл старого пароля>\n" +" --new-password-file <файл нового пароля>\n" +"\n" +" Змінити ключ асиметричного сховища:\n" +" ipa vault-mod <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +" --private-key-file <файл старого закритого ключа>\n" +" --public-key-file <файл нового відкритого ключа>\n" +"\n" +" Вилучити сховище:\n" +" ipa vault-del <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +"\n" +" Вивести налаштування сховищ:\n" +" ipa vaultconfig-show\n" +"\n" +" Архівувати дані до стандартного сховища:\n" +" ipa vault-archive \n" +" [--user <користувач>|--service <служба>|--shared]\n" +" --in <файл вхідних даних>\n" +"\n" +" Архівувати дані до симетричного сховища:\n" +" ipa vault-archive \n" +" [--user <користувач>|--service <служба>|--shared]\n" +" --in <файл вхідних даних>\n" +" --password-file пароль.txt\n" +"\n" +" Архівувати дані до асиметричного сховища:\n" +" ipa vault-archive \n" +" [--user <користувач>|--service <служба>|--shared]\n" +" --in <файл вхідних даних>\n" +"\n" +" Отримати дані зі стандартного сховища:\n" +" ipa vault-retrieve <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +" --out <файл результатів>\n" +"\n" +" Отримати дані з симетричного сховища:\n" +" ipa vault-retrieve <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +" --out <файл результатів>\n" +" --password-file password.txt\n" +"\n" +" Отримати дані з асиметричного сховища:\n" +" ipa vault-retrieve <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +" --out <файл результатів> --private-key-file private.pem\n" +"\n" +" Додати записи власників сховища:\n" +" ipa vault-add-owner <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +" [--users <користувачі>] [--groups <групи>] [--services <служби>]\n" +"\n" +" Вилучити записи учасників сховища:\n" +" ipa vault-remove-owner <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +" [--users <користувачі>] [--groups <групи>] [--services <служби>]\n" +"\n" +" Додати записи учасників сховища:\n" +" ipa vault-add-member <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +" [--users <користувачі>] [--groups <групи>] [--services <служби>]\n" +"\n" +" Вилучити записи учасників сховища:\n" +" ipa vault-remove-member <назва>\n" +" [--user <користувач>|--service <служба>|--shared]\n" +" [--users <користувачі>] [--groups <групи>] [--services <служби>]\n" + +msgid "Vault name" +msgstr "Назва сховища" + +msgid "Vault description" +msgstr "Опис сховища" + +msgid "Vault type" +msgstr "Тип сховища" + +msgid "Salt" +msgstr "Сіль" + +msgid "Vault salt" +msgstr "«Сіль» сховища" + +msgid "Public key" +msgstr "Відкритий ключ" + +msgid "Vault public key" +msgstr "Відкритий ключ сховища" + +msgid "Owner users" +msgstr "Користувачі власника" + +msgid "Owner groups" +msgstr "Групи власника" + +msgid "Owner services" +msgstr "Служби власника" + +msgid "Vault service" +msgstr "Служба сховища" + +msgid "Shared vault" +msgstr "Сховище спільного використання" + +msgid "Vault user" +msgstr "Користувач сховища" + +msgid "Transport Certificate" +msgstr "Сертифікат передавання" + +msgid "Service name of the service vault" +msgstr "Назва служби сховища служби" + +msgid "Username of the user vault" +msgstr "Ім’я користувача сховища користувача" + +msgid "Add members to a vault." +msgstr "Додати записи учасників сховища." + +msgid "Add owners to a vault." +msgstr "Додати записи власників до сховища." + +msgid "owner user" +msgstr "користувач-власник" + +msgid "owner group" +msgstr "група-власник" + +msgid "owner service" +msgstr "служба-власник" + +msgid "Owners that could not be added" +msgstr "Власники, записи яких не вдалося додати" + +msgid "Number of owners added" +msgstr "Кількість доданих записів власників" + +msgid "Session key wrapped with transport certificate" +msgstr "Ключ сеансу, пов’язаний із сертифікатом передавання" + +msgid "Vault data encrypted with session key" +msgstr "Дані сховища зашифровано за допомогою ключа сеансу" + +msgid "Nonce" +msgstr "Цей випадок" + +msgid "Delete a vault." +msgstr "Вилучити сховище." + +msgid "Search for vaults." +msgstr "Шукати сховища." + +msgid "List all service vaults" +msgstr "Список усіх сховищ служб" + +msgid "List all user vaults" +msgstr "Список усіх сховищ користувачів" + +msgid "Remove members from a vault." +msgstr "Вилучити записи учасників сховища." + +msgid "Remove owners from a vault." +msgstr "Вилучити записи власників сховища." + +msgid "Owners that could not be removed" +msgstr "Власники, записи яких не вдалося вилучити" + +msgid "Number of owners removed" +msgstr "Кількість вилучених записів власників" + +msgid "Display information about a vault." +msgstr "Показати дані щодо сховища." + +msgid "Show vault configuration." +msgstr "Показати налаштування сховища." + +msgid "Output file to store the transport certificate" +msgstr "Файл для зберігання сертифіката передавання даних" + +msgid "Add owners to a vault container." +msgstr "Додати записи власників до контейнера сховища." + +msgid "Delete a vault container." +msgstr "Вилучити контейнер сховищ." + +msgid "Remove owners from a vault container." +msgstr "Вилучити записи власників із контейнера сховища." + +msgid "Display information about a vault container." +msgstr "Показати дані щодо контейнера сховищ." + +msgid "" +"\n" +"Cross-realm trusts\n" +"\n" +"Manage trust relationship between IPA and Active Directory domains.\n" +"\n" +"In order to allow users from a remote domain to access resources in IPA\n" +"domain, trust relationship needs to be established. Currently IPA supports\n" +"only trusts between IPA and Active Directory domains under control of " +"Windows\n" +"Server 2008 or later, with functional level 2008 or later.\n" +"\n" +"Please note that DNS on both IPA and Active Directory domain sides should " +"be\n" +"configured properly to discover each other. Trust relationship relies on\n" +"ability to discover special resources in the other domain via DNS records.\n" +"\n" +"Examples:\n" +"\n" +"1. Establish cross-realm trust with Active Directory using AD administrator\n" +" credentials:\n" +"\n" +" ipa trust-add --type=ad --admin --" +"password\n" +"\n" +"2. List all existing trust relationships:\n" +"\n" +" ipa trust-find\n" +"\n" +"3. Show details of the specific trust relationship:\n" +"\n" +" ipa trust-show \n" +"\n" +"4. Delete existing trust relationship:\n" +"\n" +" ipa trust-del \n" +"\n" +"Once trust relationship is established, remote users will need to be mapped\n" +"to local POSIX groups in order to actually use IPA resources. The mapping " +"should\n" +"be done via use of external membership of non-POSIX group and then this " +"group\n" +"should be included into one of local POSIX groups.\n" +"\n" +"Example:\n" +"\n" +"1. Create group for the trusted domain admins' mapping and their local POSIX " +"group:\n" +"\n" +" ipa group-add --desc=' admins external map' ad_admins_external " +"--external\n" +" ipa group-add --desc=' admins' ad_admins\n" +"\n" +"2. Add security identifier of Domain Admins of the to the " +"ad_admins_external\n" +" group:\n" +"\n" +" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n" +"\n" +"3. Allow members of ad_admins_external group to be associated with ad_admins " +"POSIX group:\n" +"\n" +" ipa group-add-member ad_admins --groups ad_admins_external\n" +"\n" +"4. List members of external members of ad_admins_external group to see their " +"SIDs:\n" +"\n" +" ipa group-show ad_admins_external\n" +"\n" +"\n" +"GLOBAL TRUST CONFIGURATION\n" +"\n" +"When IPA AD trust subpackage is installed and ipa-adtrust-install is run,\n" +"a local domain configuration (SID, GUID, NetBIOS name) is generated. These\n" +"identifiers are then used when communicating with a trusted domain of the\n" +"particular type.\n" +"\n" +"1. Show global trust configuration for Active Directory type of trusts:\n" +"\n" +" ipa trustconfig-show --type ad\n" +"\n" +"2. Modify global configuration for all trusts of Active Directory type and " +"set\n" +" a different fallback primary group (fallback primary group GID is used " +"as\n" +" a primary user GID if user authenticating to IPA domain does not have any " +"other\n" +" primary GID already set):\n" +"\n" +" ipa trustconfig-mod --type ad --fallback-primary-group \"alternative AD " +"group\"\n" +"\n" +"3. Change primary fallback group back to default hidden group (any group " +"with\n" +" posixGroup object class is allowed):\n" +"\n" +" ipa trustconfig-mod --type ad --fallback-primary-group \"Default SMB Group" +"\"\n" +msgstr "" +"\n" +"Довіра між областями\n" +"\n" +"Керування відносинами довіри між доменами IPA і Active Directory.\n" +"\n" +"З метою надання доступу користувачам віддаленого домену до ресурсів у " +"домені\n" +"IPA слід встановити відносини довіри. У поточній версії у IPA передбачено\n" +"підтримку довіри лише між доменами IPA і Active Directory під керуванням " +"Windows\n" +"Server 2008 або новішої версії з функціональними можливостями рівня 2008 " +"або\n" +"новішої версії.\n" +"\n" +"Будь ласка, зауважте, що слід належним чином налаштувати DNS на обох " +"доменах,\n" +"IPA і Active Directory, щоб домени могли виявити один одного. " +"Працездатність\n" +"відносин довіри залежить від можливості виявлення спеціальних ресурсів у\n" +"іншому домені за допомогою записів DNS.\n" +"\n" +"Приклад:\n" +"\n" +"1. Встановити довіру між областями з Active Directory за допомогою " +"реєстраційних\n" +" даних адміністратора AD:\n" +"\n" +" ipa trust-add --type=ad <домен.ad> --admin <адміністратор домену AD> --" +"password\n" +"\n" +"2. Показати список всіх наявних відносин довіри:\n" +"\n" +" ipa trust-find\n" +"\n" +"3. Показати подробиці щодо певних відносин довіри:\n" +"\n" +" ipa trust-show <домен.ad>\n" +"\n" +"4. Вилучити наявні відносини довіри:\n" +"\n" +" ipa trust-del <домен.ad>\n" +"\n" +"Щойно відносини довіри буде встановлено, віддалених користувачів слід " +"прив’язати\n" +"до локальних груп POSIX, щоб скористатися ресурсами IPA. Прив’язку слід\n" +"виконати за допомогою використання зовнішньої участі групи не-POSIX, а " +"потім\n" +"цю групу має бути включено до однієї з локальних груп POSIX.\n" +"\n" +"Приклади:\n" +"\n" +"1. Створити групу для прив’язки адміністраторів та їхньої локальної групи " +"POSIX\n" +" довіреного домену:\n" +"\n" +" ipa group-add --desc='<домен.ad> admins external map' ad_admins_external " +"--external\n" +" ipa group-add --desc='<домен.ad> admins' ad_admins\n" +"\n" +"2. Додати ідентифікатор безпеки Domain Admins домену <домен.ad> до групи " +"ad_admins_external:\n" +"\n" +" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n" +"\n" +"3. Дозволити прив’язування учасників групи ad_admins_external до групи POSIX " +"ad_admins:\n" +"\n" +" ipa group-add-member ad_admins --groups ad_admins_external\n" +"\n" +"4. Показати список зовнішніх учасників групи ad_admins_external для " +"перегляду їхніх SID:\n" +"\n" +" ipa group-show ad_admins_external\n" +"\n" +"\n" +"НАЛАШТУВАННЯ ДОВІРИ ЗАГАЛЬНОГО РІВНЯ\n" +"\n" +"Якщо встановлено підпакунок довіри AD IPA та запущено ipa-adtrust-install,\n" +"створюються налаштування локального домену (SID, GUID, назва NetBIOS). " +"Після\n" +"цього створені ідентифікатори використовуються для обміну даними з\n" +"довіреним доменом певного типу.\n" +"\n" +"1. Показати налаштування довіри загального рівня для типів довіри Active " +"Directory:\n" +"\n" +" ipa trustconfig-show --type ad\n" +"\n" +"2. Змінити загальні налаштування для всіх довір типу Active Directory і\n" +" встановити іншу резервну основну групу (GID резервної основної групи\n" +" використовується як GID основного користувача, якщо користувача\n" +" розпізнано у домені IPA, але він не має жодного вже встановленого\n" +" основного GID):\n" +"\n" +" ipa trustconfig-mod --type ad --fallback-primary-group \"alternative AD " +"group\"\n" +"\n" +"3. Повернути для резервної основної групи значення типової прихованої групи\n" +" (будь-якої групи, у якій дозволено клас об’єктів posixGroup):\n" +"\n" +" ipa trustconfig-mod --type ad --fallback-primary-group \"Default SMB Group" +"\"\n" + +msgid "Domain NetBIOS name" +msgstr "Назва домену у NetBIOS" + +msgid "Domain Security Identifier" +msgstr "Ідентифікатор безпеки домену" + +msgid "SID blacklist incoming" +msgstr "Чорний список вхідних SID" + +msgid "SID blacklist outgoing" +msgstr "Чорний список вихідних SID" + +msgid "Security Identifier" +msgstr "Ідентифікатор безпеки" + +msgid "NetBIOS name" +msgstr "Назва NetBIOS" + +msgid "Domain GUID" +msgstr "GUID домену" + +msgid "Fallback primary group" +msgstr "Резервна основна група" + +msgid "Domain name" +msgstr "Назва домену" + +msgid "Trusted domain partner" +msgstr "Партнер довіреного домену" + +msgid "Determine whether ipa-adtrust-install has been run on this system" +msgstr "Визначити, чи було запущено ipa-adtrust-install для цієї системи" + +msgid "" +"Determine whether Schema Compatibility plugin is configured to serve trusted " +"domain users and groups" +msgstr "" +"Визначити, чи налаштовано додаток сумісності схем (Schema Compatibility) на " +"обслуговування користувачів і груп довіреного домену" + +msgid "Determine whether ipa-adtrust-install has been run with sidgen task" +msgstr "Визначити, чи було запущено ipa-adtrust-install з завданням sidgen" + +msgid "" +"\n" +"Add new trust to use.\n" +"\n" +"This command establishes trust relationship to another domain\n" +"which becomes 'trusted'. As result, users of the trusted domain\n" +"may access resources of this domain.\n" +"\n" +"Only trusts to Active Directory domains are supported right now.\n" +"\n" +"The command can be safely run multiple times against the same domain,\n" +"this will cause change to trust relationship credentials on both\n" +"sides.\n" +" " +msgstr "" +"\n" +"Додати новий запис довіри для використання.\n" +"\n" +"За допомогою цієї команди можна встановити відносини довіри з\n" +"іншим доменом, який після цього вважається «довіреним». У результаті\n" +"користувачі довіреного домену зможуть отримувати доступ до ресурсів\n" +"цього домену.\n" +"\n" +"У поточній версії передбачено підтримку лише відносин довіри з доменами\n" +"Active Directory.\n" +"\n" +"Команду можна безпечно запускати декілька разів для одного і того самого\n" +"домену, такий запуск призводить до зміни у реєстраційних записах відносин\n" +"довіри з обох боків.\n" +" " + +msgid "Trust type (ad for Active Directory, default)" +msgstr "Тип довіри (типовим для Active Directory є ad)" + +msgid "Active Directory domain administrator" +msgstr "Адміністратор домену Active Directory" + +msgid "Active Directory domain administrator's password" +msgstr "Пароль адміністратора домену Active Directory" + +msgid "Domain controller for the Active Directory domain (optional)" +msgstr "Контролер домену Active Directory (необов’язковий)" + +msgid "Shared secret for the trust" +msgstr "Оприлюднений ключ для довіри" + +msgid "First Posix ID of the range reserved for the trusted domain" +msgstr "" +"Перший ідентифікатор POSIX діапазону, зарезервованого для довіреного домену" + +msgid "Size of the ID range reserved for the trusted domain" +msgstr "" +"Розмір діапазону ідентифікаторів, зарезервованого для довіреного домену" + +msgid "" +"Type of trusted domain ID range, one of ipa-ad-trust-posix, ipa-ad-trust" +msgstr "" +"Тип діапазону ідентифікаторів довіреного домену, одне з таких значень: ipa-" +"ad-trust-posix, ipa-ad-trust" + +msgid "Two-way trust" +msgstr "Двобічна довіра" + +msgid "" +"Establish bi-directional trust. By default trust is inbound one-way only." +msgstr "Встановлено двобічну довіру. Типово, довіра є лише однобічною вхідною." + +msgid "Delete a trust." +msgstr "Вилучити запис довіри." + +msgid "Refresh list of the domains associated with the trust" +msgstr "Освіжити список доменів, пов’язаних з правилом довіри" + +msgid "Search for trusts." +msgstr "Шукати записи довіри." + +msgid "Results should contain primary key attribute only (\"realm\")" +msgstr "Результати мають містити лише атрибут основного ключа («realm»)" + +msgid "" +"\n" +"Modify a trust (for future use).\n" +"\n" +" Currently only the default option to modify the LDAP attributes is\n" +" available. More specific options will be added in coming releases.\n" +" " +msgstr "" +"\n" +" Змінити запис довіри (для наступного використання).\n" +"\n" +" У поточній версії можлива зміна лише типова зміна атрибутів LDAP.\n" +" Додаткові варіанти буде додано у наступних випусках.\n" +" " + +msgid "Resolve security identifiers of users and groups in trusted domains" +msgstr "" +"Визначати ідентифікатори безпеки користувачів та груп у довірених доменах" + +msgid "Security Identifiers (SIDs)" +msgstr "Ідентифікатори безпеки (SID)" + +msgid "Display information about a trust." +msgstr "Показати дані щодо довіри." + +msgid "Modify global trust configuration." +msgstr "Змінити налаштування довіри на загальному рівні." + +msgid "Show global trust configuration." +msgstr "Показати налаштування довіри на загальному рівні." + +msgid "Allow access from the trusted domain" +msgstr "Дозволити доступ з довіреного домену" + +msgid "Remove information about the domain associated with the trust." +msgstr "Вилучити дані щодо домену, пов’язаного з цим правилом довіри." + +msgid "Disable use of IPA resources by the domain of the trust" +msgstr "Вимкнути використання ресурсів IPA доменом правила довіри" + +msgid "Allow use of IPA resources by the domain of the trust" +msgstr "Дозволити використання ресурсів IPA доменом правила довіри" + +msgid "Search domains of the trust" +msgstr "Шукати довірені домени" + +msgid "Results should contain primary key attribute only (\"domain\")" +msgstr "Результати мають містити лише атрибут основного ключа («domain»)" + +msgid "Modify trustdomain of the trust" +msgstr "Змінити значення довіреного домену (trustdomain) правила довіри" + +msgid "" +"\n" +"IPA certificate operations\n" +"\n" +"Implements a set of commands for managing server SSL certificates.\n" +"\n" +"Certificate requests exist in the form of a Certificate Signing Request " +"(CSR)\n" +"in PEM format.\n" +"\n" +"The dogtag CA uses just the CN value of the CSR and forces the rest of the\n" +"subject to values configured in the server.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add " +"it)\n" +"\n" +"SEARCHING:\n" +"\n" +"Certificates may be searched on by certificate subject, serial number,\n" +"revocation reason, validity dates and the issued date.\n" +"\n" +"When searching on dates the _from date does a >= search and the _to date\n" +"does a <= search. When combined these are done as an AND.\n" +"\n" +"Dates are treated as GMT to match the dates in the certificates.\n" +"\n" +"The date format is YYYY-mm-dd.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +" Search for certificates by hostname:\n" +" ipa cert-find --subject=ipaserver.example.com\n" +"\n" +" Search for revoked certificates by reason:\n" +" ipa cert-find --revocation-reason=5\n" +"\n" +" Search for certificates based on issuance date\n" +" ipa cert-find --issuedon-from=2013-02-01 --issuedon-to=2013-02-07\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" +msgstr "" +"\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" +"причиною відкликання, датами чинності та датою видання.\n" +"\n" +"Якщо пошук виконується за датою _від, використовується порівняння >=, а " +"якщо\n" +"виконується пошук _до дати — порівняння <=. Поєднання обох пошуків " +"призводить\n" +"до пошуку з логічним поєднанням ТА.\n" +"\n" +"Дати обробляються як дати за Гринвічем, відповідно до дат визначених у\n" +"сертифікатах.\n" +"\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" +" Пошук сертифікатів за назвою вузла:\n" +" ipa cert-find --subject=ipaserver.example.com\n" +"\n" +" Пошук відкликаних сертифікатів за причиною:\n" +" ipa cert-find --revocation-reason=5\n" +"\n" +" Пошук сертифікатів за датою видання\n" +" ipa cert-find --issuedon-from=2013-02-01 --issuedon-to=2013-02-07\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" + +msgid "Checks if any of the servers has the CA service enabled." +msgstr "Перевіряє, чи увімкнено на якомусь із серверів службу CA." + +msgid "Search for existing certificates." +msgstr "Шукати наявні сертифікати." + +msgid "Subject" +msgstr "Об’єкт" + +msgid "Reason" +msgstr "Підстава" + +msgid "Reason for revoking the certificate (0-10)" +msgstr "Причина відкликання сертифіката (0-10)" + +msgid "minimum serial number" +msgstr "мінімальний серійний номер" + +msgid "maximum serial number" +msgstr "максимальний серійний номер" + +msgid "match the common name exactly" +msgstr "повна відповідність загальній назві" + +msgid "Valid not after from this date (YYYY-mm-dd)" +msgstr "Чинний не пізніше, ніж з цієї дати (РРРР-мм-дд)" + +msgid "Valid not after to this date (YYYY-mm-dd)" +msgstr "Чинний не пізніше, ніж до цієї дати (РРРР-мм-дд)" + +msgid "Valid not before from this date (YYYY-mm-dd)" +msgstr "Чинний не раніше від цієї дати (РРРР-мм-дд)" + +msgid "Valid not before to this date (YYYY-mm-dd)" +msgstr "Чинний не раніше цієї дати (РРРР-мм-дд)" + +msgid "Issued on from this date (YYYY-mm-dd)" +msgstr "Видано з цієї дати (РРРР-мм-дд)" + +msgid "Issued on to this date (YYYY-mm-dd)" +msgstr "Видано до цієї дати (РРРР-мм-дд)" + +msgid "Revoked on from this date (YYYY-mm-dd)" +msgstr "Відкликано з цієї дати (РРРР-мм-дд)" + +msgid "Revoked on to this date (YYYY-mm-dd)" +msgstr "Відкликано до цієї дати (РРРР-мм-дд)" + +msgid "Maximum number of certs returned" +msgstr "Максимальна кількість сертифікатів у повернутому списку" + +msgid "Take a revoked certificate off hold." +msgstr "Забрати відкликаний сертифікат." + +msgid "Serial number" +msgstr "Серійний номер" + +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +msgstr "Серійний десятковий номер або шістнадцятковий номер з префіксом 0x" + +msgid "Submit a certificate signing request." +msgstr "Надіслати запит щодо підписування сертифіката." + +msgid "CSR" +msgstr "CSR" + +msgid "Principal for this certificate (e.g. HTTP/test.example.com)" +msgstr "" +"Реєстраційний запис для цього сертифіката (наприклад HTTP/test.example.com)" + +msgid "automatically add the principal if it doesn't exist" +msgstr "автоматично додати реєстраційний запис, якщо його не існує" + +msgid "Certificate Profile to use" +msgstr "Профіль сертифіката, яким слід скористатися" + +msgid "Revoke a certificate." +msgstr "Відкликати сертифікат." + +msgid "Retrieve an existing certificate." +msgstr "Отримати вже створений сертифікат." + +msgid "Output filename" +msgstr "Назва файла виводу" + +msgid "File to store the certificate in." +msgstr "Файл, у якому зберігатимуться дані сертифіката." + +msgid "Check the status of a certificate signing request." +msgstr "Перевірити стан запиту щодо підписування сертифіката." + +msgid "Request id" +msgstr "Ід. запиту" + +msgid "" +"\n" +"Ping the remote IPA server to ensure it is running.\n" +"\n" +"The ping command sends an echo request to an IPA server. The server\n" +"returns its version information. This is used by an IPA client\n" +"to confirm that the server is available and accepting requests.\n" +"\n" +"The server from xmlrpc_uri in /etc/ipa/default.conf is contacted first.\n" +"If it does not respond then the client will contact any servers defined\n" +"by ldap SRV records in DNS.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Ping an IPA server:\n" +" ipa ping\n" +" ------------------------------------------\n" +" IPA server version 2.1.9. API version 2.20\n" +" ------------------------------------------\n" +"\n" +" Ping an IPA server verbosely:\n" +" ipa -v ping\n" +" ipa: INFO: trying https://ipa.example.com/ipa/xml\n" +" ipa: INFO: Forwarding 'ping' to server 'https://ipa.example.com/ipa/xml'\n" +" -----------------------------------------------------\n" +" IPA server version 2.1.9. API version 2.20\n" +" -----------------------------------------------------\n" +msgstr "" +"\n" +"Перевірка віддаленого сервера IPA з метою переконатися, що він є " +"працездатним.\n" +"\n" +"Програма ping надсилає луна-запит до сервера IPA. Сервер повертає\n" +"дані щодо його версії. Ці дані використовуються клієнтом IPA\n" +"для підтвердження, що сервер є доступним і що він приймає запити.\n" +"\n" +"Сервер з xmlrpc_uri у /etc/ipa/default.conf перевіряється першим.\n" +"Якщо він не відповідає, клієнт намагається встановити зв’язок з\n" +"будь-яким сервером, визначеним записами SRV ldap у DNS.\n" +"\n" +"ПРИКЛАДИ:\n" +"\n" +" Перевірити луна-імпульсом сервер IPA:\n" +" ipa ping\n" +" ------------------------------------------\n" +" Сервер IPA версії 2.1.9. Версія API 2.20\n" +" ------------------------------------------\n" +"\n" +" Перевірити луна-імпульсом сервер IPA і отримати докладні дані:\n" +" ipa -v ping\n" +" ipa: INFO: trying https://ipa.example.com/ipa/xml\n" +" ipa: INFO: Forwarding 'ping' to server 'https://ipa.example.com/ipa/xml'\n" +" -----------------------------------------------------\n" +" Сервер IPA версії 2.1.9. Версія API 2.20\n" +" -----------------------------------------------------\n" + +msgid "Ping a remote server." +msgstr "Перевірити луна-імпульсом (пінгом) віддалений сервер." + +msgid "" +"\n" +"Groups of users\n" +"\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" +"\n" +"Every group must have a description.\n" +"\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not " +"necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" +"\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +"\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" +"\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +"\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" +"\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" +"\n" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" +"\n" +" Add multiple users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1 --users=test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" +"\n" +"External group membership is designed to allow users from trusted domains\n" +"to be mapped to local POSIX groups in order to actually use IPA resources.\n" +"External members should be added to groups that specifically created as\n" +"external and non-POSIX. Such group later should be included into one of " +"POSIX\n" +"groups.\n" +"\n" +"An external group member is currently a Security Identifier (SID) as defined " +"by\n" +"the trusted domain. When adding external group members, it is possible to\n" +"specify them in either SID, or DOM\n" +"ame, or name@domain format. IPA will attempt\n" +"to resolve passed name to SID with the use of Global Catalog of the trusted " +"domain.\n" +"\n" +"Example:\n" +"\n" +"1. Create group for the trusted domain admins' mapping and their local POSIX " +"group:\n" +"\n" +" ipa group-add --desc=' admins external map' ad_admins_external " +"--external\n" +" ipa group-add --desc=' admins' ad_admins\n" +"\n" +"2. Add security identifier of Domain Admins of the to the " +"ad_admins_external\n" +" group:\n" +"\n" +" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n" +"\n" +"3. Allow members of ad_admins_external group to be associated with ad_admins " +"POSIX group:\n" +"\n" +" ipa group-add-member ad_admins --groups ad_admins_external\n" +"\n" +"4. List members of external members of ad_admins_external group to see their " +"SIDs:\n" +"\n" +" ipa group-show ad_admins_external\n" +msgstr "" +"\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 --users=test2 localadmins\n" +"\n" +" Вилучення користувача з групи \"localadmins\":\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Показати інформацію щодо іменованої групи.\n" +" ipa group-show localadmins\n" +"\n" +"Участь із зовнішніх груп створено для того, щоб уможливити прив’язку\n" +"користувачів з довірених доменів до локальних груп POSIX з метою\n" +"використання ресурсів IPA. Зовнішніх користувачів слід додавати до груп\n" +"які спеціально створено як зовнішні або групи не-POSIX. Таку групу\n" +"слід пізніше включити до одної з груп POSIX.\n" +"\n" +"У поточній версії учасник зовнішньої групи є ідентифікатором безпеки\n" +"(Security Identifier або SID) визначеним довіреним доменом. Додавання\n" +"учасників зовнішньої групи можна виконати у форматі SID, DOM\\ім’я або\n" +"ім’я@домен. IPA намагатиметься визначити за переданим іменем SID за\n" +"допомогою використання Загального каталогу довіреного домену.\n" +"\n" +"Приклад:\n" +"\n" +"1. Створити групу для прив’язки адміністраторів довіреного домену до\n" +"відповідної локальної групи POSIX:\n" +"\n" +" ipa group-add --desc='<домен.ad> admins external map' ad_admins_external " +"--external\n" +" ipa group-add --desc='<домен.ad> admins' ad_admins\n" +"\n" +"2. Додати ідентифікатор Domain Admins домену <домен.ad> до\n" +"групи ad_admins_external:\n" +"\n" +" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n" +"\n" +"3. Дозволити прив’язку групи ad_admins_external до групи POSIX ad_admins:\n" +"\n" +" ipa group-add-member ad_admins --groups ad_admins_external\n" +"\n" +"4. Показати список зовнішніх учасників групи ad_admins_external, щоб " +"визначити\n" +"їхні SIDs:\n" +"\n" +" ipa group-show ad_admins_external\n" + +msgid "GID (use this option to set it manually)" +msgstr "GID (за допомогою цього параметра можна встановити значення вручну)" + +msgid "Indirect Member users" +msgstr "Опосередковані користувачі «member»" + +msgid "Indirect Member groups" +msgstr "Опосередковані групи «member»" + +msgid "Create a new group." +msgstr "Створити нову групу." + +msgid "Create as a non-POSIX group" +msgstr "Створити як групу, що не відповідає POSIX" + +msgid "Allow adding external non-IPA members from trusted domains" +msgstr "Дозволити додавання зовнішніх учасників поза IPA з довірених доменів" + +msgid "Add members to a group." +msgstr "Додати учасників до групи." + +msgid "External member" +msgstr "Зовнішній учасник" + +msgid "Members of a trusted domain in DOM\\name or name@domain form" +msgstr "Учасники довіреного домену у форматі ДОМЕН\\ім’я або ім’я@домен" + +msgid "Delete group." +msgstr "Вилучити групу." + +msgid "Detach a managed group from a user." +msgstr "Від’єднати керовану групу від користувача." + +msgid "Search for groups." +msgstr "Шукати групи." + +msgid "search for private groups" +msgstr "шукати закриті групи" + +msgid "search for POSIX groups" +msgstr "шукати групи POSIX" + +msgid "" +"search for groups with support of external non-IPA members from trusted " +"domains" +msgstr "" +"шукати групи з підтримкою зовнішніх учасників поза IPA з довірених доменів" + +msgid "search for non-POSIX groups" +msgstr "шукати групи, які не є групами POSIX" + +msgid "Results should contain primary key attribute only (\"group-name\")" +msgstr "Результати мають містити лише атрибут основного ключа («group-name»)" + +msgid "Search for groups with these member users." +msgstr "Шукати групи із вказаними користувачами-учасниками." + +msgid "Search for groups without these member users." +msgstr "Шукати групи без вказаних користувачів-учасників." + +msgid "Search for groups with these member groups." +msgstr "Шукати групи із вказаними групами-учасниками." + +msgid "Search for groups without these member groups." +msgstr "Шукати групи без вказаних груп-учасників." + +msgid "Search for groups with these member of groups." +msgstr "Шукати групи із вказаними групами участі." + +msgid "Search for groups without these member of groups." +msgstr "Шукати групи без вказаних груп участі." + +msgid "Search for groups with these member of netgroups." +msgstr "Шукати групи із вказаними мережевими групами участі." + +msgid "Search for groups without these member of netgroups." +msgstr "Шукати групи без вказаних мережевих груп участі." + +msgid "Search for groups with these member of roles." +msgstr "Шукати групи із вказаними ролями участі." + +msgid "Search for groups without these member of roles." +msgstr "Шукати групи без вказаних ролей участі." + +msgid "Search for groups with these member of HBAC rules." +msgstr "Шукати групи із цими правилами HBAC участі." + +msgid "Search for groups without these member of HBAC rules." +msgstr "Шукати групи без цих правил HBAC участі." + +msgid "Search for groups with these member of sudo rules." +msgstr "Шукати групи із цими правилами sudo участі." + +msgid "Search for groups without these member of sudo rules." +msgstr "Шукати групи без цих правил sudo участі." + +msgid "Modify a group." +msgstr "Змінити групу." + +msgid "change to a POSIX group" +msgstr "змінити на групу POSIX" + +msgid "change to support external non-IPA members from trusted domains" +msgstr "змінити для підтримки зовнішніх учасників поза IPA з довірених доменів" + +msgid "Rename the group object" +msgstr "Перейменувати об’єкт групи" + +msgid "Remove members from a group." +msgstr "Вилучити учасників з групи." + +msgid "Display information about a named group." +msgstr "Показати дані щодо іменованої групи." + +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" +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" + +msgid "Sudo Command" +msgstr "Команда sudo" + +msgid "A description of this command" +msgstr "Опис цієї команди" + +msgid "Create new Sudo Command." +msgstr "Створити запис команди sudo." + +msgid "Delete Sudo Command." +msgstr "Вилучити запис команди sudo." + +msgid "Search for Sudo Commands." +msgstr "Знайти команди sudo." + +msgid "Results should contain primary key attribute only (\"command\")" +msgstr "Результати мають містити лише атрибут основного ключа («command»)" + +msgid "Modify Sudo Command." +msgstr "Змінити команду sudo." + +msgid "Display Sudo Command." +msgstr "Показати команду sudo." + +msgid "" +"\n" +"Domain Name System (DNS)\n" +"\n" +"Manage DNS zone and resource records.\n" +"\n" +"SUPPORTED ZONE TYPES\n" +"\n" +" * Master zone (dnszone-*), contains authoritative data.\n" +" * Forward zone (dnsforwardzone-*), forwards queries to configured " +"forwarders\n" +" (a set of DNS servers).\n" +"\n" +"USING STRUCTURED PER-TYPE OPTIONS\n" +"\n" +"There are many structured DNS RR types where DNS data stored in LDAP server\n" +"is not just a scalar value, for example an IP address or a domain name, but\n" +"a data structure which may be often complex. A good example is a LOC record\n" +"[RFC1876] which consists of many mandatory and optional parts (degrees,\n" +"minutes, seconds of latitude and longitude, altitude or precision).\n" +"\n" +"It may be difficult to manipulate such DNS records without making a mistake\n" +"and entering an invalid value. DNS module provides an abstraction over " +"these\n" +"raw records and allows to manipulate each RR type with specific options. " +"For\n" +"each supported RR type, DNS module provides a standard option to manipulate\n" +"a raw records with format ---rec, e.g. --mx-rec, and special " +"options\n" +"for every part of the RR structure with format ---, e.g.\n" +"--mx-preference and --mx-exchanger.\n" +"\n" +"When adding a record, either RR specific options or standard option for a " +"raw\n" +"value can be used, they just should not be combined in one add operation. " +"When\n" +"modifying an existing entry, new RR specific options can be used to change\n" +"one part of a DNS record, where the standard option for raw value is used\n" +"to specify the modified value. The following example demonstrates\n" +"a modification of MX record preference from 0 to 1 in a record without\n" +"modifying the exchanger:\n" +"ipa dnsrecord-mod --mx-rec=\"0 mx.example.com.\" --mx-preference=1\n" +"\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add new zone:\n" +" ipa dnszone-add example.com --admin-email=admin@example.com\n" +"\n" +" Add system permission that can be used for per-zone privilege delegation:\n" +" ipa dnszone-add-permission 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" +"\n" +" This is the equivalent of:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE --update-policy=" +"\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA; grant " +"EXAMPLE.COM krb5-self * SSHFP;\"\n" +"\n" +" Modify the zone to allow zone transfers for local network only:\n" +" ipa dnszone-mod example.com --allow-transfer=192.0.2.0/24\n" +"\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip=192.0.2.0/24\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 mail1\"\n" +"\n" +" Add another record using MX record specific options:\n" +" ipa dnsrecord-add example.com @ --mx-preference=20 --mx-exchanger=mail2\n" +"\n" +" Add another record using interactive mode (started when dnsrecord-add, " +"dnsrecord-mod,\n" +" or dnsrecord-del are executed with no options):\n" +" ipa dnsrecord-add example.com @\n" +" Please choose a type of DNS resource record to be added\n" +" The most common types for this type of zone are: NS, MX, LOC\n" +"\n" +" DNS resource record type: MX\n" +" MX Preference: 30\n" +" MX Exchanger: mail3\n" +" Record name: example.com\n" +" MX record: 10 mail1, 20 mail2, 30 mail3\n" +" NS record: nameserver.example.com., nameserver2.example.com.\n" +"\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. Create a reverse record in " +"appropriate\n" +" reverse zone as well. In this case a PTR record \"2\" pointing to www." +"example.com\n" +" will be created in zone 2.0.192.in-addr.arpa.\n" +" ipa dnsrecord-add example.com www --a-rec=192.0.2.2 --a-create-reverse\n" +"\n" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 2.0.192.in-addr.arpa. 2 --ptr-rec=www.example.com.\n" +"\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 interactive mode can be used for easy modification:\n" +" ipa dnsrecord-mod example.com _ldap._tcp\n" +" No option to modify specific record provided.\n" +" Current DNS record contents:\n" +"\n" +" SRV record: 0 3 389 fast.example.com, 0 1 389 slow.example.com, 1 1 389 " +"backup.example.com\n" +"\n" +" Modify SRV record '0 3 389 fast.example.com'? Yes/No (default No):\n" +" Modify SRV record '0 1 389 slow.example.com'? Yes/No (default No): y\n" +" SRV Priority [0]: (keep the default value)\n" +" SRV Weight [1]: 2 (modified value)\n" +" SRV Port [389]: (keep the default value)\n" +" SRV Target [slow.example.com]: (keep the default value)\n" +" 1 SRV record skipped. Only one value per DNS record type can be modified " +"at one time.\n" +" Record name: _ldap._tcp\n" +" SRV record: 0 3 389 fast.example.com, 1 1 389 backup.example.com, 0 2 " +"389 slow.example.com\n" +"\n" +" After this modification, three fifths of the requests should go to\n" +" fast.example.com and two fifths to slow.example.com.\n" +"\n" +" An example of the interactive mode for dnsrecord-del command:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" +"\n" +" A record: 192.0.2.2, 192.0.2.3\n" +"\n" +" Delete A record '192.0.2.2'? Yes/No (default No):\n" +" Delete A record '192.0.2.3'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 192.0.2.2 (A record 192.0.2.3 has been " +"deleted)\n" +"\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 192.0.2.2 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec=192.0.2.2\n" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Delegate zone sub.example to another nameserver:\n" +" ipa dnsrecord-add example.com ns.sub --a-rec=203.0.113.1\n" +" ipa dnsrecord-add example.com sub --ns-rec=ns.sub.example.com.\n" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +"\n" +" If a global forwarder is configured, all queries for which this server is " +"not\n" +" authoritative (e.g. sub.example.com) will be routed to the global " +"forwarder.\n" +" Global forwarding configuration can be overridden per-zone.\n" +"\n" +" Semantics of forwarding in IPA matches BIND semantics and depends on the " +"type\n" +" of zone:\n" +" * Master zone: local BIND replies authoritatively to queries for data in\n" +" the given zone (including authoritative NXDOMAIN answers) and forwarding\n" +" affects only queries for names below zone cuts (NS records) of locally\n" +" served zones.\n" +"\n" +" * Forward zone: forward zone contains no authoritative data. BIND " +"forwards\n" +" queries, which cannot be answered from its local cache, to configured\n" +" forwarders.\n" +"\n" +" Semantics of the --forward-policy option:\n" +" * none - disable forwarding for the given zone.\n" +" * first - forward all queries to configured forwarders. If they fail,\n" +" do resolution using DNS root servers.\n" +" * only - forward all queries to configured forwarders and if they fail,\n" +" return failure.\n" +"\n" +" Disable global forwarding for given sub-tree:\n" +" ipa dnszone-mod example.com --forward-policy=none\n" +"\n" +" This configuration forwards all queries for names outside the example.com\n" +" sub-tree to global forwarders. Normal recursive resolution process is used\n" +" for names inside the example.com sub-tree (i.e. NS records are followed " +"etc.).\n" +"\n" +" Forward all requests for the zone external.example.com to another " +"forwarder\n" +" using a \"first\" policy (it will send the queries to the selected " +"forwarder\n" +" and if not answered it will use global root servers):\n" +" ipa dnsforwardzone-add external.example.com --forward-" +"policy=first --forwarder=203.0.113.1\n" +"\n" +" Change forward-policy for external.example.com:\n" +" ipa dnsforwardzone-mod external.example.com --forward-policy=only\n" +"\n" +" Show forward zone external.example.com:\n" +" ipa dnsforwardzone-show external.example.com\n" +"\n" +" List all forward zones:\n" +" ipa dnsforwardzone-find\n" +"\n" +" Delete forward zone external.example.com:\n" +" ipa dnsforwardzone-del external.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" +"\n" +"\n" +"GLOBAL DNS CONFIGURATION\n" +"\n" +"DNS configuration passed to command line install script is stored in a " +"local\n" +"configuration file on each IPA server where DNS service is configured. " +"These\n" +"local settings can be overridden with a common configuration stored in LDAP\n" +"server:\n" +"\n" +" Show global DNS configuration:\n" +" ipa dnsconfig-show\n" +"\n" +" Modify global DNS configuration and set a list of global forwarders:\n" +" ipa dnsconfig-mod --forwarder=203.0.113.113\n" +msgstr "" +"\n" +"Система назв доменів (DNS)\n" +"\n" +"Керування записами зон та ресурсів DNS.\n" +"\n" +"ПІДТРИМУВАНІ ТИПИ ЗОН\n" +"\n" +" * Основна зона (dnszone-*), містить довірені дані.\n" +" * Зона переспрямовування (dnsforwardzone-*), переспрямовує запити до " +"налаштованих засобів обробки\n" +" (набору серверів DNS).\n" +"\n" +"ВИКОРИСТАННЯ СТРУКТУРОВАНИХ ПАРАМЕТРІВ ДЛЯ ОКРЕМИХ ТИПІВ\n" +"\n" +"Існує багато структурованих типів RR DNS, для яких дані DNS, що " +"зберігаються\n" +"на сервері LDAP, не є скалярним значенням, наприклад дані щодо IP-адресу " +"або\n" +"назву домену, а структурою даних, яка часто може бути складною. Прикладом\n" +"може бути запис LOC [RFC1876], який складається з багатьох обов’язкових і\n" +"необов’язкових частин (градусів, мінут, секунд широти і довготи, висоти\n" +"та похибки).\n" +"\n" +"Робота з такими записами DNS без помилки і введення некоректного значення\n" +"може бути складною. Модуль DNS надає у ваше розпорядження абстракцію над\n" +"цими необробленими записами і спосіб керування кожним з типів RR за\n" +"допомогою специфічних параметрів. Для кожного з підтримуваних типів\n" +"RR у модулі DNS передбачено стандартний параметр для роботи із\n" +"необробленими записами за допомогою формату --<тип_rr>-rec, наприклад,\n" +"--mx-rec та зі спеціальними параметрами для кожної із частин структури RR\n" +"за допомогою формату --<тип_rr>-<назва_частини>, наприклад --mx-preference\n" +"та --mx-exchanger.\n" +"\n" +"\n" +"Під час додавання запису можна скористатися специфічними для RR параметрами\n" +"або стандартним параметром для необробленого значення. Втім, поєднувати\n" +"ці варіанти у одній дії із додавання не можна. Під час внесення змін до\n" +"наявного запису можна скористатися для зміни однієї частини запису DNS\n" +"новими специфічними параметрами RR, причому для визначення зміненого\n" +"значення буде використано стандартний варіант необробленого значення.\n" +"У наведеному нижче прикладі продемонстровано зміну пріоритетності запису\n" +"MX з 0 на 1 у записі без внесення змін до обмінника:\n" +"ipa dnsrecord-mod --mx-rec=\"0 mx.example.com.\" --mx-preference=1\n" +"\n" +"\n" +"ПРИКЛАДИ:\n" +"\n" +" Додавання нової зони:\n" +" ipa dnszone-add example.com --admin-email=admin@example.com\n" +"\n" +" Додавання загальносистемних прав доступу, якими можна скористатися для " +"делегування привілеїв для окремих зон:\n" +" ipa dnszone-add-permission example.com\n" +"\n" +" Зміна зони таким чином, щоб дозволити динамічне оновлення для власних " +"записів вузлів у області EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE\n" +"\n" +" Ця команда еквівалентна до такої команди:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM " +"krb5-self * AAAA; grant EXAMPLE.COM krb5-self * SSHFP;\"\n" +"\n" +" Зміна зони таким чином, щоб дозволити перенесення зони лише для локальної " +"мережі:\n" +" ipa dnszone-mod example.com --allow-transfer=192.0.2.0/24\n" +"\n" +" Додавання нової реверсивної зони, вказаної за допомогою мережевої IP-" +"адреси:\n" +" ipa dnszone-add --name-from-ip=192.0.2.0/24\n" +"\n" +" Додати другий сервер назв для example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec=nameserver2.example.com\n" +"\n" +"\n" +" Додавання поштового сервера для example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail1\"\n" +"\n" +" Додавання ще одного запису за допомогою специфічних для запису MX " +"параметрів:\n" +" ipa dnsrecord-add example.com @ --mx-preference=20 --mx-exchanger=mail2\n" +"\n" +" Додавання ще одного запису за допомогою інтерактивного режиму (у який " +"програма переходить\n" +" у відповідь на команди dnsrecord-add, dnsrecord-mod або dnsrecord-del без " +"параметрів):\n" +" ipa dnsrecord-add example.com @\n" +" Будь ласка, виберіть тип запису ресурсу DNS, який слід додати\n" +" Найпоширенішими типами для цього типу зон є: NS, MX, LOC\n" +"\n" +" Тип запису ресурсу DNS: MX\n" +" Пріоритетність MX: 30\n" +" Обмінник MX: mail3\n" +" Назва запису: example.com\n" +" Запис MX: 10 mail1, 20 mail2, 30 mail3\n" +" Запис NS: nameserver.example.com., nameserver2.example.com.\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, крім того, створення " +"зворотного\n" +" запису у відповідній зворотній зоні. У цьому випадку запис PTR «2» вказує " +"на\n" +" www.example.com буде створено у зоні 2.0.192.in-addr.arpa.\n" +" ipa dnsrecord-add example.com www --a-rec=192.0.2.2 --a-create-reverse\n" +"\n" +" Додавання нового запису PTR для www.example.com\n" +" ipa dnsrecord-add 2.0.192.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" +" Для полегшення внесення змін можна скористатися інтерактивним режимом:\n" +" ipa dnsrecord-mod example.com _ldap._tcp\n" +" Можливості внесення змін у певний запис не передбачено.\n" +" Поточний вміст запису DNS:\n" +"\n" +" Запис SRV: 0 3 389 fast.example.com, 0 1 389 slow.example.com, 1 1 389 " +"backup.example.com\n" +"\n" +" Змінити запис SRV «0 3 389 fast.example.com»? Так/Ні (типово «Ні»):\n" +" Змінити запис SRV «0 1 389 slow.example.com»? Так/Ні (типово «Ні»): y\n" +" Пріоритетність SRV [0]: (зберегти типове значення)\n" +" Вага SRV [1]: 2 (змінене значення)\n" +" Порт SRV [389]: (зберегти типове значення)\n" +" Призначення SRV [slow.example.com]: (зберегти типове значення)\n" +" Пропущено 1 запис SRV. Одночасно можна змінювати лише одне значення на тип " +"запису DNS.\n" +" Назва запису: _ldap._tcp\n" +" Запис SRV: 0 3 389 fast.example.com, 1 1 389 backup.example.com, 0 2 389 " +"slow.example.com\n" +"\n" +" Після внесення цих змін три п’ятих запитів має надсилатися до\n" +" fast.example.com, а дві п’ятих — до slow.example.com.\n" +"\n" +" Приклад інтерактивного режиму для команди dnsrecord-del:\n" +" ipa dnsrecord-del example.com www\n" +" Не вказано параметр вилучення певного запису.\n" +" Вилучити усі? Так/Ні (типово «Ні»): (не вилучати усі записи)\n" +" Поточний вміст запису DNS:\n" +"\n" +" Запис A: 192.0.2.2, 192.0.2.3\n" +"\n" +" Вилучити запис A «192.0.2.2»? Так/Ні (типово «Ні»):\n" +" Вилучити запис A «192.0.2.3»? Так/Ні (типово «Ні»): y\n" +" Назва запису: www\n" +" Запис A: 192.0.2.2 (Запис A 192.0.2.3 вилучено)\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 зі значенням 192.0.2.2 у зоні example.com\n" +" ipa dnsrecord-find example.com --a-rec=192.0.2.2\n" +"\n" +" Показати записи для ресурсу www у зоні example.com\n" +" ipa dnsrecord-show example.com www\n" +"\n" +" Делегування зони sub.example до іншого сервера назв:\n" +" ipa dnsrecord-add example.com ns.sub --a-rec=203.0.113.1\n" +" ipa dnsrecord-add example.com sub --ns-rec=ns.sub.example.com.\n" +"\n" +" Вилучення зони example.com з усіма записами ресурсів:\n" +" ipa dnszone-del example.com\n" +"\n" +" Якщо налаштовано загальний переспрямовувач, усі запити, для яких цей сервер " +"не є\n" +" надійним (наприклад sub.example.com) не маршрутизуватимуться до загального\n" +" переспрямовувача.\n" +" Загальні налаштування переспрямовування можна перевизначати для окремих " +"зон.\n" +" Семантика переспрямовування у IPA збігається із семантикою BIND і залежить\n" +" від типу зони:\n" +" * Основна зона: локальний BIND надає надійні відповіді для даних у " +"заданій\n" +" зоні (включено з надійними відповідями NXDOMAIN), а переспрямовування\n" +" стосуватиметься лише запитів щодо назв за межами (записами NS) зон, що\n" +" обслуговуються локально.\n" +"\n" +" * Зона переспрямовування: зона переспрямовування не містить надійних " +"даних. BIND\n" +" переспрямовує запити, на які не вдалося отримати відповіді з локального " +"кешу, до\n" +" налаштованих переспрямовувачів.\n" +"\n" +" Семантика параметра --forwarder-policy:\n" +" * none — вимкнути переспрямовування для вказаної зони.\n" +" * first — спрямувати усі запити до налаштованих переспрямовувачів. Якщо\n" +" це не спрацює, виконати перетворення за допомогою кореневих серверів " +"DNS.\n" +" * only — спрямувати усі запити до налаштованих переспрямовувачів. Якщо\n" +" це не спрацює, повернути повідомлення про помилку.\n" +"\n" +" Вимикання загального переспрямовування для вказаного піддерева:\n" +" ipa dnszone-mod example.com --forward-policy=none\n" +"\n" +" За цих налаштувань усі запити щодо назв поза піддеревом example.com буде\n" +" спрямовано до загальних переспрямовувачів. Для назв у межах піддерева\n" +" example.com буде використано звичайну рекурсивну (тобто з переходом за\n" +" записами NS) процедуру визначення.\n" +"\n" +" Переспрямувати усі запити для зони external.example.com до іншого " +"переспрямовувача\n" +" з використанням правила «first» (надсилати запити до вибраного " +"переспрямовувача і,\n" +" якщо він не відповість, скористатися загальними кореневими серверами):\n" +" ipa dnsforwardzone-add external.example.com --forward-policy=first \\\n" +" --forwarder=203.0.113.1\n" +"\n" +" Змінити правила переспрямовування для external.example.com:\n" +" ipa dnsforwardzone-mod external.example.com --forward-policy=only\n" +"\n" +" Показати зону переспрямовування external.example.com:\n" +" ipa dnsforwardzone-show external.example.com\n" +"\n" +" Показати список усіх зон переспрямовування:\n" +" ipa dnsforwardzone-find\n" +"\n" +" Вилучення зони переспрямовування external.example.com:\n" +" ipa dnsforwardzone-del external.example.com\n" +"\n" +" Визначити адресу вузла за назвою, якщо адреса існує (додасть типовий\n" +" домен IPA, якщо домен не включено):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" +"\n" +"\n" +"ЗАГАЛЬНІ НАЛАШТУВАННЯ DNS\n" +"\n" +"Налаштування DNS, що передаються до скрипту командного рядка для " +"встановлення,\n" +"зберігаються у локальному файлі налаштувань на кожному з серверів IPA, де\n" +"налаштовано службу DNS. Ці локальні параметри можна перевизначити за " +"допомогою\n" +"загальних налаштувань, що зберігаються на сервері LDAP:\n" +"\n" +" Показати загальні налаштування DNS:\n" +" ipa dnsconfig-show\n" +"\n" +" Зміна загальних налаштувань DNS і встановлення списку загальних " +"переспрямовувачів:\n" +" ipa dnsconfig-mod --forwarder=203.0.113.113\n" + +msgid "Global forwarders" +msgstr "Загальні переспрямовувачі" + +msgid "" +"Global forwarders. A custom port can be specified for each forwarder using a " +"standard format \"IP_ADDRESS port PORT\"" +msgstr "" +"Переспрямовувачі загального рівня. Для кожного переспрямовувача можна " +"вказати нетиповий порт за допомогою стандартного формату: «IP_АДРЕСА port " +"ПОРТ»" + +msgid "Forward policy" +msgstr "Правила переспрямовування" + +msgid "" +"Global forwarding policy. Set to \"none\" to disable any configured global " +"forwarders." +msgstr "" +"Загальні правил переспрямовування. Щоб вимкнути будь-які переспрямовувачі на " +"загальному рівні, встановіть значення «none»." + +msgid "Allow PTR sync" +msgstr "Дозволити PTR-синхронізацію" + +msgid "Allow synchronization of forward (A, AAAA) and reverse (PTR) records" +msgstr "Дозволити синхронізацію прямих (A, AAAA) і зворотних (PTR) записів" + +msgid "Zone refresh interval" +msgstr "Інтервал між оновленнями даних зони" + +msgid "Zone name" +msgstr "Назва зони" + +msgid "Zone name (FQDN)" +msgstr "Назва зони (FQDN)" + +msgid "Reverse zone IP network" +msgstr "Мережа IP зворотної зони" + +msgid "IP network to create reverse zone name from" +msgstr "Мережа IP для створення зворотних назв зони" + +msgid "Active zone" +msgstr "Активна зона" + +msgid "Is zone active?" +msgstr "Чи є зона активною?" + +msgid "Zone forwarders" +msgstr "Переспрямовувачі зон" + +msgid "" +"Per-zone forwarders. A custom port can be specified for each forwarder using " +"a standard format \"IP_ADDRESS port PORT\"" +msgstr "" +"Переспрямовувачі для окремої зони. Можна вказати нетиповий порт для кожного " +"переспрямовувача у стандартному форматі: «IP_АДРЕСА port ПОРТ»" + +msgid "" +"Per-zone conditional forwarding policy. Set to \"none\" to disable " +"forwarding to global forwarder for this zone. In that case, conditional zone " +"forwarders are disregarded." +msgstr "" +"Умовні правила переспрямування для окремої зони. Встановіть значення «none» " +"для вимикання переспрямовувача загального рівня для цієї зони. Якщо ви " +"встановите це значення, умовні переспрямовувачі зони не братимуться до уваги." + +msgid "Record name" +msgstr "Назва запису" + +msgid "Time to live" +msgstr "Строк дії" + +msgid "Records" +msgstr "Записи" + +msgid "Record type" +msgstr "Тип запису" + +msgid "Record data" +msgstr "Дані запису" + +msgid "A record" +msgstr "запис A" + +msgid "Raw A records" +msgstr "Прості записи A" + +msgid "A IP Address" +msgstr "IP-адреса A" + +msgid "A Create reverse" +msgstr "Створити зворотний A" + +msgid "Create reverse record for this IP Address" +msgstr "Створити зворотний запис для цієї IP-адреси" + +msgid "AAAA record" +msgstr "запис AAAA" + +msgid "Raw AAAA records" +msgstr "Прості записи AAAA" + +msgid "AAAA IP Address" +msgstr "IP-адреса AAAA" + +msgid "AAAA Create reverse" +msgstr "Створити зворотний запис AAAA" + +msgid "A6 record" +msgstr "Запис A6" + +msgid "Raw A6 records" +msgstr "Прості записи A6" + +msgid "A6 Record data" +msgstr "Дані запису A6" + +msgid "AFSDB record" +msgstr "Запис AFSDB" + +msgid "Raw AFSDB records" +msgstr "Прості записи AFSDB" + +msgid "AFSDB Subtype" +msgstr "Підтип AFSDB" + +msgid "Subtype" +msgstr "Підтип" + +msgid "AFSDB Hostname" +msgstr "Назва вузла AFSDB" + +msgid "Hostname" +msgstr "Назва вузла" + +msgid "APL record" +msgstr "запис APL" + +msgid "Raw APL records" +msgstr "Прості записи APL" + +msgid "CERT record" +msgstr "запис CERT" + +msgid "Raw CERT records" +msgstr "Прості записи CERT" + +msgid "CERT Certificate Type" +msgstr "Тип сертифіката CERT" + +msgid "Certificate Type" +msgstr "Тип сертифіката" + +msgid "CERT Key Tag" +msgstr "Мітка ключа CERT" + +msgid "Key Tag" +msgstr "Мітка ключа" + +msgid "CERT Algorithm" +msgstr "Алгоритм CERT" + +msgid "CERT Certificate/CRL" +msgstr "Сертифікат або CRL CERT" + +msgid "Certificate/CRL" +msgstr "Сертифікат/CRL" + +msgid "CNAME record" +msgstr "запис CNAME" + +msgid "Raw CNAME records" +msgstr "Прості записи CNAME" + +msgid "CNAME Hostname" +msgstr "Назва вузла CNAME" + +msgid "A hostname which this alias hostname points to" +msgstr "Назва вузла на яку вказує цей псевдонім вузла" + +msgid "DHCID record" +msgstr "запис DHCID" + +msgid "Raw DHCID records" +msgstr "Прості записи DHCID" + +msgid "DLV record" +msgstr "Запис DLV" + +msgid "Raw DLV records" +msgstr "Прості записи DLV" + +msgid "DLV Key Tag" +msgstr "Мітка ключа DLV" + +msgid "DLV Algorithm" +msgstr "Алгоритм DLV" + +msgid "DLV Digest Type" +msgstr "Тип контрольної суми DLV" + +msgid "Digest Type" +msgstr "Тип контрольної суми" + +msgid "DLV Digest" +msgstr "Контрольна сума DLV" + +msgid "Digest" +msgstr "Контрольна сума" + +msgid "DNAME record" +msgstr "Запис DNAME" + +msgid "Raw DNAME records" +msgstr "Прості записи DNAME" + +msgid "DNAME Target" +msgstr "Ціль DNAME" + +msgid "Target" +msgstr "Ціль" + +msgid "DS record" +msgstr "Запис DS" + +msgid "Raw DS records" +msgstr "Прості записи DS" + +msgid "DS Key Tag" +msgstr "Мітка ключа DS" + +msgid "DS Algorithm" +msgstr "Алгоритм DS" + +msgid "DS Digest Type" +msgstr "Тип контрольної суми DS" + +msgid "DS Digest" +msgstr "Контрольна сума DS" + +msgid "HIP record" +msgstr "Запис HIP" + +msgid "Raw HIP records" +msgstr "Прості записи HIP" + +msgid "IPSECKEY record" +msgstr "Запис IPSECKEY" + +msgid "Raw IPSECKEY records" +msgstr "Прості записи IPSECKEY" + +msgid "KEY record" +msgstr "Запис KEY" + +msgid "Raw KEY records" +msgstr "Прості записи KEY" + +msgid "KX record" +msgstr "Запис KX" + +msgid "Raw KX records" +msgstr "Прості записи KX" + +msgid "KX Preference" +msgstr "Пріоритетність KX" + +msgid "Preference given to this exchanger. Lower values are more preferred" +msgstr "" +"Пріоритет цього обмінника. Записи з меншим значенням мають вищий пріоритет." + +msgid "KX Exchanger" +msgstr "Обмінник KX" + +msgid "A host willing to act as a key exchanger" +msgstr "Вузол, який може працювати як обмінник ключів" + +msgid "LOC record" +msgstr "Запис LOC" + +msgid "Raw LOC records" +msgstr "Прості записи LOC" + +msgid "LOC Degrees Latitude" +msgstr "Градуси широти LOC" + +msgid "Degrees Latitude" +msgstr "Градуси широти" + +msgid "LOC Minutes Latitude" +msgstr "Мінути широти LOC" + +msgid "Minutes Latitude" +msgstr "Мінути широти" + +msgid "LOC Seconds Latitude" +msgstr "Секунди широти LOC" + +msgid "Seconds Latitude" +msgstr "Секунди широти" + +msgid "LOC Direction Latitude" +msgstr "Півкуля широти LOC" + +msgid "Direction Latitude" +msgstr "Півкуля широти" + +msgid "LOC Degrees Longitude" +msgstr "Градуси довготи LOC" + +msgid "Degrees Longitude" +msgstr "Градуси довготи" + +msgid "LOC Minutes Longitude" +msgstr "Мінути довготи LOC" + +msgid "Minutes Longitude" +msgstr "Мінути довготи" + +msgid "LOC Seconds Longitude" +msgstr "Секунди довготи LOC" + +msgid "Seconds Longitude" +msgstr "Секунди довготи" + +msgid "LOC Direction Longitude" +msgstr "Півкуля довготи LOC" + +msgid "Direction Longitude" +msgstr "Півкуля довготи" + +msgid "LOC Altitude" +msgstr "Висота LOC" + +msgid "Altitude" +msgstr "Висота" + +msgid "LOC Size" +msgstr "Розмір LOC" + +msgid "Size" +msgstr "Розмір" + +msgid "LOC Horizontal Precision" +msgstr "Точність за горизонталлю LOC" + +msgid "Horizontal Precision" +msgstr "Точність за горизонталлю" + +msgid "LOC Vertical Precision" +msgstr "Точність за вертикаллю LOC" + +msgid "Vertical Precision" +msgstr "Точність за вертикаллю" + +msgid "MX record" +msgstr "Запис MX" + +msgid "Raw MX records" +msgstr "Прості записи MX" + +msgid "MX Preference" +msgstr "Пріоритетність MX" + +msgid "MX Exchanger" +msgstr "Обмінник MX" + +msgid "A host willing to act as a mail exchanger" +msgstr "Вузол, який може працювати як обмінник поштовими даними" + +msgid "NAPTR record" +msgstr "Запис NAPTR" + +msgid "Raw NAPTR records" +msgstr "Прості записи NAPTR" + +msgid "NAPTR Order" +msgstr "Порядок NAPTR" + +msgid "Order" +msgstr "Порядок" + +msgid "NAPTR Preference" +msgstr "Пріоритетність NAPTR" + +msgid "Preference" +msgstr "Пріоритет" + +msgid "NAPTR Flags" +msgstr "Прапорці NAPTR" + +msgid "Flags" +msgstr "Прапорці" + +msgid "NAPTR Service" +msgstr "Служба NAPTR" + +msgid "NAPTR Regular Expression" +msgstr "Формальний вираз NAPTR" + +msgid "Regular Expression" +msgstr "Формальний вираз" + +msgid "NAPTR Replacement" +msgstr "Замінник NAPTR" + +msgid "Replacement" +msgstr "Заміна" + +msgid "NS record" +msgstr "Запис NS" + +msgid "Raw NS records" +msgstr "Прості записи NS" + +msgid "NS Hostname" +msgstr "Назва вузла NS" + +msgid "NSEC record" +msgstr "запис NSEC" + +msgid "Raw NSEC records" +msgstr "Прості записи NSEC" + +msgid "PTR record" +msgstr "Запис PTR" + +msgid "Raw PTR records" +msgstr "Прості записи PTR" + +msgid "PTR Hostname" +msgstr "Назва вузла PTR" + +msgid "The hostname this reverse record points to" +msgstr "Назва вузла, на яку вказує цей зворотний запис" + +msgid "RRSIG record" +msgstr "Запис RRSIG" + +msgid "Raw RRSIG records" +msgstr "Прості записи RRSIG" + +msgid "RP record" +msgstr "Запис RP" + +msgid "Raw RP records" +msgstr "Прості записи RP" + +msgid "SIG record" +msgstr "Запис SIG" + +msgid "Raw SIG records" +msgstr "Прості записи SIG" + +msgid "SPF record" +msgstr "Запис SPF" + +msgid "Raw SPF records" +msgstr "Прості записи SPF" + +msgid "SRV record" +msgstr "Запис SRV" + +msgid "Raw SRV records" +msgstr "Прості записи SRV" + +msgid "SRV Priority" +msgstr "Пріоритетність SRV" + +msgid "SRV Weight" +msgstr "Вага SRV" + +msgid "Weight" +msgstr "Вага" + +msgid "SRV Port" +msgstr "Порт SRV" + +msgid "Port" +msgstr "Порт" + +msgid "SRV Target" +msgstr "Ціль SRV" + +msgid "" +"The domain name of the target host or '.' if the service is decidedly not " +"available at this domain" +msgstr "" +"Доменна назва вузла призначення або '.', якщо служба є явно недоступною на " +"цьому домені" + +msgid "SSHFP record" +msgstr "Запис SSHFP" + +msgid "Raw SSHFP records" +msgstr "Прості записи SSHFP" + +msgid "SSHFP Algorithm" +msgstr "Алгоритм SSHFP" + +msgid "SSHFP Fingerprint Type" +msgstr "Тип відбитка SSHFP" + +msgid "Fingerprint Type" +msgstr "Тип відбитка" + +msgid "SSHFP Fingerprint" +msgstr "Відбиток SSHFP" + +msgid "Fingerprint" +msgstr "Відбиток" + +msgid "TLSA record" +msgstr "Запис TLSA" + +msgid "Raw TLSA records" +msgstr "Прості записи TLSA" + +msgid "TLSA Certificate Usage" +msgstr "Використання сертифіката TLSA" + +msgid "Certificate Usage" +msgstr "Використання сертифіката" + +msgid "TLSA Selector" +msgstr "Селектор TLSA" + +msgid "Selector" +msgstr "Селектор" + +msgid "TLSA Matching Type" +msgstr "Відповідний тип TLSA" + +msgid "Matching Type" +msgstr "Відповідний тип" + +msgid "TLSA Certificate Association Data" +msgstr "Дані прив’язки сертифікатів TLSA" + +msgid "Certificate Association Data" +msgstr "Дані прив’язки сертифікатів" + +msgid "TXT record" +msgstr "Запис TXT" + +msgid "Raw TXT records" +msgstr "Прості записи TXT" + +msgid "TXT Text Data" +msgstr "Текстові дані TXT" + +msgid "Text Data" +msgstr "Текстові дані" + +msgid "Authoritative nameserver" +msgstr "Основний сервер назв" + +msgid "Authoritative nameserver domain name" +msgstr "Назва домену основного сервера назв" + +msgid "Administrator e-mail address" +msgstr "Адреса електронної пошти адміністратора" + +msgid "SOA serial" +msgstr "Серійний номер SOA" + +msgid "SOA record serial number" +msgstr "Серійний номер запису SOA" + +msgid "SOA refresh" +msgstr "Освіження SOA" + +msgid "SOA record refresh time" +msgstr "Час оновлення запису SOA" + +msgid "SOA retry" +msgstr "Повторення спроби SOA" + +msgid "SOA record retry time" +msgstr "Проміжок між повторними спробами для запису SOA" + +msgid "SOA expire" +msgstr "Застарівання SOA" + +msgid "SOA record expire time" +msgstr "Час завершення строку дії запису SOA" + +msgid "SOA minimum" +msgstr "Мінімальний SOA" + +msgid "How long should negative responses be cached" +msgstr "Тривалість кешування відмов" + +msgid "Time to live for records at zone apex" +msgstr "Час життя записів у апексі зони" + +msgid "BIND update policy" +msgstr "Правила оновлення BIND" + +msgid "Dynamic update" +msgstr "Динамічне оновлення" + +msgid "Allow dynamic updates." +msgstr "Дозволити динамічні оновлення." + +msgid "Allow query" +msgstr "Дозволити запит" + +msgid "" +"Semicolon separated list of IP addresses or networks which are allowed to " +"issue queries" +msgstr "" +"Список відокремлених крапкою з комою записів IP-адрес або мереж, яким надано " +"доступ до надсилання запитів" + +msgid "Allow transfer" +msgstr "Дозволити перенесення" + +msgid "" +"Semicolon separated list of IP addresses or networks which are allowed to " +"transfer the zone" +msgstr "" +"Список відокремлених крапкою з комою записів IP-адрес або мереж, яким надано " +"доступ до перенесення зони" + +msgid "" +"Allow synchronization of forward (A, AAAA) and reverse (PTR) records in the " +"zone" +msgstr "" +"Дозволити у зоні синхронізацію прямих (A, AAAA) і зворотних (PTR) записів" + +msgid "Allow in-line DNSSEC signing" +msgstr "Дозволити вбудоване підписування DNSSEC" + +msgid "Allow inline DNSSEC signing of records in the zone" +msgstr "Дозволити вбудоване підписування DNSSEC записів у зоні" + +msgid "NSEC3PARAM record" +msgstr "Запис NSEC3PARAM" + +msgid "" +"NSEC3PARAM record for zone in format: hash_algorithm flags iterations salt" +msgstr "" +"Запис NSEC3PARAM для зони у такому форматі: алгоритм_хешування прапорці " +"ітерації сіль" + +msgid "Checks if any of the servers has the DNS service enabled." +msgstr "Перевіряє, чи увімкнено на якомусь із серверів службу DNS." + +msgid "Resolve a host name in DNS. (Deprecated)" +msgstr "Визначити назву вузла у DNS. (Застаріле)" + +msgid "Hostname (FQDN)" +msgstr "Назва вузла (FQDN)" + +msgid "Modify global DNS configuration." +msgstr "Змінити загальні налаштування DNS." + +msgid "Show the current global DNS configuration." +msgstr "Показати поточні загальні налаштування DNS." + +msgid "Create new DNS forward zone." +msgstr "Створити зону переспрямовування DNS." + +msgid "Force DNS zone creation even if it will overlap with an existing zone." +msgstr "" +"Примусове створення зони DNS, навіть якщо вона перекриватиметься із наявною." + +msgid "Add a permission for per-forward zone access delegation." +msgstr "" +"Додати право доступу до делегування доступу на основі окремих зон " +"переспрямовування." + +msgid "Permission value" +msgstr "Значення прав доступу" + +msgid "Delete DNS forward zone." +msgstr "Вилучити зону переспрямовування DNS." + +msgid "Disable DNS Forward Zone." +msgstr "Вимкнути зону переспрямовування DNS." + +msgid "Enable DNS Forward Zone." +msgstr "Увімкнути зону переспрямовування DNS" + +msgid "Search for DNS forward zones." +msgstr "Пошук зон переспрямовування DNS." + +msgid "Modify DNS forward zone." +msgstr "Змінити зону переспрямовування DNS." + +msgid "Remove a permission for per-forward zone access delegation." +msgstr "" +"Вилучити права доступу до делегування доступу для окремих зон " +"переспрямовування." + +msgid "Display information about a DNS forward zone." +msgstr "Показ даних щодо зони переспрямовування DNS." + +msgid "Add new DNS resource record." +msgstr "Додати новий запис ресурсу DNS." + +msgid "force NS record creation even if its hostname is not in DNS" +msgstr "" +"примусово створити запис сервера назв, навіть якщо відповідної назви вузла " +"немає у DNS" + +msgid "Structured" +msgstr "Структурована" + +msgid "Parse all raw DNS records and return them in a structured way" +msgstr "Обробити всі записи DNS і повернути дані у структурованій формі" + +msgid "Delete DNS resource record." +msgstr "Вилучити запис ресурсу DNS." + +msgid "Delete all associated records" +msgstr "Вилучити всі пов’язані записи" + +msgid "Delete DNS record entry." +msgstr "Вилучити пункт запису DNS." + +msgid "Search for DNS resources." +msgstr "Шукати ресурси DNS." + +msgid "Modify a DNS resource record." +msgstr "Змінити запис ресурсу DNS." + +msgid "Rename the DNS resource record object" +msgstr "Перейменувати об’єкт запису ресурсу DNS" + +msgid "Display DNS resource." +msgstr "Показати ресурс DNS." + +msgid "Create new DNS zone (SOA record)." +msgstr "Створити зону DNS (запис SOA)." + +msgid "" +"Force DNS zone creation even if nameserver is not resolvable. (Deprecated)" +msgstr "" +"Примусове створення зони DNS, навіть якщо адресу сервера назв не вдається " +"визначити. (застаріле)" + +msgid "Force DNS zone creation even if nameserver is not resolvable." +msgstr "" +"Примусово створити зону DNS, навіть якщо не вдається визначити адресу " +"сервера назв." + +msgid "Add a permission for per-zone access delegation." +msgstr "Додати права доступу до надання доступу до окремих зон." + +msgid "Delete DNS zone (SOA record)." +msgstr "Вилучити зону DNS (запис SOA)." + +msgid "Disable DNS Zone." +msgstr "Вимкнути зону DNS." + +msgid "Enable DNS Zone." +msgstr "Увімкнути зону DNS." + +msgid "Search for DNS zones (SOA records)." +msgstr "Пошук зон DNS (записів SOA)." + +msgid "Forward zones only" +msgstr "Лише прямі зони" + +msgid "Search for forward zones only" +msgstr "Шукати лише прямі зони" + +msgid "Modify DNS zone (SOA record)." +msgstr "Змінити зону DNS (запис SOA)." + +msgid "Force nameserver change even if nameserver not in DNS" +msgstr "" +"Примусово змінити сервер назв, навіть якщо запису сервера назв немає у DNS" + +msgid "Remove a permission for per-zone access delegation." +msgstr "Вилучити права доступу до надання доступу до окремих зон." + +msgid "Display information about a DNS zone (SOA record)." +msgstr "Показати дані щодо зони DNS (запису SOA)." + +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" + +msgid "Set a user's password." +msgstr "Встановити пароль користувача." + +msgid "New Password" +msgstr "Новий пароль" + +msgid "Current Password" +msgstr "Поточний пароль" + +msgid "OTP" +msgstr "OTP" + +msgid "One Time Password" +msgstr "Одноразовий пароль" + +msgid "" +"\n" +"YubiKey Tokens\n" +"\n" +"Manage YubiKey tokens.\n" +"\n" +"This code is an extension to the otptoken plugin and provides support for\n" +"reading/writing YubiKey tokens directly.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new token:\n" +" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" +msgstr "" +"\n" +"Жетони YubiKey\n" +"\n" +"Керування жетонами YubiKey.\n" +"\n" +"Цей код є розширенням до додатка otptoken, він надає підтримку " +"безпосереднього\n" +"читання та запису жетонів YubiKey.\n" +"\n" +"ПРИКЛАДИ:\n" +"\n" +" Додати новий жетон:\n" +" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" + +msgid "Managed suffix" +msgstr "Керований суфікс" + +msgid "" +"\n" +"Topology\n" +"\n" +"Management of a replication topology.\n" +"\n" +"Requires minimum domain level 1.\n" +msgstr "" +"\n" +"Топологія\n" +"\n" +"Керування топологією реплікації.\n" +"\n" +"Потребує мінімального рівня домену 1.\n" + +msgid "LDAP suffix to be managed" +msgstr "Суфікс LDAP, яким слід керувати" + +msgid "Search for topology suffices." +msgstr "Шукати суфікси топології." + +msgid "Resolve a host name in DNS." +msgstr "Визначити назву вузла у DNS." + +msgid "Time limit of search in seconds" +msgstr "Обмеження часу пошуку у секундах" + +msgid "Maximum number of entries returned" +msgstr "Максимальна кількість повернутих записів" + +msgid "" +"Applies ID View to specified hosts or current members of specified " +"hostgroups. If any other ID View is applied to the host, it is overriden." +msgstr "" +"Застосовує перегляд ідентифікаторів до вказаних вузлів або поточних " +"учасників вказаних груп вузлів. Якщо до вузла застосовується якийсь інший " +"перегляд ідентифікаторів, його буде перевизначено." + +msgid "" +"\n" +"ID ranges\n" +"\n" +"Manage ID ranges used to map Posix IDs to SIDs and back.\n" +"\n" +"There are two type of ID ranges which are both handled by this utility:\n" +"\n" +" - the ID ranges of the local domain\n" +" - the ID ranges of trusted remote domains\n" +"\n" +"Both types have the following attributes in common:\n" +"\n" +" - base-id: the first ID of the Posix ID range\n" +" - range-size: the size of the range\n" +"\n" +"With those two attributes a range object can reserve the Posix IDs starting\n" +"with base-id up to but not including base-id+range-size exclusively.\n" +"\n" +"Additionally an ID range of the local domain may set\n" +" - rid-base: the first RID(*) of the corresponding RID range\n" +" - secondary-rid-base: first RID of the secondary RID range\n" +"\n" +"and an ID range of a trusted domain must set\n" +" - rid-base: the first RID of the corresponding RID range\n" +" - sid: domain SID of the trusted domain\n" "\n" "\n" "\n" @@ -2051,27 +11526,6 @@ msgstr "" "IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config» так, щоб\n" "він відповідав новому діапазону.\n" -msgid "Range name" -msgstr "Назва діапазону" - -msgid "First Posix ID of the range" -msgstr "Перший ідентифікатор POSIX діапазону" - -msgid "Number of IDs in the range" -msgstr "Кількість ідентифікаторів у діапазоні" - -msgid "First RID of the corresponding RID range" -msgstr "Перший RID відповідного діапазону RID" - -msgid "First RID of the secondary RID range" -msgstr "Перший RID вторинного діапазону RID" - -msgid "Domain SID of the trusted domain" -msgstr "SID довіреного домену" - -msgid "Range type" -msgstr "Тип діапазону" - msgid "" "\n" "Add new ID range.\n" @@ -2088,7 +11542,7 @@ msgid "" "\n" " may be given for a new ID range for the local domain while\n" "\n" -" --rid-bas\n" +" --rid-base\n" " --dom-sid\n" "\n" " must be given to add a new range for a trusted AD domain.\n" @@ -2146,1782 +11600,9 @@ msgstr "" " до параметрів нового діапазону.\n" " " -msgid "Delete an ID range." -msgstr "Вилучити діапазон ідентифікаторів." - -msgid "Continuous mode: Don't stop on errors." -msgstr "Режим неперервної роботи: не зупинятися у разі помилок." - -msgid "Search for ranges." -msgstr "Шукати діапазони." - -msgid "Time Limit" -msgstr "Обмеження часу" - -msgid "Time limit of search in seconds" -msgstr "Обмеження часу пошуку у секундах" - -msgid "Size Limit" -msgstr "Обмеження розміру" - -msgid "Maximum number of entries returned" -msgstr "Максимальна кількість повернутих записів" - -msgid "Primary key only" -msgstr "Лише первинний ключ" - -msgid "Results should contain primary key attribute only (\"name\")" -msgstr "Результати мають містити лише атрибут основного ключа («name»)" - msgid "Modify ID range." msgstr "Змінити діапазон ідентифікаторів." -msgid "Display information about a range." -msgstr "Показати дані щодо діапазону." - -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" -"Іменування\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" -"буде ІМПОРТОВАНО, якщо ви скористалися entitle-import.\n" -"\n" -"Зміни у /etc/rhsm/rhsm.conf для набуття чинності потребуватимуть перезапуску " -"служби httpd.\n" - -msgid "Consume an entitlement." -msgstr "Використати іменування." - -msgid "Quantity" -msgstr "Кількість" - -msgid "Search for entitlement accounts." -msgstr "Шукати облікові записи іменування." - -msgid "Retrieve the entitlement certs." -msgstr "Отримати сертифікати іменування." - -msgid "Import an entitlement certificate." -msgstr "Імпортувати сертифікат надання імен." - -msgid "UUID" -msgstr "UUID" - -msgid "Enrollment UUID" -msgstr "UUID надання ролей" - -msgid "Register to the entitlement system." -msgstr "Зареєструватися у системі іменування." - -msgid "Username" -msgstr "Користувач" - -msgid "Enrollment UUID (not implemented)" -msgstr "UUID надання ролі (не реалізовано)" - -msgid "Password" -msgstr "Пароль" - -msgid "Registration password" -msgstr "Пароль для реєстрації" - -msgid "Display current entitlements." -msgstr "Показати поточні іменування." - -msgid "Re-sync the local entitlement cache with the entitlement server." -msgstr "" -"Повторно синхронізувати локальний кеш іменування із сервером іменування." - -msgid "" -"\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" -"\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Override a default list of supported PAC types for the service:\n" -" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n" -"\n" -" 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" -msgstr "" -"\n" -"Служби\n" -"\n" -"Служба IPA — це служба, що працює на вузлі системи. У записі служби\n" -"IPA можуть зберігатися дані реєстраційного запису Kerberos, сертифікат\n" -"SSL або обидва набори даних.\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" -"\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" -" Перевизначити типовий список підтримуваних типів PAC для служби:\n" -" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\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" - -msgid "Principal" -msgstr "Реєстраційний запис" - -msgid "Service principal" -msgstr "Реєстраційний запис служби" - -msgid "Certificate" -msgstr "Сертифікат" - -msgid "Base-64 encoded server certificate" -msgstr "Сертифікат сервера у кодуванні Base-64" - -msgid "PAC type" -msgstr "Тип PAC" - -msgid "" -"Override default list of supported PAC types. Use 'NONE' to disable PAC " -"support for this service" -msgstr "" -"Перевизначити типовий список підтримуваних типів PAC. Скористайтеся " -"значенням «NONE», щоб вимкнути підтримку PAC для цієї служби." - -msgid "Keytab" -msgstr "Таблиця ключів" - -msgid "Managed by" -msgstr "Керується" - -msgid "Add a new IPA new service." -msgstr "Додати нову службу IPA." - -msgid "Force" -msgstr "Примусово" - -msgid "force principal name even if not in DNS" -msgstr "" -"примусове значення назви реєстраційного запису, навіть якщо назви немає у DNS" - -msgid "Add hosts that can manage this service." -msgstr "Додати вузли, які можуть керувати цією службою." - -msgid "member host" -msgstr "вузол-учасник" - -msgid "comma-separated list of hosts to add" -msgstr "список вузлів, які слід додати, відокремлених комами" - -msgid "Members that could not be added" -msgstr "Учасники, записи яких не вдалося додати" - -msgid "Number of members added" -msgstr "Кількість доданих учасників" - -msgid "Delete an IPA service." -msgstr "Вилучити службу IPA." - -msgid "Disable the Kerberos key and SSL certificate of a service." -msgstr "Вимкнути ключ Kerberos і сертифікат SSL служби." - -msgid "Search for IPA services." -msgstr "Знайти служби IPA." - -msgid "Results should contain primary key attribute only (\"principal\")" -msgstr "Результати мають містити лише атрибут основного ключа («principal»)" - -msgid "host" -msgstr "вузол" - -msgid "Search for services with these managed by hosts." -msgstr "Шукати служби із цими керованими вузлами." - -msgid "Search for services without these managed by hosts." -msgstr "Шукати служби без цих керованих вузлів." - -msgid "Modify an existing IPA service." -msgstr "Змінити вже створену службу IPA." - -msgid "Remove hosts that can manage this service." -msgstr "Вилучити вузли, які можуть керувати цією службою." - -msgid "comma-separated list of hosts to remove" -msgstr "список вузлів, які слід вилучити, відокремлених комами" - -msgid "Members that could not be removed" -msgstr "Учасники, записи яких не вдалося вилучити" - -msgid "Number of members removed" -msgstr "Кількість вилучених учасників" - -msgid "Display information about an IPA service." -msgstr "Показати дані щодо служби IPA." - -msgid "file to store certificate in" -msgstr "файл, у якому зберігатимуться дані сертифіката" - -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 invoke Sudo.\n" -" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke " -"Sudo.\n" -" Allow Command: The specific command(s) permitted to be run via Sudo.\n" -" Deny Command: The specific command(s) prohibited to be run via Sudo.\n" -" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be " -"invoked with.\n" -" 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" -"An order can be added to a sudorule to control the order in which they\n" -"are evaluated (if the client supports it). This order is an integer and\n" -"must be unique.\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 "" -"\n" -"Правила sudo\n" -"\n" -"Sudo (su \"do\") надає системному адміністратору змогу делегувати\n" -"повноваження певним користувачам (або групам користувачів) на виконання\n" -"деяких (або усіх) команд від імені адміністратора (root) або іншого\n" -"користувача, зберігаючи водночас журнал виконання команд та\n" -"аргументів.\n" -"\n" -"У FreeIPA передбачено декілька параметрів налаштовування роботи sudo:\n" -" Users: користувачі або групи, які можуть викликати sudo.\n" -" Hosts: вузли або групи вузлів, користувачі якого можуть викликати sudo.\n" -" Allow Command: специфічні команди, які можна виконувати за допомогою " -"sudo.\n" -" Deny Command: специфічні команди, які не можна виконувати за допомогою " -"sudo.\n" -" RunAsUser: користувачі або групи, від імені яких sudo виконуватиме " -"команди.\n" -" RunAsGroup: групи, ідентифікатори яких буде використано sudo для " -"виконання команд.\n" -" Options: різноманітні параметри sudoers, які можуть змінити поведінку " -"sudo.\n" -"\n" -"До правила sudo можна додати порядок, який керуватиме порядком\n" -"обробки записів (якщо такий порядок передбачено на клієнтському боці).\n" -"Порядок визначається числовим індексом, який не повинен повторюватися.\n" -"\n" -"У FreeIPA передбачено визначений binddn для використання з sudo, який " -"розташовано у\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\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" -"\n" -"Докладніші відомості наведено у документації з FreeIPA щодо sudo.\n" - -msgid "Rule name" -msgstr "Назва правила" - -msgid "Description" -msgstr "Опис" - -msgid "Enabled" -msgstr "Увімкнено" - -msgid "User category" -msgstr "Категорія користувачів" - -msgid "User category the rule applies to" -msgstr "Категорія користувачів, до якої застосовується правило" - -msgid "Host category" -msgstr "Категорія вузлів" - -msgid "Host category the rule applies to" -msgstr "Категорія вузлів, до якої застосовується правило" - -msgid "Command category" -msgstr "Категорія команд" - -msgid "Command category the rule applies to" -msgstr "Категорія команд, до якої застосовується правило" - -msgid "RunAs User category" -msgstr "Категорія запуску від імені користувачів" - -msgid "RunAs User category the rule applies to" -msgstr "" -"Категорія запуску від імені користувачів, до якої застосовується правило" - -msgid "RunAs Group category" -msgstr "Категорія запуску від імені групи" - -msgid "RunAs Group category the rule applies to" -msgstr "Категорія запуску від імені групи, до якої застосовується правило" - -msgid "Sudo order" -msgstr "Порядок sudo" - -msgid "integer to order the Sudo rules" -msgstr "ціле число для впорядковування правил sudo" - -msgid "Users" -msgstr "Користувачі" - -msgid "User Groups" -msgstr "Групи користувачів" - -msgid "Hosts" -msgstr "Вузли" - -msgid "Host Groups" -msgstr "Групи вузлів" - -msgid "Sudo Allow Commands" -msgstr "Дозволені команди sudo" - -msgid "Sudo Deny Commands" -msgstr "Заборонені команди sudo" - -msgid "Sudo Allow Command Groups" -msgstr "Групи дозволених команд sudo" - -msgid "Sudo Deny Command Groups" -msgstr "Групи заборонених команд sudo" - -msgid "RunAs Users" -msgstr "Користувачі запуску від імені" - -msgid "Run as a user" -msgstr "Запуск від користувача" - -msgid "Groups of RunAs Users" -msgstr "Групи користувачів запуску від імені" - -msgid "Run as any user within a specified group" -msgstr "Запускати від імені будь-якого користувача вказаної групи" - -msgid "External User" -msgstr "Зовнішній користувач" - -msgid "External User the rule applies to (sudorule-find only)" -msgstr "" -"Зовнішній користувач, до якого застосовуватиметься правило (лише sudorule-" -"find)" - -msgid "RunAs External User" -msgstr "Зовнішній користувач для RunAs" - -msgid "External User the commands can run as (sudorule-find only)" -msgstr "" -"Зовнішній користувач, від імені якого можна віддавати команди (лише sudorule-" -"find)" - -msgid "RunAs External Group" -msgstr "Зовнішня група для RunAs" - -msgid "External Group the commands can run as (sudorule-find only)" -msgstr "" -"Зовнішня група, від імені якої можна віддавати команди (лише sudorule-find)" - -msgid "Sudo Option" -msgstr "Пункт sudo" - -msgid "RunAs Groups" -msgstr "Групи запуску від імені" - -msgid "Run with the gid of a specified POSIX group" -msgstr "Запускати з ідентифікатором вказаної групи POSIX" - -msgid "External host" -msgstr "Зовнішній вузол" - -msgid "Create new Sudo Rule." -msgstr "Створити правило sudo." - -msgid "Add commands and sudo command groups affected by Sudo Rule." -msgstr "Додати команди і групи команд sudo, яких стосується правило sudo." - -msgid "member sudo command" -msgstr "команда учасника sudo" - -msgid "comma-separated list of sudo commands to add" -msgstr "список команд sudo, які слід додати, відокремлених комами" - -msgid "member sudo command group" -msgstr "учасник група команд sudo" - -msgid "comma-separated list of sudo command groups to add" -msgstr "список груп команд sudo, які слід додати, відокремлених комами" - -msgid "Add hosts and hostgroups affected by Sudo Rule." -msgstr "Додати вузли та групи вузлів, яких стосується правило sudo." - -msgid "member host group" -msgstr "група вузлів учасника" - -msgid "comma-separated list of host groups to add" -msgstr "список груп вузлів, які слід додати, відокремлених комами" - -msgid "Add an option to the Sudo Rule." -msgstr "Додати пункт до правила sudo." - -msgid "Add group for Sudo to execute as." -msgstr "Додати групу виконання до запису sudo." - -msgid "member group" -msgstr "група учасника" - -msgid "comma-separated list of groups to add" -msgstr "список груп, які слід додати, відокремлених комами" - -msgid "Add users and groups for Sudo to execute as." -msgstr "" -"Додати користувачів та групи для виконання команд sudo від їхнього імені." - -msgid "member user" -msgstr "користувач учасника" - -msgid "comma-separated list of users to add" -msgstr "список записів користувачів, які слід додати, відокремлених комами" - -msgid "Add users and groups affected by Sudo Rule." -msgstr "Додати записи користувачів та груп, яких стосується правило sudo." - -msgid "Delete Sudo Rule." -msgstr "Вилучити правило sudo." - -msgid "Disable a Sudo Rule." -msgstr "Вимкнути правило sudo." - -msgid "Enable a Sudo Rule." -msgstr "Увімкнути правило sudo." - -msgid "Search for Sudo Rule." -msgstr "Знайти правило sudo." - -msgid "Results should contain primary key attribute only (\"sudorule-name\")" -msgstr "" -"Результати мають містити лише атрибут основного ключа («sudorule-name»)" - -msgid "Modify Sudo Rule." -msgstr "Змінити правило sudo." - -msgid "Remove commands and sudo command groups affected by Sudo Rule." -msgstr "Вилучити команди і групи команд sudo, яких стосується правило sudo." - -msgid "comma-separated list of sudo commands to remove" -msgstr "список команд sudo, які слід вилучити, відокремлених комами" - -msgid "comma-separated list of sudo command groups to remove" -msgstr "список груп команд sudo, які слід вилучити, відокремлених комами" - -msgid "Remove hosts and hostgroups affected by Sudo Rule." -msgstr "Вилучити вузли та групи вузлів, яких стосується правило sudo." - -msgid "comma-separated list of host groups to remove" -msgstr "список груп вузлів, які слід вилучити, відокремлених комами" - -msgid "Remove an option from Sudo Rule." -msgstr "Вилучити пункт з правила sudo." - -msgid "Remove group for Sudo to execute as." -msgstr "Вилучити групу виконання з запису sudo." - -msgid "comma-separated list of groups to remove" -msgstr "список груп, які слід вилучити, відокремлених комами" - -msgid "Remove users and groups for Sudo to execute as." -msgstr "" -"Вилучити користувачів та групи для виконання команд sudo від їхнього імені." - -msgid "comma-separated list of users to remove" -msgstr "список записів користувачів, які слід вилучити, відокремлених комами" - -msgid "Remove users and groups affected by Sudo Rule." -msgstr "Вилучити записи користувачів та груп, яких стосується правило sudo." - -msgid "Display Sudo Rule." -msgstr "Показати правило sudo." - -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 "" -"\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" - -msgid "Sudo Command Group" -msgstr "Група команд sudo" - -msgid "Group description" -msgstr "Опис групи" - -msgid "Commands" -msgstr "Команди" - -msgid "Sudo Command Groups" -msgstr "Групи команд sudo" - -msgid "Member Sudo commands" -msgstr "Команди учасника Sudo" - -msgid "Create new Sudo Command Group." -msgstr "Створити групу команд sudo." - -msgid "Add members to Sudo Command Group." -msgstr "Додати учасників до групи команд sudo." - -msgid "Delete Sudo Command Group." -msgstr "Вилучити групу команд sudo." - -msgid "Search for Sudo Command Groups." -msgstr "Шукати групи команд sudo." - -msgid "" -"Results should contain primary key attribute only (\"sudocmdgroup-name\")" -msgstr "" -"Результати мають містити лише атрибут основного ключа («suydocmdgroup-name»)" - -msgid "Modify Sudo Command Group." -msgstr "Змінити групу команд sudo." - -msgid "Remove members from Sudo Command Group." -msgstr "Вилучити учасників з групи команд sudo." - -msgid "Display Sudo Command Group." -msgstr "Показати групу команд sudo." - -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. search - пошук одного або декількох атрибутів\n" -"4. compare - порівняння одного або декількох атрибутів\n" -"5. add - додавання нового запису до ієрархії\n" -"6. delete - вилучення наявного запису\n" -"7. all - надати усі права доступу\n" -"\n" -"Типово, доступ до читання надається до більшості з атрибутів, отже потреба\n" -"у визначенні прав доступу до читання має виникати доволі нечасто.\n" -"\n" -"Зауважте відмінність між атрибутами і записами. Права доступу є " -"незалежними,\n" -"отже можливість додавання запису користувача не означає, що цей запис " -"згодом\n" -"буде придатним до редагування.\n" -"\n" -"Передбачено декілька можливих призначень:\n" -"1. type: тип об’єкта (user, group тощо).\n" -"2. memberof: учасник групи або групи вузлів\n" -"3. filter: фільтр LDAP\n" -"4. subtree: фільтр LDAP, що визначає частину DIT LDAP. Є надмножиною\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" - -msgid "Permission name" -msgstr "Назва прав доступу" - -msgid "Permissions" -msgstr "Права доступу" - -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" -msgstr "" -"Права доступу, які слід надати, відокремлених комами (read, write, add, " -"delete, all)" - -msgid "Attributes" -msgstr "Атрибути" - -msgid "Comma-separated list of attributes" -msgstr "Список атрибутів, відокремлених комами" - -msgid "Type" -msgstr "Тип" - -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" -msgstr "" -"тип об’єкта IPA (user (користувач), group (група), host (вузол), hostgroup " -"(група вузлів), service (служба), netgroup (мережева група), dns)" - -msgid "Member of group" -msgstr "Учасник групи" - -msgid "Target members of a group" -msgstr "Цільові учасники групи" - -msgid "Filter" -msgstr "Фільтр" - -msgid "Legal LDAP filter (e.g. ou=Engineering)" -msgstr "Припустимий фільтр LDAP (наприклад, ou=Engineering)" - -msgid "Subtree" -msgstr "Піддерево" - -msgid "Subtree to apply permissions to" -msgstr "Піддерево, до якого буде застосовано права доступу" - -msgid "Target group" -msgstr "Цільова група" - -msgid "User group to apply permissions to" -msgstr "Група користувачів, до якої буде застосовано права доступу" - -msgid "Granted to Privilege" -msgstr "Надані привілеї" - -msgid "Indirect Member of roles" -msgstr "Опосередкований учасник roles" - -msgid "Add a new permission." -msgstr "Додати нові права доступу." - -msgid "Add members to a permission." -msgstr "Додати учасників до запису прав доступу." - -msgid "member privilege" -msgstr "привілеї учасника" - -msgid "comma-separated list of privileges to add" -msgstr "список привілеїв, які слід додати, відокремлених комами" - -msgid "Add a system permission without an ACI" -msgstr "Додати права доступу до системи без ACI" - -msgid "Permission type" -msgstr "Тип прав доступу" - -msgid "Delete a permission." -msgstr "Вилучити права доступу." - -msgid "force delete of SYSTEM permissions" -msgstr "примусове вилучення прав доступу SYSTEM" - -msgid "Search for permissions." -msgstr "Знайти права доступу." - -msgid "Modify a permission." -msgstr "Змінити права доступу." - -msgid "Rename" -msgstr "Перейменувати" - -msgid "Rename the permission object" -msgstr "Перейменувати об’єкт права доступу" - -msgid "Remove members from a permission." -msgstr "Вилучити учасників із запису права доступу." - -msgid "comma-separated list of privileges to remove" -msgstr "список привілеїв, які слід вилучити, відокремлених комами" - -msgid "Display information about a permission." -msgstr "Показати дані щодо прав доступу." - -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" - -msgid "Enable or Disable Anonymous PKINIT." -msgstr "Увімкнути або вимкнути анонімний PKINIT." - -msgid "" -"\n" -"Ping the remote IPA server to ensure it is running.\n" -"\n" -"The ping command sends an echo request to an IPA server. The server\n" -"returns its version information. This is used by an IPA client\n" -"to confirm that the server is available and accepting requests.\n" -"\n" -"The server from xmlrpc_uri in /etc/ipa/default.conf is contacted first.\n" -"If it does not respond then the client will contact any servers defined\n" -"by ldap SRV records in DNS.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Ping an IPA server:\n" -" ipa ping\n" -" ------------------------------------------\n" -" IPA server version 2.1.9. API version 2.20\n" -" ------------------------------------------\n" -"\n" -" Ping an IPA server verbosely:\n" -" ipa -v ping\n" -" ipa: INFO: trying https://ipa.example.com/ipa/xml\n" -" ipa: INFO: Forwarding 'ping' to server u'https://ipa.example.com/ipa/" -"xml'\n" -" -----------------------------------------------------\n" -" IPA server version 2.1.9. API version 2.20\n" -" -----------------------------------------------------\n" -msgstr "" -"\n" -"Перевірка віддаленого сервера IPA з метою переконатися, що він є " -"працездатним.\n" -"\n" -"Програма ping надсилає луна-запит до сервера IPA. Сервер повертає\n" -"дані щодо його версії. Ці дані використовуються клієнтом IPA\n" -"для підтвердження, що сервер є доступним і що він приймає запити.\n" -"\n" -"Сервер з xmlrpc_uri у /etc/ipa/default.conf перевіряється першим.\n" -"Якщо він не відповідає, клієнт намагається встановити зв’язок з\n" -"будь-яким сервером, визначеним записами SRV ldap у DNS.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Перевірити луна-імпульсом сервер IPA:\n" -" ipa ping\n" -" ------------------------------------------\n" -" Сервер IPA версії 2.1.9. Версія API 2.20\n" -" ------------------------------------------\n" -"\n" -" Перевірити луна-імпульсом сервер IPA і отримати докладні дані:\n" -" ipa -v ping\n" -" ipa: INFO: trying https://ipa.example.com/ipa/xml\n" -" ipa: INFO: Forwarding 'ping' to server 'https://ipa.example.com/ipa/xml'\n" -" -----------------------------------------------------\n" -" Сервер IPA версії 2.1.9. Версія API 2.20\n" -" -----------------------------------------------------\n" - -msgid "Ping a remote server." -msgstr "Перевірити луна-імпульсом (пінгом) віддалений сервер." - -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 "" -"\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" - -msgid "Self-service name" -msgstr "Назва самообслуговування" - -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is write." -msgstr "" -"Права доступу, які слід надати, відокремлених комами (read, write). Типовим " -"варіантом є «write» (запис)." - -msgid "Add a new self-service permission." -msgstr "Додати нові права доступу автослужби." - -msgid "Delete a self-service permission." -msgstr "Вилучити права доступу автослужби." - -msgid "Search for a self-service permission." -msgstr "Шукати права доступу автослужби." - -msgid "Modify a self-service permission." -msgstr "Змінити права доступу автослужби." - -msgid "Display information about a self-service permission." -msgstr "Показати дані щодо прав доступу автослужби." - -msgid "" -"\n" -"SELinux User Mapping\n" -"\n" -"Map IPA users to SELinux users by host.\n" -"\n" -"Hosts, hostgroups, users and groups can be either defined within\n" -"the rule or it may point to an existing HBAC rule. When using\n" -"--hbacrule option to selinuxusermap-find an exact match is made on the\n" -"HBAC rule name, so only one or zero entries will be returned.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Create a rule, \"test1\", that sets all users to xguest_u:s0 on the host " -"\"server\":\n" -" ipa selinuxusermap-add --usercat=all --selinuxuser=xguest_u:s0 test1\n" -" ipa selinuxusermap-add-host --hosts=server.example.com test1\n" -"\n" -" Create a rule, \"test2\", that sets all users to guest_u:s0 and uses an " -"existing HBAC rule for users and hosts:\n" -" ipa selinuxusermap-add --usercat=all --hbacrule=webserver --" -"selinuxuser=guest_u:s0 test2\n" -"\n" -" Display the properties of a rule:\n" -" ipa selinuxusermap-show test2\n" -"\n" -" Create a rule for a specific user. This sets the SELinux context for\n" -" user john to unconfined_u:s0-s0:c0.c1023 on any machine:\n" -" ipa selinuxusermap-add --hostcat=all --selinuxuser=unconfined_u:s0-s0:c0." -"c1023 john_unconfined\n" -" ipa selinuxusermap-add-user --users=john john_unconfined\n" -"\n" -" Disable a rule:\n" -" ipa selinuxusermap-disable test1\n" -"\n" -" Enable a rule:\n" -" ipa selinuxusermap-enable test1\n" -"\n" -" Find a rule referencing a specific HBAC rule:\n" -" ipa selinuxusermap-find --hbacrule=allow_some\n" -"\n" -" Remove a rule:\n" -" ipa selinuxusermap-del john_unconfined\n" -"\n" -"SEEALSO:\n" -"\n" -" The list controlling the order in which the SELinux user map is applied\n" -" and the default SELinux user are available in the config-show command.\n" -msgstr "" -"\n" -"Встановлення відповідності користувачів SELinux\n" -"\n" -"Встановити відповідність користувачів IPA користувачам SELinux за вузлами.\n" -"\n" -"Вузли, групи вузлів, користувачі і групи можна визначати або\n" -"в межах правила, або може вказувати на вже створене правило HBAC.\n" -"У разі використання параметра --hbacrule команди selinuxusermap-find\n" -"буде встановлено точну відповідність за назвою правила HBAC, отже буде\n" -"повернуто один або жодного запису.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Створення правила, «test1», яке встановлює всіх користувачів у xguest_u:s0 " -"на вузлі «server»:\n" -" ipa selinuxusermap-add --usercat=all --selinuxuser=xguest_u:s0 test1\n" -" ipa selinuxusermap-add-host --hosts=serverexample.com test1\n" -"\n" -" Створення правила, \"test2\", яке встановлює всіх користувачів у guest_u:s0 " -"і використовує вже створене правило HBAC для користувачів і вузлів:\n" -" ipa selinuxusermap-add --usercat=all --hbacrule=webserver --" -"selinuxuser=guest_u:s0 test2\n" -"\n" -" Показ властивостей правил:\n" -" ipa selinuxusermap-show test2\n" -"\n" -" Створення правила для певного користувача. Встановлює контекст SELinux для " -"користувача\n" -" john у unconfined_u:s0-s0:c0.c1023 на всіх комп’ютерах:\n" -" ipa selinuxusermap-add --hostcat=all --selinuxuser=unconfined_u:s0-s0:c0." -"c1023 john_unconfined\n" -" ipa selinuxusermap-add-user --users=john john_unconfined\n" -"\n" -" Вимикання правила:\n" -" ipa selinuxusermap-disable test1\n" -"\n" -" Увімкнення правила:\n" -" ipa selinuxusermap-enable test1\n" -"\n" -" Пошук правила, що посилається на певне правило HBAC:\n" -" ipa selinuxusermap-find --hbacrule=allow_some\n" -"\n" -" Вилучення правила:\n" -" ipa selinuxusermap-del john_unconfined\n" -"\n" -"ТАКОЖ ОЗНАЙОМТЕСЯ:\n" -"\n" -" Застосовується список, який визначає порядок, у якому встановлюється\n" -" відповідність користувачів. Типового користувача можна за допомогою\n" -" програми config-show.\n" - -msgid "SELinux User" -msgstr "Користувач SELinux" - -msgid "HBAC Rule" -msgstr "Правило HBAC" - -msgid "HBAC Rule that defines the users, groups and hostgroups" -msgstr "Правило HBAC, яке визначає користувачів, групи і групи вузлів" - -msgid "Create a new SELinux User Map." -msgstr "Створити карту користувачів SELinux." - -msgid "Add target hosts and hostgroups to an SELinux User Map rule." -msgstr "" -"Додати вузли призначення та групи вузлів до правила карти користувачів " -"SELinux." - -msgid "Add users and groups to an SELinux User Map rule." -msgstr "Додати користувачів і групи до правила карти користувачів SELinux." - -msgid "Delete a SELinux User Map." -msgstr "Вилучити карту користувачів SELinux." - -msgid "Disable an SELinux User Map rule." -msgstr "Вимкнути правило карти користувачів SELinux." - -msgid "Enable an SELinux User Map rule." -msgstr "Увімкнути правило карти користувачів SELinux." - -msgid "Search for SELinux User Maps." -msgstr "Шукати карти користувачів SELinux." - -msgid "Modify a SELinux User Map." -msgstr "Змінити карту користувачів SELinux." - -msgid "Remove target hosts and hostgroups from an SELinux User Map rule." -msgstr "" -"Вилучити вузли призначення та групи вузлів з правила карти користувачів " -"SELinux." - -msgid "Remove users and groups from an SELinux User Map rule." -msgstr "Вилучити користувачів і групи з правила карти користувачів SELinux." - -msgid "Display the properties of a SELinux User Map rule." -msgstr "Показати властивості правила карти користувачів SELinux." - -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" -" Remove SSH public keys of a host and update DNS to reflect this change:\n" -" ipa host-mod --sshpubkey= --updatedns 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" -"- вузол можна використовувати у правилах Host-based Access Control (HBAC)\n" -"- для усіх зареєстрованих клієнтів створюється запис вузла\n" -"\n" -"РЕЄСТРАЦІЯ:\n" -"\n" -"Передбачено три сценарії реєстрації нових клієнтів:\n" -"\n" -"1. Ви реєструєтеся як повноцінний адміністратор. Запис вузла може існувати\n" -" або не існувати. Повноцінний адміністратор виконує роль hostadmin або є\n" -" учасником групи admins.\n" -"2. Ви реєструєтеся як адміністратор з обмеженими правами. Вузол вже має\n" -" існувати. Обмежений адміністратор виконує роль з привілеями\n" -" Host Enrollment.\n" -"3. Вузол було створено з одноразовим паролем.\n" -"\n" -"Вузлу можна надати роль лише один раз. Якщо клієнту вже надано роль і\n" -"роль слід змінити, запис вузла має бути вилучено і створено повторно.\n" -"Зауважте, що повторне створення запису вузла призведе до вилучення усіх\n" -"служб для вузла, а усі сертифікати SSL, пов’язані із цими службами\n" -"буде відкликано.\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" -" Вилучити відкриті ключі SSH вузла і оновити DNS відповідно до внесених " -"змін:\n" -" ipa host-mod --sshpubkey= --updatedns test.example.com\n" -"\n" -"Вимкнути ключ Kerberos вузла, сертифікат SSL та усі його служби:\n" -" ipa host-disable test.example.com\n" -"\n" -"Додати вузол, який може керувати сховищем ключів та сертифікатом цього " -"вузла :\n" -" ipa host-add-managedby --hosts=test2 test\n" - -msgid "Host name" -msgstr "Назва вузла" - -msgid "A description of this host" -msgstr "Опис цього вузла" - -msgid "Locality" -msgstr "Адреса" - -msgid "Host locality (e.g. \"Baltimore, MD\")" -msgstr "Адреса розташування вузла (наприклад, «Київ, Україна»)" - -msgid "Location" -msgstr "Запис" - -msgid "Host location (e.g. \"Lab 2\")" -msgstr "Розташування вузла (наприклад, «Lab 2»)" - -msgid "Platform" -msgstr "Платформа" - -msgid "Host hardware platform (e.g. \"Lenovo T61\")" -msgstr "Апаратна платформа вузла (наприклад, «Lenovo T61»)" - -msgid "Operating system" -msgstr "Операційна система" - -msgid "Host operating system and version (e.g. \"Fedora 9\")" -msgstr "Операційна система вузла і її версія (наприклад, «Fedora 9\")" - -msgid "User password" -msgstr "Пароль користувача" - -msgid "Password used in bulk enrollment" -msgstr "Пароль для загального керування реєстраційними записами" - -msgid "Generate a random password to be used in bulk enrollment" -msgstr "" -"Створити випадковий пароль, який буде використано для загальної реєстрації" - -msgid "Random password" -msgstr "Випадковий пароль" - -msgid "Principal name" -msgstr "Назва реєстраційного запису" - -msgid "MAC address" -msgstr "MAC-адреса" - -msgid "Hardware MAC address(es) on this host" -msgstr "Апаратні MAC-адреси цього вузла" - -msgid "SSH public key" -msgstr "Відкритий ключ SSH" - -msgid "Member of host-groups" -msgstr "Учасник host-groups" - -msgid "Roles" -msgstr "Ролі" - -msgid "Member of netgroups" -msgstr "Мережеві групи «member of»" - -msgid "Member of Sudo rule" -msgstr "Правило Sudo «member of»" - -msgid "Member of HBAC rule" -msgstr "Правило HBAC «member of»" - -msgid "Indirect Member of netgroup" -msgstr "Опосередкована група «member of»" - -msgid "Indirect Member of host-group" -msgstr "Опосередкований учасник групи вузлів" - -msgid "Indirect Member of role" -msgstr "Опосередкована роль «member of»" - -msgid "Indirect Member of Sudo rule" -msgstr "Опосередковане правило sudo «member of»" - -msgid "Indirect Member of HBAC rule" -msgstr "Опосередковане правило HBAC «member of»" - -msgid "Managing" -msgstr "Керування" - -msgid "Add a new host." -msgstr "Додати новий запис вузла." - -msgid "force host name even if not in DNS" -msgstr "примусове значення назви вузла, навіть якщо назви немає у DNS" - -msgid "skip reverse DNS detection" -msgstr "пропустити зворотне визначення DNS" - -msgid "IP Address" -msgstr "IP-адреса" - -msgid "Add the host to DNS with this IP address" -msgstr "Додати запис вузла до DNS з цією IP-адресою" - -msgid "Add hosts that can manage this host." -msgstr "Додати записи вузлів, які можуть керувати цим вузлом." - -msgid "Delete a host." -msgstr "Вилучити вузол." - -msgid "Remove entries from DNS" -msgstr "Вилучити записи з DNS" - -msgid "Disable the Kerberos key, SSL certificate and all services of a host." -msgstr "Вимкнути ключ Kerberos, сертифікат SSL і всі служби на вузлі." - -msgid "Search for hosts." -msgstr "Шукати вузли." - -msgid "Results should contain primary key attribute only (\"hostname\")" -msgstr "Результати мають містити лише атрибут основного ключа («hostname»)" - -msgid "host group" -msgstr "група вузлів" - -msgid "Search for hosts with these member of host groups." -msgstr "Шукати вузли із вказаними групами вузлів участі." - -msgid "Search for hosts without these member of host groups." -msgstr "Шукати вузли без вказаних груп вузлів участі." - -msgid "netgroup" -msgstr "мережева група" - -msgid "Search for hosts with these member of netgroups." -msgstr "Шукати вузли із вказаними мережевими групами участі." - -msgid "Search for hosts without these member of netgroups." -msgstr "Шукати вузли без вказаних мережевих груп участі." - -msgid "role" -msgstr "роль" - -msgid "Search for hosts with these member of roles." -msgstr "Шукати вузли із вказаними ролями участі." - -msgid "Search for hosts without these member of roles." -msgstr "Шукати вузли без вказаних ролей участі." - -msgid "HBAC rule" -msgstr "Правило HBAC" - -msgid "Search for hosts with these member of HBAC rules." -msgstr "Шукати вузли із цими правилами HBAC участі." - -msgid "Search for hosts without these member of HBAC rules." -msgstr "Шукати вузли без цих правил HBAC участі." - -msgid "sudo rule" -msgstr "правило sudo" - -msgid "Search for hosts with these member of sudo rules." -msgstr "Шукати вузли із цими правилами sudo участі." - -msgid "Search for hosts without these member of sudo rules." -msgstr "Шукати вузли без цих правил sudo участі." - -msgid "user" -msgstr "користувач" - -msgid "Search for hosts with these enrolled by users." -msgstr "Шукати вузли з цими користувачами, якими надано ролі." - -msgid "Search for hosts without these enrolled by users." -msgstr "Шукати вузли без цих користувачів, якими надано ролі." - -msgid "Search for hosts with these managed by hosts." -msgstr "Шукати вузли із цими керованими вузлами." - -msgid "Search for hosts without these managed by hosts." -msgstr "Шукати вузли без цих керованих вузлів." - -msgid "Search for hosts with these managing hosts." -msgstr "Шукати вузли із цими керівними вузлами." - -msgid "Search for hosts without these managing hosts." -msgstr "Шукати вузли без цих керівних вузлів." - -msgid "Modify information about a host." -msgstr "Змінити дані щодо вузла." - -msgid "Kerberos principal name for this host" -msgstr "Назва реєстраційного запису Kerberos для цього вузла" - -msgid "Update DNS entries" -msgstr "Оновити записи DNS" - -msgid "Remove hosts that can manage this host." -msgstr "Вилучити записи вузлів, які можуть керувати цим вузлом." - -msgid "Display information about a host." -msgstr "Показати дані щодо вузла." - -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 --hbacsvcs=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" - -msgid "Service group name" -msgstr "Назва групи служб" - -msgid "HBAC service group description" -msgstr "Опис групи служб HBAC" - -msgid "Member HBAC service" -msgstr "Служба HBAC учасника" - -msgid "Add a new HBAC service group." -msgstr "Додати нову групу служб HBAC." - -msgid "Add members to an HBAC service group." -msgstr "Додати учасників до групи служб HBAC." - -msgid "member HBAC service" -msgstr "служба HBAC учасника" - -msgid "comma-separated list of HBAC services to add" -msgstr "список служб HBAC, які слід додати, відокремлених комами" - -msgid "Delete an HBAC service group." -msgstr "Вилучити групу служб HBAC." - -msgid "Search for an HBAC service group." -msgstr "Шукати групу служб HBAC." - -msgid "Modify an HBAC service group." -msgstr "Змінити групу служб HBAC." - -msgid "Remove members from an HBAC service group." -msgstr "Вилучити учасників з групи служб HBAC." - -msgid "comma-separated list of HBAC services to remove" -msgstr "список служб HBAC, які слід вилучити, відокремлених комами" - -msgid "Display information about an HBAC service group." -msgstr "Показати дані щодо групи служб HBAC." - -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" -msgstr "" -"\n" -"Додаток для виконання декількох викликів ipa за допомогою одного віддаленого " -"виклику процедури\n" -"\n" -"Щоб запустити цей код на легкому сервері, віддайте такі команди:\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" -"де у файлі batch_request.json міститься десь такий код:\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" -"Формат відповіді має бути розподілений за рівнями вкладеності у подібний же " -"спосіб. На початку ви побачите таке:\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" -"\n" -"\n" -"а далі буде вкладена відповідь для кожного методу команди IPA, який було " -"надіслано у запиті\n" - -msgid "Nested Methods to execute" -msgstr "Вкладені методи, які слід виконати" - -msgid "" -"\n" -"Misc plug-ins\n" -msgstr "" -"\n" -"Інші додатки\n" - -msgid "Dictionary mapping plugin names to bases" -msgstr "Словник для встановлення відповідності назв додатків основним" - msgid "" "\n" "Session Support for IPA\n" @@ -5121,10 +12802,1454 @@ msgstr "" "дані Kerberos видобуватимуться зі змінної середовища KRB5CCNAME,\n" "за вміст якої відповідає mod_auth_kerb. Усе інше залишається тим самим.\n" -msgid "RPC command used to log the current user out of their session." +msgid "" +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -"Команда RPC, яка використовується для завершення сеансу поточного " -"користувача." +"Максимальний проміжок часу (у секундах) для виконання однієї дії з пошуку " +"(>0, -1 — без обмежень)" + +msgid "Maximum number of records to search (-1 is unlimited)" +msgstr "Максимальна кількість записів результатів пошуку (-1 — без обмежень)" + +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +msgstr "" +"Реєстраційний запис служби для цього сертифіката (наприклад HTTP/test." +"example.com)" + +msgid "DNSKEY record" +msgstr "Запис DNSKEY" + +msgid "Raw DNSKEY records" +msgstr "Прості записи DNSKEY" + +msgid "NSEC3 record" +msgstr "Запис NSEC3" + +msgid "Raw NSEC3 records" +msgstr "Прості записи NSEC3" + +msgid "TA record" +msgstr "Запис TA" + +msgid "Raw TA records" +msgstr "Прості записи TA" + +msgid "TKEY record" +msgstr "Запис TKEY" + +msgid "Raw TKEY records" +msgstr "Прості записи TKEY" + +msgid "TSIG record" +msgstr "Запис TSIG" + +msgid "Raw TSIG records" +msgstr "Прості записи TSIG" + +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 invoke Sudo.\n" +" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke " +"Sudo.\n" +" Allow Command: The specific command(s) permitted to be run via Sudo.\n" +" Deny Command: The specific command(s) prohibited to be run via Sudo.\n" +" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be " +"invoked with.\n" +" 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" +"An order can be added to a sudorule to control the order in which they\n" +"are evaluated (if the client supports it). This order is an integer and\n" +"must be unique.\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 "" +"\n" +"Правила sudo\n" +"\n" +"Sudo (su \"do\") надає системному адміністратору змогу делегувати\n" +"повноваження певним користувачам (або групам користувачів) на виконання\n" +"деяких (або усіх) команд від імені адміністратора (root) або іншого\n" +"користувача, зберігаючи водночас журнал виконання команд та\n" +"аргументів.\n" +"\n" +"У FreeIPA передбачено декілька параметрів налаштовування роботи sudo:\n" +" Users: користувачі або групи, які можуть викликати sudo.\n" +" Hosts: вузли або групи вузлів, користувачі якого можуть викликати sudo.\n" +" Allow Command: специфічні команди, які можна виконувати за допомогою " +"sudo.\n" +" Deny Command: специфічні команди, які не можна виконувати за допомогою " +"sudo.\n" +" RunAsUser: користувачі або групи, від імені яких sudo виконуватиме " +"команди.\n" +" RunAsGroup: групи, ідентифікатори яких буде використано sudo для " +"виконання команд.\n" +" Options: різноманітні параметри sudoers, які можуть змінити поведінку " +"sudo.\n" +"\n" +"До правила sudo можна додати порядок, який керуватиме порядком\n" +"обробки записів (якщо такий порядок передбачено на клієнтському боці).\n" +"Порядок визначається числовим індексом, який не повинен повторюватися.\n" +"\n" +"У FreeIPA передбачено визначений binddn для використання з sudo, який " +"розташовано у\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\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" +"\n" +"Докладніші відомості наведено у документації з FreeIPA щодо sudo.\n" + +msgid "comma-separated list of sudo commands to add" +msgstr "список команд sudo, які слід додати, відокремлених комами" + +msgid "comma-separated list of sudo command groups to add" +msgstr "список груп команд sudo, які слід додати, відокремлених комами" + +msgid "comma-separated list of hosts to add" +msgstr "список вузлів, які слід додати, відокремлених комами" + +msgid "comma-separated list of host groups to add" +msgstr "список груп вузлів, які слід додати, відокремлених комами" + +msgid "comma-separated list of groups to add" +msgstr "список груп, які слід додати, відокремлених комами" + +msgid "comma-separated list of users to add" +msgstr "список записів користувачів, які слід додати, відокремлених комами" + +msgid "comma-separated list of sudo commands to remove" +msgstr "список команд sudo, які слід вилучити, відокремлених комами" + +msgid "comma-separated list of sudo command groups to remove" +msgstr "список груп команд sudo, які слід вилучити, відокремлених комами" + +msgid "comma-separated list of hosts to remove" +msgstr "список вузлів, які слід вилучити, відокремлених комами" + +msgid "comma-separated list of host groups to remove" +msgstr "список груп вузлів, які слід вилучити, відокремлених комами" + +msgid "comma-separated list of groups to remove" +msgstr "список груп, які слід вилучити, відокремлених комами" + +msgid "comma-separated list of users to remove" +msgstr "список записів користувачів, які слід вилучити, відокремлених комами" + +msgid "comma-separated list of privileges" +msgstr "список привілеїв, відокремлених комами" + +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" + +msgid "comma-separated list of netgroups to add" +msgstr "список мережевих груп, які слід додати, відокремлених комами" + +msgid "comma-separated list of netgroups to remove" +msgstr "список мережевих груп, які слід вилучити, відокремлених комами" + +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 --group=managers --" +"membergroup=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 --group=managers --" +"membergroup=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 --group=managers --" +"membergroup=employees \"managers edit employees' street\"\n" +"\n" +" Під час керування списком атрибутів слід включати всі атрибути списку\n" +" разом з вже створеними. Додавання до списку postalCode:\n" +" ipa delegation-mod --attrs=street,postalCode --group=managers --" +"membergroup=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" + +msgid "" +"Comma-separated list of permissions to grant (read, write). Default is write." +msgstr "" +"Права доступу, які слід надати, відокремлених комами (read, write). Типовим " +"варіантом є «write» (запис)." + +msgid "Comma-separated list of attributes" +msgstr "Список атрибутів, відокремлених комами" + +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" +"Іменування\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" +"буде ІМПОРТОВАНО, якщо ви скористалися entitle-import.\n" +"\n" +"Зміни у /etc/rhsm/rhsm.conf для набуття чинності потребуватимуть перезапуску " +"служби httpd.\n" + +msgid "Consume an entitlement." +msgstr "Використати іменування." + +msgid "Quantity" +msgstr "Кількість" + +msgid "Search for entitlement accounts." +msgstr "Шукати облікові записи іменування." + +msgid "Retrieve the entitlement certs." +msgstr "Отримати сертифікати іменування." + +msgid "Import an entitlement certificate." +msgstr "Імпортувати сертифікат надання імен." + +msgid "UUID" +msgstr "UUID" + +msgid "Enrollment UUID" +msgstr "UUID надання ролей" + +msgid "Register to the entitlement system." +msgstr "Зареєструватися у системі іменування." + +msgid "Username" +msgstr "Користувач" + +msgid "Enrollment UUID (not implemented)" +msgstr "UUID надання ролі (не реалізовано)" + +msgid "Registration password" +msgstr "Пароль для реєстрації" + +msgid "Display current entitlements." +msgstr "Показати поточні іменування." + +msgid "Re-sync the local entitlement cache with the entitlement server." +msgstr "" +"Повторно синхронізувати локальний кеш іменування із сервером іменування." + +msgid "" +"\n" +"ID ranges\n" +"\n" +"Manage ID ranges used to map Posix IDs to SIDs and back.\n" +"\n" +"There are two type of ID ranges which are both handled by this utility:\n" +"\n" +" - the ID ranges of the local domain\n" +" - the ID ranges of trusted remote domains\n" +"\n" +"Both types have the following attributes in common:\n" +"\n" +" - base-id: the first ID of the Posix ID range\n" +" - range-size: the size of the range\n" +"\n" +"With those two attributes a range object can reserve the Posix IDs starting\n" +"with base-id up to but not including base-id+range-size exclusively.\n" +"\n" +"Additionally an ID range of the local domain may set\n" +" - rid-base: the first RID(*) of the corresponding RID range\n" +" - secondary-rid-base: first RID of the secondary RID range\n" +"\n" +"and an ID range of a trusted domain must set\n" +" - rid-base: the first RID of the corresponding RID range\n" +" - dom_sid: domain SID of the trusted domain\n" +"\n" +"\n" +"\n" +"EXAMPLE: Add a new ID range for a trusted domain\n" +"\n" +"Since there might be more than one trusted domain the domain SID must be " +"given\n" +"while creating the ID range.\n" +"\n" +" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" +"base=0 --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" +"\n" +"This ID range is then used by the IPA server and the SSSD IPA provider to\n" +"assign Posix UIDs to users from the trusted domain.\n" +"\n" +"If e.g. a range for a trusted domain is configured with the following " +"values:\n" +" base-id = 1200000\n" +" range-size = 200000\n" +" rid-base = 0\n" +"the RIDs 0 to 199999 are mapped to the Posix ID from 1200000 to 13999999. " +"So\n" +"RID 1000 <-> Posix ID 1201000\n" +"\n" +"\n" +"\n" +"EXAMPLE: Add a new ID range for the local domain\n" +"\n" +"To create an ID range for the local domain it is not necessary to specify a\n" +"domain SID. But since it is possible that a user and a group can have the " +"same\n" +"value as Posix ID a second RID interval is needed to handle conflicts.\n" +"\n" +" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" +"base=1000 --secondary-rid-base=1000000 local_range\n" +"\n" +"The data from the ID ranges of the local domain are used by the IPA server\n" +"internally to assign SIDs to IPA users and groups. The SID will then be " +"stored\n" +"in the user or group objects.\n" +"\n" +"If e.g. the ID range for the local domain is configured with the values " +"from\n" +"the example above then a new user with the UID 1200007 will get the RID " +"1007.\n" +"If this RID is already used by a group the RID will be 1000007. This can " +"only\n" +"happen if a user or a group object was created with a fixed ID because the\n" +"automatic assignment will not assign the same ID twice. Since there are " +"only\n" +"users and groups sharing the same ID namespace it is sufficient to have " +"only\n" +"one fallback range to handle conflicts.\n" +"\n" +"To find the Posix ID for a given RID from the local domain it has to be\n" +"checked first if the RID falls in the primary or secondary RID range and\n" +"the rid-base or the secondary-rid-base has to be subtracted, respectively,\n" +"and the base-id has to be added to get the Posix ID.\n" +"\n" +"Typically the creation of ID ranges happens behind the scenes and this CLI\n" +"must not be used at all. The ID range for the local domain will be created\n" +"during installation or upgrade from an older version. The ID range for a\n" +"trusted domain will be created together with the trust by 'ipa trust-" +"add ...'.\n" +"\n" +"USE CASES:\n" +"\n" +" Add an ID range from a transitively trusted domain\n" +"\n" +" If the trusted domain (A) trusts another domain (B) as well and this " +"trust\n" +" is transitive 'ipa trust-add domain-A' will only create a range for\n" +" domain A. The ID range for domain B must be added manually.\n" +"\n" +" Add an additional ID range for the local domain\n" +"\n" +" If the ID range of the local domain is exhausted, i.e. no new IDs can " +"be\n" +" assigned to Posix users or groups by the DNA plugin, a new range has to " +"be\n" +" created to allow new users and groups to be added. (Currently there is " +"no\n" +" connection between this range CLI and the DNA plugin, but a future " +"version\n" +" might be able to modify the configuration of the DNS plugin as well)\n" +"\n" +"In general it is not necessary to modify or delete ID ranges. If there is " +"no\n" +"other way to achieve a certain configuration than to modify or delete an ID\n" +"range it should be done with great care. Because UIDs are stored in the " +"file\n" +"system and are used for access control it might be possible that users are\n" +"allowed to access files of other users if an ID range got deleted and " +"reused\n" +"for a different domain.\n" +"\n" +"(*) The RID is typically the last integer of a user or group SID which " +"follows\n" +"the domain SID. E.g. if the domain SID is S-1-5-21-123-456-789 and a user " +"from\n" +"this domain has the SID S-1-5-21-123-456-789-1010 then 1010 id the RID of " +"the\n" +"user. RIDs are unique in a domain, 32bit values and are used for users and\n" +"groups.\n" +"\n" +"WARNING:\n" +"\n" +"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " +"the\n" +"local domain. Currently the DNA plugin *cannot* be reconfigured itself " +"based\n" +"on the local ranges set via this family of commands.\n" +"\n" +"Manual configuration change has to be done in the DNA plugin configuration " +"for\n" +"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" +"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " +"be\n" +"modified to match the new range.\n" +msgstr "" +"\n" +"Діапазони ідентифікаторів\n" +"\n" +"Керування діапазонами ідентифікаторів, використаних для відображення\n" +"ідентифікаторів POSIX на SID, і навпаки.\n" +"\n" +"За допомогою цієї програми можна керувати обома типами діапазонів " +"ідентифікаторів:\n" +"\n" +" - діапазони ідентифікаторів локального домену\n" +" - діапазони ідентифікаторів довірених віддалених доменів\n" +"\n" +"Обидва типи мають такі спільні атрибути:\n" +"\n" +" - base-id: перший ідентифікатор діапазону ідентифікаторів POSIX\n" +" - range-size: розмір діапазону\n" +"\n" +"На основі цих двох атрибутів об’єкт діапазону може зарезервувати " +"ідентифікатори\n" +"POSIX, починаючи з base-id аж до, але не включно, base-id+range-size.\n" +"\n" +"Крім того, можна встановити діапазон ідентифікаторів локального домену\n" +" - rid-base: перший RID(*) відповідного діапазону RID\n" +" - secondary-rid-base: перший RID вторинного діапазону RID\n" +"\n" +"а діапазон ідентифікаторів довіреного домену слід задавати за допомогою\n" +" - rid-base: перший RID відповідного діапазону RID\n" +" - dom_sid: SID довіреного домену\n" +"\n" +"\n" +"\n" +"ПРИКЛАД: додавання нового діапазону ідентифікаторів для довіреного домену\n" +"\n" +"Оскільки може бути декілька довірених доменів, під час створення діапазону\n" +"ідентифікаторів слід вказати SID домену.\n" +"\n" +" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-base=0 \\\n" +" --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" +"\n" +"Цей діапазон ідентифікаторів потім використовуватиметься сервером IPA\n" +"та надавачем даних IPA SSSD для призначення UID Posix користувачам з\n" +"довіреного домену.\n" +"\n" +"Якщо, наприклад, налаштовано діапазон для довіреного домену з такими\n" +"значеннями:\n" +" base-id = 1200000\n" +" range-size = 200000\n" +" rid-base = 0\n" +"RID від 0 до 199999 прив’язуються до ідентифікаторів Posix від 1200000 до\n" +"13999999. Отже RID 1000 <-> Posix ID 1201000\n" +"\n" +"\n" +"\n" +"ПРИКЛАД: додавання нового діапазону ідентифікаторів до локального домену\n" +"\n" +"Щоб створити діапазон ідентифікаторів для локального домену не потрібно\n" +"вказувати SID домену. Але оскільки можливий конфлікт між ідентифікаторами\n" +"користувача і групи та ідентифікаторами POSIX, потрібен вторинний інтервал\n" +"RID.\n" +"\n" +" ipa range-add --base-id=1200000 --range-size=200000 --rid-base=1000 \\\n" +" --secondary-rid-base=1000000 local_range\n" +"\n" +"Дані з діапазонів ідентифікаторів локального домену використовуються\n" +"сервером IPA на внутрішньому рівні для призначення SID користувачам і " +"групам\n" +"IPA. SID буде збережено у об’єктах користувача або групи.\n" +"\n" +"Якщо, наприклад, для діапазону ідентифікаторів локального домену визначено\n" +"значення з наведеного вище прикладу, новий користувач з UID 1200007 отримає\n" +"RID 1007. Якщо цей RID вже буде використано групою, його буде змінено на " +"1000007.\n" +"Таке може трапитися лише, якщо об’єкт користувача або групи було створено з\n" +"фіксованим ідентифікатором, оскільки у разі автоматичного призначення один\n" +"ідентифікатор не може бути призначено двічі. Оскільки спільний простір назв\n" +"є лише у користувачів і груп, достатньо одного резервного діапазону для\n" +"того, щоб повністю позбутися конфліктів.\n" +"\n" +"Для визначення ідентифікатора POSIX за вказаним RID з локального домену " +"слід\n" +"спочатку перевірити, чи потрапляє RID у основний або вторинний діапазон " +"RID,\n" +"також, щоб отримати ідентифікатор POSIX, слід відняти від ідентифікатор rid-" +"base\n" +"або secondary-rid-base, відповідно, і додати base-id.\n" +"\n" +"Типово, створення діапазонів ідентифікаторів є зовні непомітним і потреби у\n" +"цьому інтерфейсі командного рядка не виникає. Діапазон ідентифікаторів\n" +"для локального домену буде створено під час встановлення або оновлення\n" +"попередньої версії. Діапазон ідентифікаторів для довіреного домену буде\n" +"створено разом з записом довіри командою «ipa trust-add ...».\n" +"Нижче наведено можливі випадки використання цього командного інтерфейсу.\n" +"\n" +"ВИПАДКИ ВИКОРИСТАННЯ:\n" +"\n" +" Додавання діапазону ідентифікаторів з перехідного довіреного домену\n" +"\n" +" Якщо довірений домен (A) довіряється іншому домену (B) і цей запис\n" +" довіри є перехідним, «ipa trust-add домен-A» створить лише діапазон\n" +" для домену A. Діапазон ідентифікаторів домену B має бути додано вручну.\n" +"\n" +" Додавання додаткового діапазону ідентифікаторів для локального домену\n" +"\n" +" Якщо діапазон ідентифікаторів локального домену вичерпано, тобто " +"додатком\n" +" DNA не може бути призначено нові ідентифікатори користувачам або групам\n" +" POSIX, має бути створено новий діапазон для додавання нових " +"користувачів\n" +" та груп. (У поточній версії між цим командним інтерфейсом і додатком " +"DNA\n" +" немає безпосереднього зв’язку, але у майбутній версії може бути " +"передбачено\n" +" можливість внесення змін і до налаштувань додатка DNS.)\n" +"\n" +"Загалом, потреби у зміні або вилученні діапазонів ідентифікаторів немає.\n" +"Якщо немає іншого виходу, окрім внесення змін або вилучення діапазону\n" +"ідентифікаторів, робити це слід дуже обережно. Оскільки UID зберігаються у\n" +"файловій системі і використовуються для керування доступом, можлива " +"ситуація,\n" +"коли одні користувачі отримуватимуть доступ до файлів інших користувачів\n" +"у разі вилучення діапазону ідентифікаторів і повторного його використання\n" +"у іншому домені.\n" +"\n" +"(*) RID типово є останнім цілим числом SID користувача або групи, перед " +"якими\n" +"має бути вказано SID домену. Наприклад, якщо SID домену " +"S-1-5-21-123-456-789, а\n" +"користувач з цього домену має SID S-1-5-21-123-456-789-1010, RID " +"користувача\n" +"буде 1010. RID є унікальними в межах домену, є 32-бітовими значенням і\n" +"використовуються для користувачів і груп.\n" +"\n" +"ПОПЕРЕДЖЕННЯ:\n" +"\n" +"Додаток DNA у 389-ds розміщуватиме ідентифікатори на основі діапазонів\n" +"налаштованих для локального домену. У поточній версії додаток DNA *не " +"можна*\n" +"переналаштовувати самостійно на основі локальних діапазонів, встановлених\n" +"за допомогою цього сімейства команд.\n" +"\n" +"Зміни налаштувань вручну має бути виконано у налаштуваннях додатка DNA\n" +"для локального діапазону. Зокрема слід змінити атрибут dnaNextRange " +"«cn=Posix\n" +"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config» так, щоб\n" +"він відповідав новому діапазону.\n" + +msgid "" +"\n" +"Add new ID range.\n" +"\n" +" To add a new ID range you always have to specify\n" +"\n" +" --base-id\n" +" --range-size\n" +"\n" +" Additionally\n" +"\n" +" --rid-base\n" +" --secondary-rid-base\n" +"\n" +" may be given for a new ID range for the local domain while\n" +"\n" +" --rid-bas\n" +" --dom-sid\n" +"\n" +" must be given to add a new range for a trusted AD domain.\n" +"\n" +" WARNING:\n" +"\n" +" DNA plugin in 389-ds will allocate IDs based on the ranges configured " +"for the\n" +" local domain. Currently the DNA plugin *cannot* be reconfigured itself " +"based\n" +" on the local ranges set via this family of commands.\n" +"\n" +" Manual configuration change has to be done in the DNA plugin " +"configuration for\n" +" the new local range. Specifically, The dnaNextRange attribute of " +"'cn=Posix\n" +" IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has " +"to be\n" +" modified to match the new range.\n" +" " +msgstr "" +"\n" +" Додати новий діапазон ідентифікаторів.\n" +"\n" +" Для додавання нового діапазону ідентифікаторів вам слід завжди " +"вказувати\n" +"\n" +" --base-id\n" +" --range-size\n" +"\n" +" Крім того, може бути надано\n" +"\n" +" --rid-base\n" +" --econdary-rid-base\n" +"\n" +" для додавання нового діапазону ідентифікаторів для локального домену і\n" +"\n" +" --rid-base\n" +" --dom-sid\n" +"\n" +" для додавання нового діапазону для довіреного домену AD.\n" +"\n" +" ПОПЕРЕДЖЕННЯ:\n" +"\n" +" Додаток DNA у 389-ds визначатиме ідентифікатори у діапазонах, " +"налаштованих\n" +" для локального домену. У поточній версії додаток DNA *не може* змінити\n" +" власні налаштування на основі локальних діапазонів, встановлених за\n" +" допомогою цього сімейства команд.\n" +"\n" +" Для внесення змін щодо локального діапазону слід змінити налаштування\n" +" додатка DNA вручну. Зокрема, слід внести зміни до атрибута 'cn=Posix\n" +" IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' " +"відповідно\n" +" до параметрів нового діапазону.\n" +" " + +msgid "" +"\n" +"Services\n" +"\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" +"\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" +"\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" +"\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" +"\n" +" Override a default list of supported PAC types for the service:\n" +" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n" +"\n" +" 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" +msgstr "" +"\n" +"Служби\n" +"\n" +"Служба IPA — це служба, що працює на вузлі системи. У записі служби\n" +"IPA можуть зберігатися дані реєстраційного запису Kerberos, сертифікат\n" +"SSL або обидва набори даних.\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" +"\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" +" Перевизначити типовий список підтримуваних типів PAC для служби:\n" +" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\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" + +msgid "" +"Override default list of supported PAC types. Use 'NONE' to disable PAC " +"support for this service" +msgstr "" +"Перевизначити типовий список підтримуваних типів PAC. Скористайтеся " +"значенням «NONE», щоб вимкнути підтримку PAC для цієї служби." + +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 "" +"\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" + +msgid "Source host category" +msgstr "Категорія вузлів-джерел" + +msgid "Source host category the rule applies to" +msgstr "Категорія вузлів-джерел, якої має стосуватися правило" + +msgid "Source Hosts" +msgstr "Вузли-джерела" + +msgid "Source Host Groups" +msgstr "Групи вузлів-джерел" + +msgid "comma-separated list of HBAC services to add" +msgstr "список служб HBAC, які слід додати, відокремлених комами" + +msgid "comma-separated list of HBAC service groups to add" +msgstr "список груп служб HBAC, які слід додати, відокремлених комами" + +msgid "Add source hosts and hostgroups from a HBAC rule." +msgstr "Додати вузли джерела та групи вузлів з правила HBAC." + +msgid "comma-separated list of HBAC services to remove" +msgstr "список служб HBAC, які слід вилучити, відокремлених комами" + +msgid "comma-separated list of HBAC service groups to remove" +msgstr "список груп служб HBAC, які слід вилучити, відокремлених комами" + +msgid "Remove source hosts and hostgroups from an HBAC rule." +msgstr "Вилучити вузли джерела та групи вузлів з правила HBAC." + +msgid "comma-separated list of roles to add" +msgstr "список ролей, які слід додати, відокремлених комами" + +msgid "comma-separated list of permissions" +msgstr "список прав доступу, відокремлених комами" + +msgid "comma-separated list of roles to remove" +msgstr "список ролей, які слід вилучити, відокремлених комами" + +msgid "" +"\n" +"Auto Membership Rule.\n" +"\n" +"Bring clarity to the membership of hosts and users by configuring inclusive\n" +"or exclusive regex patterns, you can automatically assign a new entries " +"into\n" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup.\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"A default group or hostgroup could be specified for entries that do not\n" +"match any rule. In case of user entries this group will be a fallback group\n" +"because all users are by default members of group specified in IPA config.\n" +"\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Add the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-" +"regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-" +"regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-" +"regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-" +"regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default (fallback) target group:\n" +" ipa automember-default-group-set --default-group=webservers --" +"type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Remove the default (fallback) target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default (fallback) target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" +msgstr "" +"\n" +"Правило автоматичної участі.\n" +"\n" +"Внесіть ясність у правила участі вузлів та користувачів налаштовуванням\n" +"формальних виразів шаблонів включення або виключення. Ви можете автоматично\n" +"пов’язувати нові записи з групою або групою вузлів на основі даних щодо " +"атрибутів.\n" +"\n" +"Правило безпосередньо пов’язується з групою за назвою, отже ви не можете\n" +"створити правило без визначення групи або групи вузлів.\n" +"\n" +"Умова є формальним виразом, використовується 389-ds для встановлення\n" +"відповідності нового вхідного запису з правилом автоматичної участі.\n" +"Якщо умові відповідає правило включення, запис додається до відповідної\n" +"групи або групи вузлів.\n" +"\n" +"Можна визначити типову групу або групу вузлів, яку буде використано для\n" +"записів, які не відповідають жодному правилу. У випадку записів " +"користувачів\n" +"ця група буде резервною групою, оскільки усіх користувачі типово є " +"учасниками\n" +"групи, вказаної у налаштуваннях IPA.\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" +" 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" +" Група вузлів: webservers\n" +" Опис: Web Servers\n" +" Вузли-учасники: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Назва групи: devel\n" +" Опис: Developers\n" +" GID: 1004200000\n" +" Користувачі-учасники: 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" + +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. search - пошук одного або декількох атрибутів\n" +"4. compare - порівняння одного або декількох атрибутів\n" +"5. add - додавання нового запису до ієрархії\n" +"6. delete - вилучення наявного запису\n" +"7. all - надати усі права доступу\n" +"\n" +"Типово, доступ до читання надається до більшості з атрибутів, отже потреба\n" +"у визначенні прав доступу до читання має виникати доволі нечасто.\n" +"\n" +"Зауважте відмінність між атрибутами і записами. Права доступу є " +"незалежними,\n" +"отже можливість додавання запису користувача не означає, що цей запис " +"згодом\n" +"буде придатним до редагування.\n" +"\n" +"Передбачено декілька можливих призначень:\n" +"1. type: тип об’єкта (user, group тощо).\n" +"2. memberof: учасник групи або групи вузлів\n" +"3. filter: фільтр LDAP\n" +"4. subtree: фільтр LDAP, що визначає частину DIT LDAP. Є надмножиною\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" + +msgid "" +"Comma-separated list of permissions to grant (read, write, add, delete, all)" +msgstr "" +"Права доступу, які слід надати, відокремлених комами (read, write, add, " +"delete, all)" + +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +msgstr "" +"тип об’єкта IPA (user (користувач), group (група), host (вузол), hostgroup " +"(група вузлів), service (служба), netgroup (мережева група), dns)" + +msgid "Target members of a group" +msgstr "Цільові учасники групи" + +msgid "User group to apply permissions to" +msgstr "Група користувачів, до якої буде застосовано права доступу" + +msgid "comma-separated list of privileges to add" +msgstr "список привілеїв, які слід додати, відокремлених комами" + +msgid "Add a system permission without an ACI" +msgstr "Додати права доступу до системи без ACI" + +msgid "Permission type" +msgstr "Тип прав доступу" + +msgid "comma-separated list of privileges to remove" +msgstr "список привілеїв, які слід вилучити, відокремлених комами" + +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 --hbacsvcs=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" + +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 "" +"\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" msgid "" "\n" @@ -5384,419 +14509,420 @@ msgstr "" "слід включити всі вже створені атрибути. Під час внесення змін до aci\n" "targetattr ЗАМІНЮЄ поточні атрибути, а не додає ці атрибути.\n" -msgid "ACI name" -msgstr "Назва ACI" - -msgid "Permission" -msgstr "Права доступу" - -msgid "Permission ACI grants access to" -msgstr "ACI прав доступу надає доступ до" - -msgid "User group" -msgstr "Група користувачів" - -msgid "User group ACI grants access to" -msgstr "Група користувачів, до якої надає доступ ACI" - msgid "" "comma-separated list of permissions to grant(read, write, add, delete, all)" msgstr "" "права доступу, які слід надати, відокремлених комами (read, write, add, " "delete, all)" -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" -msgstr "" -"тип об’єкта IPA (user (користувач), group (група), host (вузол), hostgroup " -"(група вузлів), service (служба), netgroup (мережева група))" - -msgid "Member of" -msgstr "Учасник" - -msgid "Member of a group" -msgstr "Учасник групи" - -msgid "Subtree to apply ACI to" -msgstr "Піддерево, до якого слід застосувати ACI" - -msgid "Group to apply ACI to" -msgstr "Група, до якої слід застосувати ACI" - -msgid "Target your own entry (self)" -msgstr "Виконати над власним записом (self)" - -msgid "Apply ACI to your own entry (self)" -msgstr "Застосувати ACI до вашого власного запису (self)" - -msgid "Create new ACI." -msgstr "Створити запис ACI." - -msgid "ACI prefix" -msgstr "префікс ACI" - -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" -msgstr "" -"Префікс, за яким визначається тип ACI (permission, delegation, selfservice, " -"none)" - -msgid "Test the ACI syntax but don't write anything" -msgstr "Перевірити синтаксис ACI, але не виконувати запису" - -msgid "Delete ACI." -msgstr "Вилучити ACI." - msgid "" "\n" -"Search for ACIs.\n" +"Hosts/Machines\n" "\n" -" Returns a list of ACIs\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" -" EXAMPLES:\n" +"ENROLLMENT:\n" "\n" -" To find all ACIs that apply directly to members of the group ipausers:\n" -" ipa aci-find --memberof=ipausers\n" +"There are three enrollment scenarios when enrolling a new client:\n" "\n" -" To find all ACIs that grant add access:\n" -" ipa aci-find --permissions=add\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" -" 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 "" +"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" -"Пошук 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" -" у яких memberof містить ipausers. Але можуть існувати інші ACI, які\n" -" застосовуються до учасників цієї групи опосередковано.\n" -" " - -msgid "Modify ACI." -msgstr "Змінити запис ACI." - -msgid "Rename an ACI." -msgstr "Перейменувати запис ACI." - -msgid "New ACI name" -msgstr "Нова назва ACI" - -msgid "Display a single ACI given an ACI name." -msgstr "Показати окремий запис ACI за вказаною назвою ACI." - -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" +"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 HBAC service:\n" -" ipa hbacsvc-add tftp\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example." +"com\n" "\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +" Delete a host:\n" +" ipa host-del test.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" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" "\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\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" +" Remove SSH public keys of a host and update DNS to reflect this change:\n" +" ipa host-mod --sshpubkey= --updatedns 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" -"Служби HBAC\n" +"Вузли/Комп’ютери\n" "\n" -"Служби PAM, якими може керувати HBAC. Назва, використана тут, має\n" -"відповідати назві служби, з якою працює PAM.\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" +" Host Enrollment.\n" +"3. Вузол було створено з одноразовим паролем.\n" +"\n" +"Вузлу можна надати роль лише один раз. Якщо клієнту вже надано роль і\n" +"роль слід змінити, запис вузла має бути вилучено і створено повторно.\n" +"Зауважте, що повторне створення запису вузла призведе до вилучення усіх\n" +"служб для вузла, а усі сертифікати SSL, пов’язані із цими службами\n" +"буде відкликано.\n" +"\n" +"Запис вузла може, якщо потрібно, містити дані щодо його розташування,\n" +"типу операційної системи тощо.\n" "\n" "ПРИКЛАДИ:\n" "\n" -" Додати нову службу HBAC:\n" -" ipa hbacsvc-add tftp\n" "\n" -" Змінити вже створену службу HBAC:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"Додати новий вузол:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example." +"com\n" "\n" -" Шукати служби HBAC. У нашому прикладі буде повернуто два результати\n" -" службу FTP і щойно додану службу tftp:\n" -" ipa hbacsvc-find ftp\n" +" Вилучити вузол:\n" +" ipa host-del test.example.com\n" "\n" -" Вилучення служби HBAC:\n" -" ipa hbacsvc-del tftp\n" - -msgid "Service name" -msgstr "Назва служби" - -msgid "HBAC service" -msgstr "Служба HBAC" - -msgid "HBAC service description" -msgstr "Опис служби HBAC" - -msgid "Member of HBAC service groups" -msgstr "Учасник груп служб HBAC" - -msgid "Add a new HBAC service." -msgstr "Додати нову службу HBAC." - -msgid "Delete an existing HBAC service." -msgstr "Вилучити вже створену службу HBAC." - -msgid "Search for HBAC services." -msgstr "Шукати служби HBAC." - -msgid "Results should contain primary key attribute only (\"service\")" -msgstr "Результати мають містити лише атрибут основного ключа («service»)" - -msgid "Modify an HBAC service." -msgstr "Змінити службу HBAC." - -msgid "Display information about an HBAC service." -msgstr "Показати дані щодо служби HBAC." +" Додати новий вузол з одноразовим паролем:\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" +" Вилучити відкриті ключі SSH вузла і оновити DNS відповідно до внесених " +"змін:\n" +" ipa host-mod --sshpubkey= --updatedns test.example.com\n" +"\n" +"Вимкнути ключ Kerberos вузла, сертифікат SSL та усі його служби:\n" +" ipa host-disable test.example.com\n" +"\n" +"Додати вузол, який може керувати сховищем ключів та сертифікатом цього " +"вузла :\n" +" ipa host-add-managedby --hosts=test2 test\n" msgid "" "\n" -"Migration to IPA\n" +"Groups of hosts.\n" "\n" -"Migrate users and groups from an LDAP server to IPA.\n" -"\n" -"This performs an LDAP query against the remote server searching for\n" -"users and groups in a container. In order to migrate passwords you need\n" -"to bind as a user that can read the userPassword attribute on the remote\n" -"server. This is generally restricted to high-level admins such as\n" -"cn=Directory Manager in 389-ds (this is the default bind user).\n" -"\n" -"The default user container is ou=People.\n" -"\n" -"The default group container is ou=Groups.\n" -"\n" -"Users and groups that already exist on the IPA server are skipped.\n" -"\n" -"Two LDAP schemas define how group members are stored: RFC2307 and\n" -"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" -"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" -"\n" -"The schema compat feature allows IPA to reformat data for systems that\n" -"do not support RFC2307bis. It is recommended that this feature is disabled\n" -"during migration to reduce system overhead. It can be re-enabled after\n" -"migration. To migrate with it enabled use the \"--with-compat\" option.\n" -"\n" -"Migrated users do not have Kerberos credentials, they have only their\n" -"LDAP password. To complete the migration process, users need to go\n" -"to http://ipa.example.com/ipa/migration and authenticate using their\n" -"LDAP password in order to generate their Kerberos credentials.\n" -"\n" -"Migration is disabled by default. Use the command ipa config-mod to\n" -"enable it:\n" -"\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -"If a base DN is not provided with --basedn then IPA will use either\n" -"the value of defaultNamingContext if it is set or the first value\n" -"in namingContexts set in the root of the remote LDAP server.\n" -"\n" -"Users are added as members to the default user group. This can be a\n" -"time-intensive task so during migration this is done in a batch\n" -"mode for every 100 users. As a result there will be a window in which\n" -"users will be added to IPA but will not be members of the default\n" -"user group.\n" +"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" -" The simplest migration, accepting all defaults:\n" -" ipa migrate-ds ldap://ds.example.com:389\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" "\n" -" Specify the user and group container. This can be used to migrate user\n" -" and group data from an IPA v1 server:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-" -"container='cn=groups,cn=accounts' ldap://ds.example.com:389\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" "\n" -" Since IPA v2 server already contain predefined groups that may collide " -"with\n" -" groups in migrated (IPA v1) server (for example admins, ipausers), users\n" -" having colliding group as their primary group may happen to belong to\n" -" an unknown group on new IPA v2 server.\n" -" Use --group-overwrite-gid option to overwrite GID of already existing " -"groups\n" -" to prevent this issue:\n" -" ipa migrate-ds --group-overwrite-gid --user-container='cn=users," -"cn=accounts' --group-container='cn=groups,cn=accounts' " -"ldap://ds.example.com:389\n" +" Add members to the hostgroup:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" "\n" -" Migrated users or groups may have object class and accompanied attributes\n" -" unknown to the IPA v2 server. These object classes and attributes may be\n" -" left out of the migration process:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-" -"container='cn=groups,cn=accounts' --user-ignore-" -"objectclass=radiusprofile --user-ignore-" -"attribute=radiusgroupname ldap://ds.example.com:389\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" "\n" -"LOGGING\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" "\n" -"Migration will log warnings and errors to the Apache error log. This\n" -"file should be evaluated post-migration to correct or investigate any\n" -"issues that were discovered.\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" "\n" -"For every 100 users migrated an info-level message will be displayed to\n" -"give the current progress and duration to make it possible to track\n" -"the progress of migration.\n" -"\n" -"If the log level is debug, either by setting debug = True in\n" -"/etc/ipa/default.conf or /etc/ipa/server.conf, then an entry will be " -"printed\n" -"for each user added plus a summary when the default user group is\n" -"updated.\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" msgstr "" "\n" -"Перехід на IPA\n" +"Групи вузлів.\n" "\n" -"Перенесення користувачів і груп з сервера LDAP на IPA.\n" -"\n" -"Надсилає запит LDAP до віддаленого сервера з метою пошуку користувачів\n" -"і груп у контейнері. З метою перенесення паролів вам слід прив’язатися\n" -"до сервера від імені користувача, який може читати атрибут userPassword\n" -"на сервері. Перелік таких користувачів зазвичай обмежено адміністраторами\n" -"вищого рівня, зокрема cn=Directory Manager на 389-ds (типовий користувач\n" -"bind).\n" -"\n" -"Типовим контейнером користувачів є ou=People.\n" -"\n" -"Типовим контейнером груп є ou=Groups.\n" -"\n" -"Записи користувачів і груп, які вже створено на сервері IPA буде\n" -"пропущено.\n" -"\n" -"Дві схеми LDAP визначають спосіб зберігання записів учасників групи:\n" -"RFC2307 і RFC2307bis. RFC2307bis використовує атрибути member і\n" -"uniquemember для визначення учасників групи, RFC2307 використовує\n" -"memberUid. Типовою є схема RFC2307bis.\n" -"\n" -"За допомогою додатка compat IPA може повторно форматувати дані для систем,\n" -"де не передбачено підтримки RFC2307bis. Рекомендується вимикати цей додаток\n" -"під час перенесення, щоб зменшити навантаження на систему. Ви зможете\n" -"увімкнути його після перенесення. Щоб перенести дані з увімкненим додатком\n" -"скористайтеся параметром «--with-compat».\n" -"\n" -"Перенесені користувачі не матимуть реєстраційних записів Kerberos,\n" -"перенесено буде лише пароль LDAP. Щоб завершити процес перенесення,\n" -"користувачам слід відкрити сторінку\n" -"http://ipa.example.com/ipa/migration і пройти розпізнавання за\n" -"допомогою пароля LDAP з метою створення запису реєстраційних даних\n" -"Kerberos.\n" -"\n" -"Типово перенесення вимкнено. Для його вмикання скористайтеся командою\n" -"ipa config-mod:\n" -"\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -"Якщо основний DN не буде надано за допомогою --basedn, IPA " -"використовуватиме\n" -"значення defaultNamingContext, якщо його встановлено, або перше значення у\n" -"наборі namingContexts у кореневій теці віддаленого сервера LDAP.\n" -"\n" -"Записи користувачів додають до типової групи користувачів. Процес такого\n" -"додавання може бути доволі тривалим, отже під час перенесення він " -"виконується\n" -"у пакетному режимі, пакетами по 100 користувачів. У результаті буде певний\n" -"період, коли записи користувачів вже буде додано до IPA, але ці користувачі\n" -"ще не будуть учасниками типової групи користувачів.\n" +"Керування групами вузлів. Корисні для застосування керування\n" +"до декількох вузлів на основі заснованого на вузлах керування\n" +"доступом (Host-based Access Control або HBAC).\n" "\n" "ПРИКЛАДИ:\n" "\n" -" Найпростіше перенесення з типовими параметрами:\n" -" ipa migrate-ds ldap://ds.example.com:389\n" +" додавання нової групи вузлів:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\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 hostgroup-add --desc=\"Maryland hosts\" maryland\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 \\\n" -" --user-container='cn=users,cn=accounts' --group-container='cn=groups," -"cn=accounts' ldap://ds.example.com:389\n" +" Додавання учасників до групи вузлів:\n" +" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\n" "\n" -" Перенесені дані користувачів та груп можуть містити класи об’єктів та " -"супутні\n" -" атрибути, невідомі серверу IPA версії 2. Ці класти об’єктів та атрибутів\n" -" може бути виключено з процедури перенесення даних:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' --group-" -"container='cn=groups,cn=accounts' --user-ignore-objectclass=radiusprofile --" -"user-ignore-attribute=radiusgroupname ldap://ds.example.com:389\n" +" Додавання групи вузлів як учасника іншої групи вузлів:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" "\n" -"ВЕДЕННЯ ЖУРНАЛУ\n" +" Вилучення вузла з групи вузлів:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" "\n" -"Під час перенесення повідомлення з попередженнями та записами помилок\n" -"додаватимуться до журналу помилок Apache. З відповідним файлом слід\n" -"ознайомитися після завершення перенесення для виправлення та виявлення\n" -"помилок, які могли статися.\n" +" Показ списку групи вузлів:\n" +" ipa hostgroup-show baltimore\n" "\n" -"Для кожного пакета зі 100 перенесених записів користувачів буде показано\n" -"інформаційне повідомлення, призначене для оцінки поступу обробки та\n" -"визначення її тривалості.\n" +" Вилучення групи вузлів:\n" +" ipa hostgroup-del baltimore\n" + +msgid "" "\n" -"Якщо визначено рівень ведення журналу debug за допомогою встановлення\n" -"debug = True у /etc/ipa/default.conf або у /etc/ipa/server.conf,\n" -"для кожного перенесеного запису додаватиметься власний запис, також\n" -"додаватиметься резюме щодо кожного оновлення типової групи\n" -"користувачів.\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 can access a service,\n" +"or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +" [--srchost= ] [--sizelimit= ]\n" +"\n" +" --user, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to " +"simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to " +"simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/" +"not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules " +"_and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +" By default there is a IPA-wide limit to number of entries fetched, you can " +"change it\n" +" with --sizelimit option.\n" +"\n" +" If --srchost is specified, it will be ignored. It is left because of " +"compatibility reasons only.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --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 --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --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 --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 --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 --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 --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" +msgstr "" +"\n" +"Імітація використання керування доступом на основі вузлів (HBAC)\n" +"\n" +"Правила HBAC керують тим, хто може отримувати доступ до певних служб.\n" +"Ви можете скористатися HBAC для керування тим, які користувачі або групи\n" +"на початковому вузлі можуть отримувати доступ до служби або групи служб\n" +"на вузлі призначення\n" +"\n" +"Оскільки застосування правил HBAC передбачає використання робочого\n" +"середовища, це додаток призначено для імітації обробки правил HBAC без\n" +"доступу до реального середовища\n" +"\n" +" Перевірити відповідність користувача з початкового вузла до служби на " +"іменованому\n" +" вузлі правилам уможливлення доступу.\n" +"\n" +" ipa hbactest --user= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +" [--srchost= ] [--sizelimit= ]\n" +"\n" +" --user, --host і --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" +" Якщо вказано --srchost, його буде проігноровано. Цей параметр збережено " +"лише з міркувань сумісності.\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 --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Надано доступ: Так\n" +" --------------------\n" +"\n" +" 3. Перевірити явно вказані правила HBAC:\n" +" $ ipa hbactest --user=a1a --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 --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 --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Надано доступ: Ні\n" +" ---------------------\n" +" невідповідне: new-rule\n" +"\n" +" 6. Перевірка всіх вимкнених правил HBAC у базі даних IPA + явно вказані " +"правила:\n" +" $ ipa hbactest --user=a1a --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 --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" -msgid "Migrate users and groups from DS to IPA." -msgstr "Перенести дані користувачів і груп з DS до IPA." - -msgid "LDAP URI" -msgstr "URI LDAP" - -msgid "LDAP URI of DS server to migrate from" -msgstr "URI LDAP сервера DS, з якого здійснюватиметься міграція" - -msgid "bind password" -msgstr "пароль прив’язки" - -msgid "Bind DN" -msgstr "DN для прив'язки" - -msgid "User container" -msgstr "Контейнер користувачів" - -msgid "DN of container for users in DS relative to base DN" -msgstr "DN контейнера користувачів у DS відносно до основного DN" - -msgid "Group container" -msgstr "Контейнер груп" - -msgid "DN of container for groups in DS relative to base DN" -msgstr "DN контейнера груп у DS відносно до основного DN" - -msgid "User object class" -msgstr "Клас об’єктів користувача" +msgid "Source host" +msgstr "Вузол джерела" msgid "" "Comma-separated list of objectclasses used to search for user entries in DS" @@ -5804,91 +14930,35 @@ msgstr "" "Список класів об’єктів, використаних для пошуку записів користувачів у DS, " "відокремлених комами" -msgid "Group object class" -msgstr "Клас об’єктів групи" - msgid "" "Comma-separated list of objectclasses used to search for group entries in DS" msgstr "" "Список класів об’єктів, використаних для пошуку записів груп у DS, " "відокремлених комами" -msgid "Ignore user object class" -msgstr "Ігнорувати клас об’єктів користувача" - msgid "" "Comma-separated list of objectclasses to be ignored for user entries in DS" msgstr "" "Список класів об’єктів, які буде проігноровано для записів користувачів у " "DS, відокремлених комами" -msgid "Ignore user attribute" -msgstr "Ігнорувати атрибут користувача" - msgid "Comma-separated list of attributes to be ignored for user entries in DS" msgstr "" "Список атрибутів, які буде проігноровано для записів користувачів у DS, " "відокремлених комами" -msgid "Ignore group object class" -msgstr "Ігнорувати клас об’єктів групи" - msgid "" "Comma-separated list of objectclasses to be ignored for group entries in DS" msgstr "" "Список класів об’єктів, які буде проігноровано для записів груп у DS, " "відокремлених комами" -msgid "Ignore group attribute" -msgstr "Ігнорувати атрибут групи" - msgid "" "Comma-separated list of attributes to be ignored for group entries in DS" msgstr "" "Список атрибутів, які буде проігноровано для записів груп у DS, " "відокремлених комами" -msgid "Overwrite GID" -msgstr "Перезаписати ідентифікатор групи" - -msgid "" -"When migrating a group already existing in IPA domain overwrite the group " -"GID and report as success" -msgstr "" -"Під час перенесення групи, яку вже створено у домені IPA буде перезаписано " -"ідентифікатор групи і повідомлено про успіх" - -msgid "LDAP schema" -msgstr "Схема LDAP" - -msgid "" -"The schema used on the LDAP server. Supported values are RFC2307 and " -"RFC2307bis. The default is RFC2307bis" -msgstr "" -"Схема, використана на сервері LDAP. Підтримувані значення: RFC2307 і " -"RFC2307bis. Типове значення: RFC2307bis" - -msgid "Continue" -msgstr "Продовжити" - -msgid "" -"Continuous operation mode. Errors are reported but the process continues" -msgstr "" -"Режим неперервної обробки. Програма повідомляє про помилки, але продовжує " -"обробку." - -msgid "Base DN" -msgstr "Кореневий DN" - -msgid "Base DN on remote LDAP server" -msgstr "Основний DN на віддаленому сервері LDAP" - -msgid "Ignore compat plugin" -msgstr "Ігнорувати додаток compat" - -msgid "Allows migration despite the usage of compat plugin" -msgstr "Уможливлює перенесення, незважаючи на використання додатка compat" - msgid "comma-separated list of groups to exclude from migration" msgstr "список груп, які слід виключити з перенесення, відокремлених комами" @@ -5897,1241 +14967,238 @@ msgstr "" "список записів користувачів, які слід виключити з перенесення, відокремлених " "комами" -msgid "Lists of objects migrated; categorized by type." -msgstr "Списки об’єктів, міграцію яких виконано; впорядкований за типами." - -msgid "Lists of objects that could not be migrated; categorized by type." -msgstr "" -"Списки об’єктів, міграцію яких не вдалося виконати; впорядкований за типами." - -msgid "False if migration mode was disabled." -msgstr "False, якщо режим міграції було вимкнено." - -msgid "False if migration fails because the compatibility plug-in is enabled." -msgstr "" -"False, якщо перенесення зазнає невдачі через увімкнення додатка сумісності." - msgid "" "\n" -"Auto Membership Rule.\n" -"\n" -"Bring clarity to the membership of hosts and users by configuring inclusive\n" -"or exclusive regex patterns, you can automatically assign a new entries " -"into\n" -"a group or hostgroup based upon attribute information.\n" -"\n" -"A rule is directly associated with a group by name, so you cannot create\n" -"a rule without an accompanying group or hostgroup.\n" -"\n" -"A condition is a regular expression used by 389-ds to match a new incoming\n" -"entry with an automember rule. If it matches an inclusive rule then the\n" -"entry is added to the appropriate group or hostgroup.\n" -"\n" -"A default group or hostgroup could be specified for entries that do not\n" -"match any rule. In case of user entries this group will be a fallback group\n" -"because all users are by default members of group specified in IPA config.\n" +"Groups of Sudo Commands\n" "\n" +"Manage groups of Sudo Commands.\n" "\n" "EXAMPLES:\n" "\n" -" Add the initial group or hostgroup:\n" -" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" -" ipa group-add --desc=\"Developers\" devel\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" "\n" -" Add the initial rule:\n" -" ipa automember-add --type=hostgroup webservers\n" -" ipa automember-add --type=group devel\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\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" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim " +"admincmds\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" +" Manage Sudo Command Group membership, commands:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" "\n" -" Add a host:\n" -" ipa host-add web1.example.com\n" -"\n" -" Add a user:\n" -" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" -"\n" -" Verify automembership:\n" -" ipa hostgroup-show webservers\n" -" Host-group: webservers\n" -" Description: Web Servers\n" -" Member hosts: web1.example.com\n" -"\n" -" ipa group-show devel\n" -" Group name: devel\n" -" Description: Developers\n" -" GID: 1004200000\n" -" Member users: tuser\n" -"\n" -" Remove a condition from the rule:\n" -" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-" -"regex=^web[1-9]+\\.example\\.com webservers\n" -"\n" -" Modify the automember rule:\n" -" ipa automember-mod\n" -"\n" -" Set the default (fallback) target group:\n" -" ipa automember-default-group-set --default-group=webservers --" -"type=hostgroup\n" -" ipa automember-default-group-set --default-group=ipausers --type=group\n" -"\n" -" Remove the default (fallback) target group:\n" -" ipa automember-default-group-remove --type=hostgroup\n" -" ipa automember-default-group-remove --type=group\n" -"\n" -" Show the default (fallback) target group:\n" -" ipa automember-default-group-show --type=hostgroup\n" -" ipa automember-default-group-show --type=group\n" -"\n" -" Find all of the automember rules:\n" -" ipa automember-find\n" -"\n" -" Display a automember rule:\n" -" ipa automember-show --type=hostgroup webservers\n" -" ipa automember-show --type=group devel\n" -"\n" -" Delete an automember rule:\n" -" ipa automember-del --type=hostgroup webservers\n" -" ipa automember-del --type=group devel\n" +" Show a Sudo Command Group:\n" +" ipa group-show localadmins\n" msgstr "" "\n" -"Правило автоматичної участі.\n" -"\n" -"Внесіть ясність у правила участі вузлів та користувачів налаштовуванням\n" -"формальних виразів шаблонів включення або виключення. Ви можете автоматично\n" -"пов’язувати нові записи з групою або групою вузлів на основі даних щодо " -"атрибутів.\n" -"\n" -"Правило безпосередньо пов’язується з групою за назвою, отже ви не можете\n" -"створити правило без визначення групи або групи вузлів.\n" -"\n" -"Умова є формальним виразом, використовується 389-ds для встановлення\n" -"відповідності нового вхідного запису з правилом автоматичної участі.\n" -"Якщо умові відповідає правило включення, запис додається до відповідної\n" -"групи або групи вузлів.\n" -"\n" -"Можна визначити типову групу або групу вузлів, яку буде використано для\n" -"записів, які не відповідають жодному правилу. У випадку записів " -"користувачів\n" -"ця група буде резервною групою, оскільки усіх користувачі типово є " -"учасниками\n" -"групи, вказаної у налаштуваннях IPA.\n" +"Групи команд sudo\n" "\n" +"Керування групами команд sudo.\n" "\n" "ПРИКЛАДИ:\n" "\n" -" Додати початкову групу або групу вузлів:\n" -" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" -" ipa group-add --desc=\"Developers\" devel\n" +" Додати нову групу команд sudo:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" "\n" -" Додати початкове правило:\n" -" ipa automember-add --type=hostgroup webservers\n" -" ipa automember-add --type=group devel\n" +" Вилучити групу команд sudo:\n" +" ipa sudocmdgroup-del admincmds\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" +" Керування участю групи команд sudo, команди:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim " +"admincmds\n" "\n" -" Додати умову виключення до правила для запобігання автоматичному " -"пов’язуванню:\n" -" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-" -"regex=^web5\\.example\\.com webservers\n" +" Керування участю групи команд sudo, команди:\n" +" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\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" -" Група вузлів: webservers\n" -" Опис: Web Servers\n" -" Вузли-учасники: web1.example.com\n" -"\n" -" ipa group-show devel\n" -" Назва групи: devel\n" -" Опис: Developers\n" -" GID: 1004200000\n" -" Користувачі-учасники: 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" - -msgid "A description of this auto member rule" -msgstr "Опис цього правила автоматичної участі" - -msgid "Default (fallback) Group" -msgstr "Типова (резервна) група" - -msgid "Default group for entries to land" -msgstr "Типова група для додавання записів" - -msgid "Add an automember rule." -msgstr "Додати правило автоматичної участі." - -msgid "Automember Rule" -msgstr "Правило автоматичної участі" - -msgid "Grouping Type" -msgstr "Тип групування" - -msgid "Grouping to which the rule applies" -msgstr "Групування, якого стосується правило" - -msgid "Add conditions to an automember rule." -msgstr "Додати умови до правила автоматичної участі." - -msgid "Inclusive Regex" -msgstr "Формальний вираз включення" - -msgid "Exclusive Regex" -msgstr "Формальний вираз виключення" - -msgid "Attribute Key" -msgstr "Ключ атрибута" - -msgid "" -"Attribute to filter via regex. For example fqdn for a host, or manager for a " -"user" -msgstr "" -"Атрибут для фільтрування за формальним виразом. Приклад: fqdn для вузла або " -"manager для користувача" - -msgid "Conditions that could not be added" -msgstr "Умови, які не вдалося додати" - -msgid "Number of conditions added" -msgstr "Кількість доданих умов" - -msgid "Remove default (fallback) group for all unmatched entries." -msgstr "Вилучити типову (резервну) групу для невідповідних записів." - -msgid "Set default (fallback) group for all unmatched entries." -msgstr "Встановити типову (резервну) групу для невідповідних записів." - -msgid "Default (fallback) group for entries to land" -msgstr "Типова (резервна) група для додавання записів" - -msgid "Display information about the default (fallback) automember groups." -msgstr "Показати дані щодо типових (резервних) груп автоматичної участі." - -msgid "Delete an automember rule." -msgstr "Вилучити правило автоматичної участі." - -msgid "Search for automember rules." -msgstr "Шукати правила автоматичної участі." - -msgid "Modify an automember rule." -msgstr "Змінити правило автоматичної участі." - -msgid "Remove conditions from an automember rule." -msgstr "Вилучити умови з правила автоматичної участі." - -msgid "Conditions that could not be removed" -msgstr "Умови, які не вдалося вилучити" - -msgid "Number of conditions removed" -msgstr "Кількість вилучених умов" - -msgid "Display information about an automember rule." -msgstr "Показати дані щодо правила автоматичної участі." - -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" -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" - -msgid "Sudo Command" -msgstr "Команда sudo" - -msgid "A description of this command" -msgstr "Опис цієї команди" - -msgid "Create new Sudo Command." -msgstr "Створити запис команди sudo." - -msgid "Delete Sudo Command." -msgstr "Вилучити запис команди sudo." - -msgid "Search for Sudo Commands." -msgstr "Знайти команди sudo." - -msgid "Results should contain primary key attribute only (\"command\")" -msgstr "Результати мають містити лише атрибут основного ключа («command»)" - -msgid "Modify Sudo Command." -msgstr "Змінити команду sudo." - -msgid "Display Sudo Command." -msgstr "Показати команду sudo." - -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" -"An automount map may contain a submount key. This key defines a mount\n" -"location within the map that references another map. This can be done\n" -"either using automountmap-add-indirect --parentmap or manually\n" -"with automountkey-add and setting info to \"-type=autofs :\".\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" -" Create an indirect map with auto.share as a submount:\n" -" ipa automountmap-add-indirect baltimore --parentmap=auto.share --" -"mount=sub auto.man\n" -"\n" -" This is equivalent to:\n" -"\n" -" ipa automountmap-add-indirect baltimore --mount=/man auto.man\n" -" ipa automountkey-add baltimore auto.man --key=sub --info=\"-" -"fstype=autofs ldap:auto.share\"\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" -"може бути додано або за допомогою команди automountmap-add-indirect --" -"parentmap\n" -"або вручну за допомогою automountkey-add зі встановленням info у значення\n" -"\"-type=autofs :<назва карти>\".\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-add-indirect baltimore --parentmap=auto.share --" -"mount=sub auto.man\n" -"\n" -" Ця команда еквівалентна до таких команд:\n" -"\n" -" ipa automountmap-add-indirect baltimore --mount=/man auto.man\n" -" ipa automountkey-add baltimore auto.man --key=sub --info=\"-" -"fstype=autofs ldap:auto.share\"\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" - -msgid "Key" -msgstr "Ключ" - -msgid "Automount key name." -msgstr "Назва ключа автоматичного монтування." - -msgid "Mount information" -msgstr "Інформація щодо монтування" - -msgid "description" -msgstr "опис" - -msgid "Automount location name." -msgstr "Адреса автомонтування." - -msgid "Map" -msgstr "Карта" - -msgid "Automount map name." -msgstr "Назва карти автоматичного монтування." - -msgid "Create a new automount key." -msgstr "Створити ключ автоматичного монтування." - -msgid "Delete an automount key." -msgstr "Вилучити ключ автоматичного монтування." - -msgid "Search for an automount key." -msgstr "Виконати пошук ключа автоматичного монтування." - -msgid "Modify an automount key." -msgstr "Змінити ключ автоматичного монтування." - -msgid "New mount information" -msgstr "Інформація нового монтування" - -msgid "Rename the automount key object" -msgstr "Перейменувати об’єкт ключа автоматичного монтування" - -msgid "Display an automount key." -msgstr "Показати ключ автоматичного монтування." - -msgid "Create a new automount location." -msgstr "Створити новий запис автоматичного монтування." - -msgid "Delete an automount location." -msgstr "Вилучити запис автоматичного монтування." - -msgid "Search for an automount location." -msgstr "Шукати запис автоматичного монтування." - -msgid "Results should contain primary key attribute only (\"location\")" -msgstr "Результати мають містити лише атрибут основного ключа («location»)" - -msgid "Display an automount location." -msgstr "Показати запис автоматичного монтування." - -msgid "Generate automount files for a specific location." -msgstr "Створити файли automount для певної адреси." - -msgid "Create a new automount map." -msgstr "Створити карту автомонтування." - -msgid "Create a new indirect mount point." -msgstr "Створити опосередковану точку монтування." - -msgid "Mount point" -msgstr "Точка монтування" - -msgid "Parent map" -msgstr "Батьківська карта" - -msgid "Name of parent automount map (default: auto.master)." -msgstr "" -"Назва батьківської карти автомонтування (типове значення: auto.master)." - -msgid "Delete an automount map." -msgstr "Вилучити карту автоматичного монтування." - -msgid "Search for an automount map." -msgstr "Виконати пошук карти автоматичного монтування." - -msgid "Results should contain primary key attribute only (\"map\")" -msgstr "Результати мають містити лише атрибут основного ключа («map»)" - -msgid "Modify an automount map." -msgstr "Змінити карту автоматичного монтування." - -msgid "Display an automount map." -msgstr "Показати карту автоматичного монтування." - -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 --group=managers --" -"membergroup=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 --group=managers --" -"membergroup=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 --group=managers --" -"membergroup=employees \"managers edit employees' street\"\n" -"\n" -" Під час керування списком атрибутів слід включати всі атрибути списку\n" -" разом з вже створеними. Додавання до списку postalCode:\n" -" ipa delegation-mod --attrs=street,postalCode --group=managers --" -"membergroup=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" - -msgid "Delegation name" -msgstr "Назва уповноваження" - -msgid "Member user group" -msgstr "Учасник групи користувачів" - -msgid "User group to apply delegation to" -msgstr "Група користувачів, до якої слід застосувати уповноваження" - -msgid "Add a new delegation." -msgstr "Додати нове уповноваження." - -msgid "Delete a delegation." -msgstr "Вилучити уповноваження." - -msgid "Search for delegations." -msgstr "Пошук уповноважень." - -msgid "Modify a delegation." -msgstr "Змінити уповноваження." - -msgid "Display information about a delegation." -msgstr "Показати дані щодо уповноваження." - -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" -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" - -msgid "Group" -msgstr "Група" - -msgid "Manage password policy for specific group" -msgstr "Керування правилами обробки паролів для певної групи" - -msgid "Max lifetime (days)" -msgstr "Макс. строк дії (у днях)" - -msgid "Maximum password lifetime (in days)" -msgstr "Максимальний строк дії пароля (у днях)" - -msgid "Min lifetime (hours)" -msgstr "Мін. строк дії (у годинах)" - -msgid "Minimum password lifetime (in hours)" -msgstr "Мінімальний строк дії пароля (у годинах)" - -msgid "History size" -msgstr "Розмір журналу" - -msgid "Password history size" -msgstr "Розмір журналу паролів" - -msgid "Character classes" -msgstr "Класи символів" - -msgid "Minimum number of character classes" -msgstr "Мінімальна кількість класів символів" - -msgid "Min length" -msgstr "Мін. довжина" - -msgid "Minimum length of password" -msgstr "Мінімальна довжина пароля" - -msgid "Priority" -msgstr "Пріоритет" - -msgid "Priority of the policy (higher number means lower priority" -msgstr "Пріоритет правил (більше число — нижчий пріоритет)" - -msgid "Max failures" -msgstr "Макс. к-ть помилок" - -msgid "Consecutive failures before lockout" -msgstr "Кількість помилок для блокування" - -msgid "Failure reset interval" -msgstr "Проміжок скидання помилок" - -msgid "Period after which failure count will be reset (seconds)" -msgstr "" -"Проміжок часу, по завершенню якого кількість помилок буде скинуто (у " -"секундах)" - -msgid "Lockout duration" -msgstr "Тривалість блокування" - -msgid "Period for which lockout is enforced (seconds)" -msgstr "Проміжок часу, протягом якого діятиме блокування (у секундах)" - -msgid "Results should contain primary key attribute only (\"cn\")" -msgstr "Результати мають містити лише атрибут основного ключа («cn»)" - -msgid "Add a new group password policy." -msgstr "Додати нову групу правил для паролів." - -msgid "Delete a group password policy." -msgstr "Вилучити групу правил для паролів." - -msgid "Search for group password policies." -msgstr "Знайти групу правил для паролів." - -msgid "Results should contain primary key attribute only (\"group\")" -msgstr "Результати мають містити лише атрибут основного ключа («group»)" - -msgid "Modify a group password policy." -msgstr "Змінити групу правил для паролів." - -msgid "Display information about password policy." -msgstr "Показати дані щодо групи правил для паролів." - -msgid "User" -msgstr "Користувач" - -msgid "Display effective policy for a specific user" -msgstr "Показати поточні правила для певного користувача" - -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" -"Account lockout on password failure happens per IPA master. The user-status\n" -"command can be used to identify which master the user is locked out on.\n" -"It is on that master the administrator must unlock the user.\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" -"Блокування облікового запису виконується окремим основним вузлом IPA.\n" -"Для визначення основного вузла, на якому було заблоковано запис, можна\n" -"скористатися командою user-status. Адміністратор має розблоковувати\n" -"користувача саме на цьому основному вузлі.\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" - -msgid "User login" -msgstr "Користувач" - -msgid "First name" -msgstr "Ім'я" - -msgid "Last name" -msgstr "Прізвище" - -msgid "Full name" -msgstr "Повне ім’я" - -msgid "Display name" -msgstr "Екранне ім'я" - -msgid "Initials" -msgstr "Ініціали" - -msgid "Home directory" -msgstr "Домашній каталог" +" Показ групи команд sudo:\n" +" ipa group-show localadmins\n" msgid "GECOS field" msgstr "поле GECOS" -msgid "Login shell" -msgstr "Оболонка входу" - -msgid "Kerberos principal" -msgstr "Реєстраційний запис Kerberos" - -msgid "Email address" -msgstr "Адреса ел. пошти" - -msgid "Prompt to set the user password" -msgstr "Надіслати запит щодо встановлення пароля користувача" - -msgid "Generate a random user password" -msgstr "Створити випадковий пароль для користувача" - -msgid "UID" -msgstr "UID" - -msgid "User ID Number (system will assign one if not provided)" -msgstr "" -"Ідентифікаційний номер користувача (система призначить його, якщо не буде " -"вказано)" - -msgid "GID" -msgstr "GID" - -msgid "Group ID Number" -msgstr "Ід. номер групи" - -msgid "Street address" -msgstr "Вулиця і будинок" - -msgid "City" -msgstr "Місто" - -msgid "State/Province" -msgstr "Область/провінція" - -msgid "ZIP" -msgstr "Індекс" - -msgid "Telephone Number" -msgstr "Номер телефону" - -msgid "Mobile Telephone Number" -msgstr "Номер мобільного телефону" - -msgid "Pager Number" -msgstr "Номер пейджера" - -msgid "Fax Number" -msgstr "Номер факсу" - -msgid "Org. Unit" -msgstr "Підрозділ" - -msgid "Job Title" -msgstr "Посада" - -msgid "Manager" -msgstr "Керівник" - -msgid "Car License" -msgstr "Водійська ліцензія" - -msgid "Account disabled" -msgstr "Обліковий запис вимкнено" - -msgid "Member of groups" -msgstr "Групи «member of»" - -msgid "Indirect Member of group" -msgstr "Опосередкована група «member of»" - -msgid "Kerberos keys available" -msgstr "Доступні ключі Kerberos" - -msgid "Add a new user." -msgstr "Додати нового користувача." - -msgid "Don't create user private group" -msgstr "Не створювати закриту групу користувача" - -msgid "Delete a user." -msgstr "Вилучити користувача." - -msgid "Disable a user account." -msgstr "Вимкнути обліковий запис користувача." - -msgid "Enable a user account." -msgstr "Увімкнути обліковий запис користувача." - -msgid "Search for users." -msgstr "Шукати користувачів." - -msgid "Self" -msgstr "Self" - -msgid "Display user record for current Kerberos principal" -msgstr "" -"Показати запис користувача для поточного реєстраційного запису Kerberos" - -msgid "Results should contain primary key attribute only (\"login\")" -msgstr "Результати мають містити лише атрибут основного ключа («login»)" - -msgid "group" -msgstr "група" - -msgid "Search for users with these member of groups." -msgstr "Шукати користувачів з вказаними групами участі." - -msgid "Search for users without these member of groups." -msgstr "Шукати користувачів без вказаних груп участі." - -msgid "Search for users with these member of netgroups." -msgstr "Шукати користувачів із вказаними мережевими групами участі." - -msgid "Search for users without these member of netgroups." -msgstr "Шукати користувачів без вказаних мережевих груп участі." - -msgid "Search for users with these member of roles." -msgstr "Шукати користувачів із вказаними ролями участі." - -msgid "Search for users without these member of roles." -msgstr "Шукати користувачів без вказаних ролей участі." - -msgid "Search for users with these member of HBAC rules." -msgstr "Шукати користувачів із цими правилами HBAC участі." - -msgid "Search for users without these member of HBAC rules." -msgstr "Шукати користувачів без цих правил HBAC участі." - -msgid "Search for users with these member of sudo rules." -msgstr "Шукати користувачів із цими правилами sudo участі." - -msgid "Search for users without these member of sudo rules." -msgstr "Шукати користувачів без цих правил sudo участі." - -msgid "Modify a user." -msgstr "Змінити параметри користувача." - -msgid "Rename the user object" -msgstr "Перейменувати об’єкт користувача" - -msgid "Display information about a user." -msgstr "Показати дані щодо користувача." +msgid "Active directory domain administrator's password" +msgstr "Пароль адміністратора домену Active directory" msgid "" "\n" -"Lockout status of a user account\n" +"IPA certificate operations\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" +"Implements a set of commands for managing server SSL certificates.\n" "\n" -" This connects to each IPA master and displays the lockout status on\n" -" each one.\n" +"Certificate requests exist in the form of a Certificate Signing Request " +"(CSR)\n" +"in PEM format.\n" "\n" -" To determine whether an account is locked on a given server you need\n" -" to compare the number of failed logins and the time of the last " -"failure.\n" -" For an account to be locked it must exceed the maxfail failures within\n" -" the failinterval duration as specified in the password policy " -"associated\n" -" with the user.\n" +"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" -" The failed login counter is modified only when a user attempts a log in\n" -" so it is possible that an account may appear locked but the last failed\n" -" login attempt is older than the lockouttime of the password policy. " -"This\n" -" means that the user may attempt a login again.\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" msgstr "" "\n" -" Стан блокування облікового запису користувача\n" +"Дії з сертифікатами IPA\n" "\n" -" Обліковий запис може бути заблоковано, якщо введено неправильний пароль\n" -" забагато разів протягом певного проміжку часу, який визначається " -"правилами\n" -" роботи з паролями. Блокування облікового запису є тимчасовим станом, " -"його\n" -" може бути розблоковано адміністратором.\n" +"Реалізує набір команд для керування сертифікатами серверів SSL.\n" "\n" -" Ця програма з’єднується з кожним основним вузлом IPA і показує стан\n" -" блокування на кожному з них.\n" +"Запити щодо сертифікатів існують у формі Certificate Signing Request (CSR)\n" +"і форматі PEM.\n" "\n" -" Щоб визначити, чи слід блокувати обліковий запис на певному сервері, " -"слід\n" -" виконати порівняння кількості помилкових спроб входу та час останньої\n" -" невдалої спроби з еталонними значеннями. Обліковий запис буде " -"заблоковано,\n" -" якщо буде перевищено кількість maxfail помилкових спроб протягом " -"проміжку\n" -" часу failinterval. Відповідні значення задаються правилами обробки " -"паролів,\n" -" пов’язаними з обліковим записом користувача.\n" +"Якщо використовується модуль самопідписування, призначення у CSR має\n" +"збігатися із призначенням, вказаним на сервері. Служба сертифікації dogtag\n" +"використовує лише значення CN CSR і примусово встановлює\n" +"решту параметрів призначення за налаштуваннями сервера.\n" "\n" -" Зміни до лічильника помилкових спроб входу вносяться, лише коли " -"користувач\n" -" виконує спробу увійти, тому може статися так, що обліковий запис " -"заблоковано,\n" -" хоча час, що минув з останньої помилкової спроби, перевищує час " -"блокування\n" -" (lockouttime), заданий правилам обробки паролів. Це означає, що " -"користувач\n" -" може увійти до системи знову.\n" -" " +"Сертифікат зберігається з реєстраційним записом, а реєстраційний запис\n" +"потребує вузла.\n" +"\n" +"Для того, щоб створити запит щодо сертифіката:\n" +"\n" +"* Вузол має існувати\n" +"* Служба має існувати (або слід скористатися параметром --add " +"дляавтоматичного додавання)\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 - не визначено\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" msgid "" "\n" -"Unlock a user account\n" +"Ping the remote IPA server to ensure it is running.\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" -" " +"The ping command sends an echo request to an IPA server. The server\n" +"returns its version information. This is used by an IPA client\n" +"to confirm that the server is available and accepting requests.\n" +"\n" +"The server from xmlrpc_uri in /etc/ipa/default.conf is contacted first.\n" +"If it does not respond then the client will contact any servers defined\n" +"by ldap SRV records in DNS.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Ping an IPA server:\n" +" ipa ping\n" +" ------------------------------------------\n" +" IPA server version 2.1.9. API version 2.20\n" +" ------------------------------------------\n" +"\n" +" Ping an IPA server verbosely:\n" +" ipa -v ping\n" +" ipa: INFO: trying https://ipa.example.com/ipa/xml\n" +" ipa: INFO: Forwarding 'ping' to server u'https://ipa.example.com/ipa/" +"xml'\n" +" -----------------------------------------------------\n" +" IPA server version 2.1.9. API version 2.20\n" +" -----------------------------------------------------\n" msgstr "" "\n" -" Розблокувати обліковий запис користувача\n" +"Перевірка віддаленого сервера IPA з метою переконатися, що він є " +"працездатним.\n" "\n" -" Обліковий запис може бути заблоковано, якщо відповідно до правил " -"безпеки\n" -" користувач перевищить обмеження на кількість введення помилкових " -"паролів\n" -" протягом певного часу. Запис блокується тимчасово, його може бути\n" -" розблоковано адміністратором.\n" -" " +"Програма ping надсилає луна-запит до сервера IPA. Сервер повертає\n" +"дані щодо його версії. Ці дані використовуються клієнтом IPA\n" +"для підтвердження, що сервер є доступним і що він приймає запити.\n" +"\n" +"Сервер з xmlrpc_uri у /etc/ipa/default.conf перевіряється першим.\n" +"Якщо він не відповідає, клієнт намагається встановити зв’язок з\n" +"будь-яким сервером, визначеним записами SRV ldap у DNS.\n" +"\n" +"ПРИКЛАДИ:\n" +"\n" +" Перевірити луна-імпульсом сервер IPA:\n" +" ipa ping\n" +" ------------------------------------------\n" +" Сервер IPA версії 2.1.9. Версія API 2.20\n" +" ------------------------------------------\n" +"\n" +" Перевірити луна-імпульсом сервер IPA і отримати докладні дані:\n" +" ipa -v ping\n" +" ipa: INFO: trying https://ipa.example.com/ipa/xml\n" +" ipa: INFO: Forwarding 'ping' to server 'https://ipa.example.com/ipa/xml'\n" +" -----------------------------------------------------\n" +" Сервер IPA версії 2.1.9. Версія API 2.20\n" +" -----------------------------------------------------\n" msgid "" "\n" @@ -7310,39 +15377,6 @@ msgstr "" "\n" " ipa group-show ad_admins_external\n" -msgid "Group name" -msgstr "Назва групи" - -msgid "GID (use this option to set it manually)" -msgstr "GID (за допомогою цього параметра можна встановити значення вручну)" - -msgid "Member users" -msgstr "Користувачі «member»" - -msgid "Member groups" -msgstr "Групи «member»" - -msgid "Indirect Member users" -msgstr "Опосередковані користувачі «member»" - -msgid "Indirect Member groups" -msgstr "Опосередковані групи «member»" - -msgid "Create a new group." -msgstr "Створити нову групу." - -msgid "Create as a non-POSIX group" -msgstr "Створити як групу, що не відповідає POSIX" - -msgid "Allow adding external non-IPA members from trusted domains" -msgstr "Дозволити додавання зовнішніх учасників поза IPA з довірених доменів" - -msgid "Add members to a group." -msgstr "Додати учасників до групи." - -msgid "External member" -msgstr "Зовнішній учасник" - msgid "" "comma-separated list of members of a trusted domain in DOM\\name or " "name@domain form" @@ -7350,570 +15384,6 @@ msgstr "" "список учасників довіреного домену у форматі ДОМЕН\\ім’я або ім’я@домен, " "відокремлених комами" -msgid "Delete group." -msgstr "Вилучити групу." - -msgid "Detach a managed group from a user." -msgstr "Від’єднати керовану групу від користувача." - -msgid "Search for groups." -msgstr "Шукати групи." - -msgid "search for private groups" -msgstr "шукати закриті групи" - -msgid "Results should contain primary key attribute only (\"group-name\")" -msgstr "Результати мають містити лише атрибут основного ключа («group-name»)" - -msgid "Search for groups with these member users." -msgstr "Шукати групи із вказаними користувачами-учасниками." - -msgid "Search for groups without these member users." -msgstr "Шукати групи без вказаних користувачів-учасників." - -msgid "Search for groups with these member groups." -msgstr "Шукати групи із вказаними групами-учасниками." - -msgid "Search for groups without these member groups." -msgstr "Шукати групи без вказаних груп-учасників." - -msgid "Search for groups with these member of groups." -msgstr "Шукати групи із вказаними групами участі." - -msgid "Search for groups without these member of groups." -msgstr "Шукати групи без вказаних груп участі." - -msgid "Search for groups with these member of netgroups." -msgstr "Шукати групи із вказаними мережевими групами участі." - -msgid "Search for groups without these member of netgroups." -msgstr "Шукати групи без вказаних мережевих груп участі." - -msgid "Search for groups with these member of roles." -msgstr "Шукати групи із вказаними ролями участі." - -msgid "Search for groups without these member of roles." -msgstr "Шукати групи без вказаних ролей участі." - -msgid "Search for groups with these member of HBAC rules." -msgstr "Шукати групи із цими правилами HBAC участі." - -msgid "Search for groups without these member of HBAC rules." -msgstr "Шукати групи без цих правил HBAC участі." - -msgid "Search for groups with these member of sudo rules." -msgstr "Шукати групи із цими правилами sudo участі." - -msgid "Search for groups without these member of sudo rules." -msgstr "Шукати групи без цих правил sudo участі." - -msgid "Modify a group." -msgstr "Змінити групу." - -msgid "change to a POSIX group" -msgstr "змінити на групу POSIX" - -msgid "change to support external non-IPA members from trusted domains" -msgstr "змінити для підтримки зовнішніх учасників поза IPA з довірених доменів" - -msgid "Rename the group object" -msgstr "Перейменувати об’єкт групи" - -msgid "Remove members from a group." -msgstr "Вилучити учасників з групи." - -msgid "Display information about a named group." -msgstr "Показати дані щодо іменованої групи." - -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" - -msgid "Set a user's password." -msgstr "Встановити пароль користувача." - -msgid "New Password" -msgstr "Новий пароль" - -msgid "Current Password" -msgstr "Поточний пароль" - -msgid "" -"\n" -"Joining an IPA domain\n" -msgstr "" -"\n" -"Долучення до домену IPA\n" - -msgid "Join an IPA domain" -msgstr "Долучитися до домену IPA" - -msgid "The hostname to register as" -msgstr "Назва вузла для реєстрації" - -msgid "The IPA realm" -msgstr "Область IPA" - -msgid "Hardware platform of the host (e.g. Lenovo T61)" -msgstr "Апаратна платформа вузла (наприклад, «Lenovo T61»)" - -msgid "Operating System and version of the host (e.g. Fedora 9)" -msgstr "Операційна система вузла і її версія (наприклад, «Fedora 9»)" - -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 " -"junioradmin\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 'junioradmin' 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 " -"junioradmin\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" - -msgid "Role name" -msgstr "Назва ролі" - -msgid "A description of this role-group" -msgstr "Опис цієї групи ролей" - -msgid "Member hosts" -msgstr "Вузли-учасники" - -msgid "Member host-groups" -msgstr "Учасник host-groups" - -msgid "Privileges" -msgstr "Привілеї" - -msgid "Add a new role." -msgstr "Додати нову роль." - -msgid "Add members to a role." -msgstr "Додати учасників до запису ролі." - -msgid "Add privileges to a role." -msgstr "Додати привілеї до запису ролі." - -msgid "privilege" -msgstr "привілей" - -msgid "comma-separated list of privileges" -msgstr "список привілеїв, відокремлених комами" - -msgid "Number of privileges added" -msgstr "Кількість доданих привілеїв" - -msgid "Delete a role." -msgstr "Вилучити роль." - -msgid "Search for roles." -msgstr "Знайти ролі." - -msgid "Modify a role." -msgstr "Змінити роль." - -msgid "Rename the role object" -msgstr "Перейменувати об’єкт ролі" - -msgid "Remove members from a role." -msgstr "Вилучити учасників з запису ролі." - -msgid "Remove privileges from a role." -msgstr "Вилучити привілеї з запису ролі." - -msgid "Number of privileges removed" -msgstr "Кількість вилучених привілеїв" - -msgid "Display information about a role." -msgstr "Показати дані щодо ролі." - -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" - -msgid "Host-group" -msgstr "Група вузлів" - -msgid "Name of host-group" -msgstr "Назва групи вузлів" - -msgid "A description of this host-group" -msgstr "Опис цієї групи вузлів" - -msgid "Indirect Member hosts" -msgstr "Вузли з опосередкованою участю" - -msgid "Indirect Member host-groups" -msgstr "Групи вузлів з опосередкованою участю" - -msgid "Add a new hostgroup." -msgstr "Додати нову групу вузлів." - -msgid "Add members to a hostgroup." -msgstr "Додати записи до групи вузлів." - -msgid "Delete a hostgroup." -msgstr "Вилучити групу вузлів." - -msgid "Search for hostgroups." -msgstr "Шукати групи вузлів." - -msgid "Results should contain primary key attribute only (\"hostgroup-name\")" -msgstr "" -"Результати мають містити лише атрибут основного ключа («hostgroup-name»)" - -msgid "Search for host groups with these member hosts." -msgstr "Шукати групи вузлів із цими вузлами-учасниками." - -msgid "Search for host groups without these member hosts." -msgstr "Шукати групи вузлів без цих вузлів-учасників." - -msgid "Search for host groups with these member host groups." -msgstr "Шукати групи вузлів із цими групами вузлів-учасників." - -msgid "Search for host groups without these member host groups." -msgstr "Шукати групи вузлів без цих груп вузлів-учасників." - -msgid "Search for host groups with these member of host groups." -msgstr "Шукати групи вузлів із цими групами вузлів участі." - -msgid "Search for host groups without these member of host groups." -msgstr "Шукати групи вузлів без цих груп вузлів участі." - -msgid "Search for host groups with these member of netgroups." -msgstr "Шукати групи вузлів із вказаними мережевими групами участі." - -msgid "Search for host groups without these member of netgroups." -msgstr "Шукати групи вузлів без вказаних мережевих груп учасників." - -msgid "Search for host groups with these member of HBAC rules." -msgstr "Шукати групи вузлів із цими правилами HBAC участі." - -msgid "Search for host groups without these member of HBAC rules." -msgstr "Шукати групи вузлів без цього учасника правил HBAC." - -msgid "Search for host groups with these member of sudo rules." -msgstr "Шукати групи вузлів із цим учасником правил sudo." - -msgid "Search for host groups without these member of sudo rules." -msgstr "Шукати групи вузлів без вказаних учасників правил sudo." - -msgid "Modify a hostgroup." -msgstr "Змінити групу вузлів." - -msgid "Remove members from a hostgroup." -msgstr "Вилучити записи з групи вузлів." - -msgid "Display information about a hostgroup." -msgstr "Показати дані щодо групи вузлів." - -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" - -msgid "Netgroup name" -msgstr "Назва мережевої групи" - -msgid "Netgroup description" -msgstr "Опис мережевої групи" - -msgid "NIS domain name" -msgstr "Назва домену NIS" - -msgid "IPA unique ID" -msgstr "Унікальний ід. IPA" - -msgid "Member netgroups" -msgstr "Мережеві групи учасника" - -msgid "Indirect Member netgroups" -msgstr "Опосередковані мережеві групи учасника" - -msgid "Member User" -msgstr "Користувач учасника" - -msgid "Member Group" -msgstr "Група учасника" - -msgid "Member Host" -msgstr "Вузол-учасник" - -msgid "Member Hostgroup" -msgstr "Група вузлів учасника" - -msgid "Add a new netgroup." -msgstr "Додати нову мережеву групу." - -msgid "Add members to a netgroup." -msgstr "Додати учасників до мережевої групи." - -msgid "member netgroup" -msgstr "мережева група учасника" - -msgid "comma-separated list of netgroups to add" -msgstr "список мережевих груп, які слід додати, відокремлених комами" - -msgid "Delete a netgroup." -msgstr "Вилучити мережеву групу." - -msgid "Search for a netgroup." -msgstr "Шукати мережеву групу." - -msgid "search for managed groups" -msgstr "шукати керовані групи" - -msgid "Search for netgroups with these member netgroups." -msgstr "Шукати мережеві групи з цими мережевими групами-учасниками." - -msgid "Search for netgroups without these member netgroups." -msgstr "Шукати мережеві групи без цих мережевих груп-учасників." - -msgid "Search for netgroups with these member users." -msgstr "Шукати мережеві групи з цими користувачами-учасниками." - -msgid "Search for netgroups without these member users." -msgstr "Шукати мережеві групи без цих користувачів-учасників." - -msgid "Search for netgroups with these member groups." -msgstr "Шукати мережеві групи із вказаними групами-учасниками." - -msgid "Search for netgroups without these member groups." -msgstr "Шукати мережеві групи без цих груп-учасників." - -msgid "Search for netgroups with these member hosts." -msgstr "Шукати мережеві групи з цими вузлами-учасниками." - -msgid "Search for netgroups without these member hosts." -msgstr "Шукати мережеві групи без цих вузлів-учасників." - -msgid "Search for netgroups with these member host groups." -msgstr "Шукати мережеві групи із вказаними групами вузлів-учасниками." - -msgid "Search for netgroups without these member host groups." -msgstr "Шукати мережеві групи без цих груп вузлів-учасників." - -msgid "Search for netgroups with these member of netgroups." -msgstr "Шукати мережеві групи з цими мережевими групами участі." - -msgid "Search for netgroups without these member of netgroups." -msgstr "Шукати мережеві групи без цих мережевих груп участі." - -msgid "Modify a netgroup." -msgstr "Змінити мережеву групу." - -msgid "Remove members from a netgroup." -msgstr "Вилучити учасників з мережевої групи." - -msgid "comma-separated list of netgroups to remove" -msgstr "список мережевих груп, які слід вилучити, відокремлених комами" - -msgid "Display information about a netgroup." -msgstr "Показати дані щодо мережевої групи." - msgid "" "\n" "Domain Name System (DNS)\n" @@ -8337,9 +15807,6 @@ msgstr "" "переспрямовувачів:\n" " ipa dnsconfig-mod --forwarder=10.0.0.1\n" -msgid "Global forwarders" -msgstr "Загальні переспрямовувачі" - msgid "" "A list of global forwarders. A custom port can be specified for each " "forwarder using a standard format \"IP_ADDRESS port PORT\"" @@ -8348,229 +15815,60 @@ msgstr "" "вказати нетиповий порт за допомогою стандартного формату «IP_АДРЕСА port " "ПОРТ»" -msgid "Forward policy" -msgstr "Правила переспрямовування" - -msgid "" -"Global forwarding policy. Set to \"none\" to disable any configured global " -"forwarders." -msgstr "" -"Загальні правил переспрямовування. Щоб вимкнути будь-які переспрямовувачі на " -"загальному рівні, встановіть значення «none»." - -msgid "Allow PTR sync" -msgstr "Дозволити PTR-синхронізацію" - -msgid "Allow synchronization of forward (A, AAAA) and reverse (PTR) records" -msgstr "Дозволити синхронізацію прямих (A, AAAA) і зворотних (PTR) записів" - -msgid "Zone refresh interval" -msgstr "Інтервал між оновленнями даних зони" - msgid "An interval between regular polls of the name server for new DNS zones" msgstr "Інтервал між регулярними опитуваннями сервера назв щодо нових зон DNS" -msgid "Record name" -msgstr "Назва запису" - -msgid "Time to live" -msgstr "Строк дії" - -msgid "Class" -msgstr "Клас" - msgid "DNS class" msgstr "Клас DNS" -msgid "Records" -msgstr "Записи" - -msgid "Record type" -msgstr "Тип запису" - -msgid "Record data" -msgstr "Дані запису" - -msgid "A record" -msgstr "запис A" - msgid "Comma-separated list of raw A records" msgstr "Список простих записів A, відокремлених комами" -msgid "A IP Address" -msgstr "IP-адреса A" - -msgid "A Create reverse" -msgstr "Створити зворотний A" - -msgid "Create reverse record for this IP Address" -msgstr "Створити зворотний запис для цієї IP-адреси" - -msgid "AAAA record" -msgstr "запис AAAA" - msgid "Comma-separated list of raw AAAA records" msgstr "Список простих записів AAAA, відокремлених комами" -msgid "AAAA IP Address" -msgstr "IP-адреса AAAA" - -msgid "AAAA Create reverse" -msgstr "Створити зворотний запис AAAA" - -msgid "A6 record" -msgstr "Запис A6" - msgid "Comma-separated list of raw A6 records" msgstr "Список простих записів A6, відокремлених комами" -msgid "A6 Record data" -msgstr "Дані запису A6" - -msgid "AFSDB record" -msgstr "Запис AFSDB" - msgid "Comma-separated list of raw AFSDB records" msgstr "Список простих записів AFSDB, відокремлених комами" -msgid "AFSDB Subtype" -msgstr "Підтип AFSDB" - -msgid "Subtype" -msgstr "Підтип" - -msgid "AFSDB Hostname" -msgstr "Назва вузла AFSDB" - -msgid "Hostname" -msgstr "Назва вузла" - -msgid "APL record" -msgstr "запис APL" - msgid "Comma-separated list of raw APL records" msgstr "Список простих записів APL, відокремлених комами" -msgid "CERT record" -msgstr "запис CERT" - msgid "Comma-separated list of raw CERT records" msgstr "Список простих записів CERT, відокремлених комами" -msgid "CERT Certificate Type" -msgstr "Тип сертифіката CERT" - -msgid "Certificate Type" -msgstr "Тип сертифіката" - -msgid "CERT Key Tag" -msgstr "Мітка ключа CERT" - -msgid "Key Tag" -msgstr "Мітка ключа" - -msgid "CERT Algorithm" -msgstr "Алгоритм CERT" - -msgid "Algorithm" -msgstr "Алгоритм" - -msgid "CERT Certificate/CRL" -msgstr "Сертифікат або CRL CERT" - -msgid "Certificate/CRL" -msgstr "Сертифікат/CRL" - -msgid "CNAME record" -msgstr "запис CNAME" - msgid "Comma-separated list of raw CNAME records" msgstr "Список простих записів CNAME, відокремлених комами" -msgid "CNAME Hostname" -msgstr "Назва вузла CNAME" - -msgid "A hostname which this alias hostname points to" -msgstr "Назва вузла на яку вказує цей псевдонім вузла" - -msgid "DHCID record" -msgstr "запис DHCID" - msgid "Comma-separated list of raw DHCID records" msgstr "Список простих записів DHCID, відокремлених комами" -msgid "DLV record" -msgstr "Запис DLV" - msgid "Comma-separated list of raw DLV records" msgstr "Список простих записів DLV, відокремлених комами" -msgid "DNAME record" -msgstr "Запис DNAME" - msgid "Comma-separated list of raw DNAME records" msgstr "Список простих записів DNAME, відокремлених комами" -msgid "DNAME Target" -msgstr "Ціль DNAME" - -msgid "Target" -msgstr "Ціль" - -msgid "DNSKEY record" -msgstr "Запис DNSKEY" - msgid "Comma-separated list of raw DNSKEY records" msgstr "Список простих записів DNSKEY, відокремлених комами" -msgid "DS record" -msgstr "Запис DS" - msgid "Comma-separated list of raw DS records" msgstr "Список простих записів DS, відокремлених комами" -msgid "DS Key Tag" -msgstr "Мітка ключа DS" - -msgid "DS Algorithm" -msgstr "Алгоритм DS" - -msgid "DS Digest Type" -msgstr "Тип контрольної суми DS" - -msgid "Digest Type" -msgstr "Тип контрольної суми" - -msgid "DS Digest" -msgstr "Контрольна сума DS" - -msgid "Digest" -msgstr "Контрольна сума" - -msgid "HIP record" -msgstr "Запис HIP" - msgid "Comma-separated list of raw HIP records" msgstr "Список простих записів HIP, відокремлених комами" -msgid "IPSECKEY record" -msgstr "Запис IPSECKEY" - msgid "Comma-separated list of raw IPSECKEY records" msgstr "Список простих записів IPSECKEY, відокремлених комами" -msgid "KEY record" -msgstr "Запис KEY" - msgid "Comma-separated list of raw KEY records" msgstr "Список простих записів KEY, відокремлених комами" msgid "KEY Flags" msgstr "Прапорці KEY" -msgid "Flags" -msgstr "Прапорці" - msgid "KEY Protocol" msgstr "Протокол КЛЮЧА" @@ -8586,169 +15884,21 @@ msgstr "Відкритий ключ KEY" msgid "Public Key" msgstr "Відкритий ключ" -msgid "KX record" -msgstr "Запис KX" - msgid "Comma-separated list of raw KX records" msgstr "Список простих записів KX, відокремлених комами" -msgid "KX Preference" -msgstr "Пріоритетність KX" - -msgid "Preference given to this exchanger. Lower values are more preferred" -msgstr "" -"Пріоритет цього обмінника. Записи з меншим значенням мають вищий пріоритет." - -msgid "KX Exchanger" -msgstr "Обмінник KX" - -msgid "A host willing to act as a key exchanger" -msgstr "Вузол, який може працювати як обмінник ключів" - -msgid "LOC record" -msgstr "Запис LOC" - msgid "Comma-separated list of raw LOC records" msgstr "Список простих записів LOC, відокремлених комами" -msgid "LOC Degrees Latitude" -msgstr "Градуси широти LOC" - -msgid "Degrees Latitude" -msgstr "Градуси широти" - -msgid "LOC Minutes Latitude" -msgstr "Мінути широти LOC" - -msgid "Minutes Latitude" -msgstr "Мінути широти" - -msgid "LOC Seconds Latitude" -msgstr "Секунди широти LOC" - -msgid "Seconds Latitude" -msgstr "Секунди широти" - -msgid "LOC Direction Latitude" -msgstr "Півкуля широти LOC" - -msgid "Direction Latitude" -msgstr "Півкуля широти" - -msgid "LOC Degrees Longitude" -msgstr "Градуси довготи LOC" - -msgid "Degrees Longitude" -msgstr "Градуси довготи" - -msgid "LOC Minutes Longitude" -msgstr "Мінути довготи LOC" - -msgid "Minutes Longitude" -msgstr "Мінути довготи" - -msgid "LOC Seconds Longitude" -msgstr "Секунди довготи LOC" - -msgid "Seconds Longitude" -msgstr "Секунди довготи" - -msgid "LOC Direction Longitude" -msgstr "Півкуля довготи LOC" - -msgid "Direction Longitude" -msgstr "Півкуля довготи" - -msgid "LOC Altitude" -msgstr "Висота LOC" - -msgid "Altitude" -msgstr "Висота" - -msgid "LOC Size" -msgstr "Розмір LOC" - -msgid "Size" -msgstr "Розмір" - -msgid "LOC Horizontal Precision" -msgstr "Точність за горизонталлю LOC" - -msgid "Horizontal Precision" -msgstr "Точність за горизонталлю" - -msgid "LOC Vertical Precision" -msgstr "Точність за вертикаллю LOC" - -msgid "Vertical Precision" -msgstr "Точність за вертикаллю" - -msgid "MX record" -msgstr "Запис MX" - msgid "Comma-separated list of raw MX records" msgstr "Список простих записів MX, відокремлених комами" -msgid "MX Preference" -msgstr "Пріоритетність MX" - -msgid "MX Exchanger" -msgstr "Обмінник MX" - -msgid "A host willing to act as a mail exchanger" -msgstr "Вузол, який може працювати як обмінник поштовими даними" - -msgid "NAPTR record" -msgstr "Запис NAPTR" - msgid "Comma-separated list of raw NAPTR records" msgstr "Список простих записів NAPTR, відокремлених комами" -msgid "NAPTR Order" -msgstr "Порядок NAPTR" - -msgid "Order" -msgstr "Порядок" - -msgid "NAPTR Preference" -msgstr "Пріоритетність NAPTR" - -msgid "Preference" -msgstr "Пріоритет" - -msgid "NAPTR Flags" -msgstr "Прапорці NAPTR" - -msgid "NAPTR Service" -msgstr "Служба NAPTR" - -msgid "Service" -msgstr "Служба" - -msgid "NAPTR Regular Expression" -msgstr "Формальний вираз NAPTR" - -msgid "Regular Expression" -msgstr "Формальний вираз" - -msgid "NAPTR Replacement" -msgstr "Замінник NAPTR" - -msgid "Replacement" -msgstr "Заміна" - -msgid "NS record" -msgstr "Запис NS" - msgid "Comma-separated list of raw NS records" msgstr "Список простих записів NS, відокремлених комами" -msgid "NS Hostname" -msgstr "Назва вузла NS" - -msgid "NSEC record" -msgstr "запис NSEC" - msgid "Comma-separated list of raw NSEC records" msgstr "Список простих записів NSEC, відокремлених комами" @@ -8764,33 +15914,15 @@ msgstr "Карта типів NSEC" msgid "Type Map" msgstr "Карта типів" -msgid "NSEC3 record" -msgstr "Запис NSEC3" - msgid "Comma-separated list of raw NSEC3 records" msgstr "Список простих записів NSEC3, відокремлених комами" -msgid "NSEC3PARAM record" -msgstr "Запис NSEC3PARAM" - msgid "Comma-separated list of raw NSEC3PARAM records" msgstr "Список простих записів NSEC3PARAM, відокремлених комами" -msgid "PTR record" -msgstr "Запис PTR" - msgid "Comma-separated list of raw PTR records" msgstr "Список простих записів PTR, відокремлених комами" -msgid "PTR Hostname" -msgstr "Назва вузла PTR" - -msgid "The hostname this reverse record points to" -msgstr "Назва вузла, на яку вказує цей зворотний запис" - -msgid "RRSIG record" -msgstr "Запис RRSIG" - msgid "Comma-separated list of raw RRSIG records" msgstr "Список простих записів RRSIG, відокремлених комами" @@ -8842,15 +15974,9 @@ msgstr "Підпис RRSIG" msgid "Signature" msgstr "Підпис" -msgid "RP record" -msgstr "Запис RP" - msgid "Comma-separated list of raw RP records" msgstr "Список простих записів RP, відокремлених комами" -msgid "SIG record" -msgstr "Запис SIG" - msgid "Comma-separated list of raw SIG records" msgstr "Список простих записів SIG, відокремлених комами" @@ -8881,145 +16007,27 @@ msgstr "Ім’я підписника SIG" msgid "SIG Signature" msgstr "Підпис SIG" -msgid "SPF record" -msgstr "Запис SPF" - msgid "Comma-separated list of raw SPF records" msgstr "Список простих записів SPF, відокремлених комами" -msgid "SRV record" -msgstr "Запис SRV" - msgid "Comma-separated list of raw SRV records" msgstr "Список простих записів SRV, відокремлених комами" -msgid "SRV Priority" -msgstr "Пріоритетність SRV" - -msgid "SRV Weight" -msgstr "Вага SRV" - -msgid "Weight" -msgstr "Вага" - -msgid "SRV Port" -msgstr "Порт SRV" - -msgid "Port" -msgstr "Порт" - -msgid "SRV Target" -msgstr "Ціль SRV" - -msgid "" -"The domain name of the target host or '.' if the service is decidedly not " -"available at this domain" -msgstr "" -"Доменна назва вузла призначення або '.', якщо служба є явно недоступною на " -"цьому домені" - -msgid "SSHFP record" -msgstr "Запис SSHFP" - msgid "Comma-separated list of raw SSHFP records" msgstr "Список простих записів SSHFP, відокремлених комами" -msgid "SSHFP Algorithm" -msgstr "Алгоритм SSHFP" - -msgid "SSHFP Fingerprint Type" -msgstr "Тип відбитка SSHFP" - -msgid "Fingerprint Type" -msgstr "Тип відбитка" - -msgid "SSHFP Fingerprint" -msgstr "Відбиток SSHFP" - -msgid "Fingerprint" -msgstr "Відбиток" - -msgid "TA record" -msgstr "Запис TA" - msgid "Comma-separated list of raw TA records" msgstr "Список простих записів TA, відокремлених комами" -msgid "TKEY record" -msgstr "Запис TKEY" - msgid "Comma-separated list of raw TKEY records" msgstr "Список простих записів TKEY, відокремлених комами" -msgid "TSIG record" -msgstr "Запис TSIG" - msgid "Comma-separated list of raw TSIG records" msgstr "Список простих записів TSIG, відокремлених комами" -msgid "TXT record" -msgstr "Запис TXT" - msgid "Comma-separated list of raw TXT records" msgstr "Список простих записів TXT, відокремлених комами" -msgid "TXT Text Data" -msgstr "Текстові дані TXT" - -msgid "Text Data" -msgstr "Текстові дані" - -msgid "Zone name" -msgstr "Назва зони" - -msgid "Zone name (FQDN)" -msgstr "Назва зони (FQDN)" - -msgid "Reverse zone IP network" -msgstr "Мережа IP зворотної зони" - -msgid "IP network to create reverse zone name from" -msgstr "Мережа IP для створення зворотних назв зони" - -msgid "Authoritative nameserver" -msgstr "Основний сервер назв" - -msgid "Authoritative nameserver domain name" -msgstr "Назва домену основного сервера назв" - -msgid "Administrator e-mail address" -msgstr "Адреса електронної пошти адміністратора" - -msgid "SOA serial" -msgstr "Серійний номер SOA" - -msgid "SOA record serial number" -msgstr "Серійний номер запису SOA" - -msgid "SOA refresh" -msgstr "Освіження SOA" - -msgid "SOA record refresh time" -msgstr "Час оновлення запису SOA" - -msgid "SOA retry" -msgstr "Повторення спроби SOA" - -msgid "SOA record retry time" -msgstr "Проміжок між повторними спробами для запису SOA" - -msgid "SOA expire" -msgstr "Застарівання SOA" - -msgid "SOA record expire time" -msgstr "Час завершення строку дії запису SOA" - -msgid "SOA minimum" -msgstr "Мінімальний SOA" - -msgid "How long should negative responses be cached" -msgstr "Тривалість кешування відмов" - msgid "SOA time to live" msgstr "Строк дії SOA" @@ -9032,44 +16040,6 @@ msgstr "Клас SOA" msgid "SOA record class" msgstr "Клас записів SOA" -msgid "BIND update policy" -msgstr "Правила оновлення BIND" - -msgid "Active zone" -msgstr "Активна зона" - -msgid "Is zone active?" -msgstr "Чи є зона активною?" - -msgid "Dynamic update" -msgstr "Динамічне оновлення" - -msgid "Allow dynamic updates." -msgstr "Дозволити динамічні оновлення." - -msgid "Allow query" -msgstr "Дозволити запит" - -msgid "" -"Semicolon separated list of IP addresses or networks which are allowed to " -"issue queries" -msgstr "" -"Список відокремлених крапкою з комою записів IP-адрес або мереж, яким надано " -"доступ до надсилання запитів" - -msgid "Allow transfer" -msgstr "Дозволити перенесення" - -msgid "" -"Semicolon separated list of IP addresses or networks which are allowed to " -"transfer the zone" -msgstr "" -"Список відокремлених крапкою з комою записів IP-адрес або мереж, яким надано " -"доступ до перенесення зони" - -msgid "Zone forwarders" -msgstr "Переспрямовувачі зон" - msgid "" "A list of per-zone forwarders. A custom port can be specified for each " "forwarder using a standard format \"IP_ADDRESS port PORT\"" @@ -9078,7816 +16048,40 @@ msgstr "" "вказати нетиповий порт за допомогою стандартного формату: «IP_АДРЕСА port " "ПОРТ»" -msgid "" -"Per-zone conditional forwarding policy. Set to \"none\" to disable " -"forwarding to global forwarder for this zone. In that case, conditional zone " -"forwarders are disregarded." -msgstr "" -"Умовні правила переспрямування для окремої зони. Встановіть значення «none» " -"для вимикання переспрямовувача загального рівня для цієї зони. Якщо ви " -"встановите це значення, умовні переспрямовувачі зони не братимуться до уваги." - -msgid "" -"Allow synchronization of forward (A, AAAA) and reverse (PTR) records in the " -"zone" -msgstr "" -"Дозволити у зоні синхронізацію прямих (A, AAAA) і зворотних (PTR) записів" - -msgid "Checks if any of the servers has the DNS service enabled." -msgstr "Перевіряє, чи увімкнено на якомусь із серверів службу DNS." - -msgid "Resolve a host name in DNS." -msgstr "Визначити назву вузла у DNS." - -msgid "Modify global DNS configuration." -msgstr "Змінити загальні налаштування DNS." - -msgid "Show the current global DNS configuration." -msgstr "Показати поточні загальні налаштування DNS." - -msgid "Add new DNS resource record." -msgstr "Додати новий запис ресурсу DNS." - -msgid "force NS record creation even if its hostname is not in DNS" -msgstr "" -"примусово створити запис сервера назв, навіть якщо відповідної назви вузла " -"немає у DNS" - -msgid "Structured" -msgstr "Структурована" - -msgid "Parse all raw DNS records and return them in a structured way" -msgstr "Обробити всі записи DNS і повернути дані у структурованій формі" - -msgid "Delete DNS resource record." -msgstr "Вилучити запис ресурсу DNS." - -msgid "Delete all associated records" -msgstr "Вилучити всі пов’язані записи" - -msgid "Delete DNS record entry." -msgstr "Вилучити пункт запису DNS." - -msgid "Search for DNS resources." -msgstr "Шукати ресурси DNS." - -msgid "Modify a DNS resource record." -msgstr "Змінити запис ресурсу DNS." - -msgid "Rename the DNS resource record object" -msgstr "Перейменувати об’єкт запису ресурсу DNS" - -msgid "Display DNS resource." -msgstr "Показати ресурс DNS." - -msgid "Create new DNS zone (SOA record)." -msgstr "Створити зону DNS (запис SOA)." - -msgid "Force DNS zone creation even if nameserver is not resolvable." -msgstr "" -"Примусово створити зону DNS, навіть якщо не вдається визначити адресу " -"сервера назв." - msgid "Add forward record for nameserver located in the created zone" msgstr "" "Додати запис переспрямування для сервера назв, розташованого у створеній зоні" -msgid "Add a permission for per-zone access delegation." -msgstr "Додати права доступу до надання доступу до окремих зон." - -msgid "Delete DNS zone (SOA record)." -msgstr "Вилучити зону DNS (запис SOA)." - -msgid "Disable DNS Zone." -msgstr "Вимкнути зону DNS." - -msgid "Enable DNS Zone." -msgstr "Увімкнути зону DNS." - -msgid "Search for DNS zones (SOA records)." -msgstr "Пошук зон DNS (записів SOA)." - -msgid "Forward zones only" -msgstr "Лише прямі зони" - -msgid "Search for forward zones only" -msgstr "Шукати лише прямі зони" - -msgid "Modify DNS zone (SOA record)." -msgstr "Змінити зону DNS (запис SOA)." - -msgid "Force nameserver change even if nameserver not in DNS" -msgstr "" -"Примусово змінити сервер назв, навіть якщо запису сервера назв немає у DNS" - -msgid "Remove a permission for per-zone access delegation." -msgstr "Вилучити права доступу до надання доступу до окремих зон." - -msgid "Display information about a DNS zone (SOA record)." -msgstr "Показати дані щодо зони DNS (запису SOA)." - -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 "" -"\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" - -msgid "Rule type" -msgstr "Тип правила" - -msgid "Rule type (allow)" -msgstr "Тип правила (allow)" - -msgid "Source host category" -msgstr "Категорія вузлів-джерел" - -msgid "Source host category the rule applies to" -msgstr "Категорія вузлів-джерел, якої має стосуватися правило" - -msgid "Service category" -msgstr "Категорія служб" - -msgid "Service category the rule applies to" -msgstr "Категорія служб, до якої застосовується правило" - -msgid "Source Hosts" -msgstr "Вузли-джерела" - -msgid "Source Host Groups" -msgstr "Групи вузлів-джерел" - -msgid "Services" -msgstr "Служби" - -msgid "Service Groups" -msgstr "Групи служб" - -msgid "Create a new HBAC rule." -msgstr "Створити правило HBAC." - -msgid "Add target hosts and hostgroups to an HBAC rule." -msgstr "Додати вузли призначення та групи вузлів до правила HBAC." - -msgid "Add services to an HBAC rule." -msgstr "Додати служби до правила HBAC." - -msgid "member HBAC service group" -msgstr "група служб учасника HBAC" - -msgid "comma-separated list of HBAC service groups to add" -msgstr "список груп служб HBAC, які слід додати, відокремлених комами" - -msgid "Add source hosts and hostgroups from a HBAC rule." -msgstr "Додати вузли джерела та групи вузлів з правила HBAC." - -msgid "Add users and groups to an HBAC rule." -msgstr "Додати користувачів та групи до правила HBAC." - -msgid "Delete an HBAC rule." -msgstr "Вилучити правило HBAC." - -msgid "Disable an HBAC rule." -msgstr "Вимкнути правило HBAC." - -msgid "Enable an HBAC rule." -msgstr "Увімкнути правило HBAC." - -msgid "Search for HBAC rules." -msgstr "Шукати правила HBAC." - -msgid "Modify an HBAC rule." -msgstr "Змінити правило HBAC." - -msgid "Remove target hosts and hostgroups from an HBAC rule." -msgstr "Вилучити вузли призначення та групи вузлів з правила HBAC." - -msgid "Remove service and service groups from an HBAC rule." -msgstr "Вилучити служби та групи служб з правила HBAC." - -msgid "comma-separated list of HBAC service groups to remove" -msgstr "список груп служб HBAC, які слід вилучити, відокремлених комами" - -msgid "Remove source hosts and hostgroups from an HBAC rule." -msgstr "Вилучити вузли джерела та групи вузлів з правила HBAC." - -msgid "Remove users and groups from an HBAC rule." -msgstr "Вилучити користувачів і групи з правила HBAC." - -msgid "Display the properties of an HBAC rule." -msgstr "Показати властивості правила HBAC." - -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 can access a service,\n" -"or group of services, on a target host.\n" -"\n" -"Since applying HBAC rules implies use of a production environment,\n" -"this plugin aims to provide simulation of HBAC rules evaluation without\n" -"having access to the production environment.\n" -"\n" -" Test user coming to a service on a named host against\n" -" existing enabled rules.\n" -"\n" -" ipa hbactest --user= --host= --service=\n" -" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" -" [--srchost= ] [--sizelimit= ]\n" -"\n" -" --user, --host, and --service are mandatory, others are optional.\n" -"\n" -" If --rules is specified simulate enabling of the specified rules and test\n" -" the login of the user using only these rules.\n" -"\n" -" If --enabled is specified, all enabled HBAC rules will be added to " -"simulation\n" -"\n" -" If --disabled is specified, all disabled HBAC rules will be added to " -"simulation\n" -"\n" -" If --nodetail is specified, do not return information about rules matched/" -"not matched.\n" -"\n" -" If both --rules and --enabled are specified, apply simulation to --rules " -"_and_\n" -" all IPA enabled rules.\n" -"\n" -" If no --rules specified, simulation is run against all IPA enabled rules.\n" -" By default there is a IPA-wide limit to number of entries fetched, you can " -"change it\n" -" with --sizelimit option.\n" -"\n" -" If --srchost is specified, it will be ignored. It is left because of " -"compatibility reasons only.\n" -"\n" -"EXAMPLES:\n" -"\n" -" 1. Use all enabled HBAC rules in IPA database to simulate:\n" -" $ ipa hbactest --user=a1a --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 --host=bar --service=sshd --nodetail\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -"\n" -" 3. Test explicitly specified HBAC rules:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --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 --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 --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 --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 --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" -msgstr "" -"\n" -"Імітація використання керування доступом на основі вузлів (HBAC)\n" -"\n" -"Правила HBAC керують тим, хто може отримувати доступ до певних служб.\n" -"Ви можете скористатися HBAC для керування тим, які користувачі або групи\n" -"на початковому вузлі можуть отримувати доступ до служби або групи служб\n" -"на вузлі призначення\n" -"\n" -"Оскільки застосування правил HBAC передбачає використання робочого\n" -"середовища, це додаток призначено для імітації обробки правил HBAC без\n" -"доступу до реального середовища\n" -"\n" -" Перевірити відповідність користувача з початкового вузла до служби на " -"іменованому\n" -" вузлі правилам уможливлення доступу.\n" -"\n" -" ipa hbactest --user= --host= --service=\n" -" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" -" [--srchost= ] [--sizelimit= ]\n" -"\n" -" --user, --host і --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" -" Якщо вказано --srchost, його буде проігноровано. Цей параметр збережено " -"лише з міркувань сумісності.\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 --host=bar --service=sshd --nodetail\n" -" --------------------\n" -" Надано доступ: Так\n" -" --------------------\n" -"\n" -" 3. Перевірити явно вказані правила HBAC:\n" -" $ ipa hbactest --user=a1a --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 --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 --host=bar --service=sshd --disabled\n" -" ---------------------\n" -" Надано доступ: Ні\n" -" ---------------------\n" -" невідповідне: new-rule\n" -"\n" -" 6. Перевірка всіх вимкнених правил HBAC у базі даних IPA + явно вказані " -"правила:\n" -" $ ipa hbactest --user=a1a --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 --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" - -msgid "Simulate use of Host-based access controls" -msgstr "Імітувати використання керування доступом на основі вузлів" - -msgid "Source host" -msgstr "Вузол джерела" - -msgid "Target host" -msgstr "Вузол призначення" - -msgid "Rules to test. If not specified, --enabled is assumed" -msgstr "" -"Правила для перевірки. Якщо не вказано, вважається, що використано --enabled." - -msgid "Hide details which rules are matched, not matched, or invalid" -msgstr "" -"Приховати дані щодо того, які правила є відповідними, які не є відповідними " -"і які є некоректними" - -msgid "Include all enabled IPA rules into test [default]" -msgstr "Перевірити всі увімкнені правила IPA [типова поведінка]" - -msgid "Include all disabled IPA rules into test" -msgstr "Перевірити всі вимкнені правила IPA" - -msgid "Maximum number of rules to process when no --rules is specified" -msgstr "" -"Максимальна кількість правил, які слід обробити, якщо не вказано параметра --" -"rules" - -msgid "Warning" -msgstr "Попередження" - -msgid "Matched rules" -msgstr "Відповідні правила" - -msgid "Not matched rules" -msgstr "Невідповідні правила" - -msgid "Non-existent or invalid rules" -msgstr "Некоректні правила або правила, яких не існує" - -msgid "Result of simulation" -msgstr "Результат імітації" - -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" - -msgid "Privilege name" -msgstr "Назва привілею" - -msgid "Privilege description" -msgstr "Опис привілею" - -msgid "Granting privilege to roles" -msgstr "Надання привілеїв ролям" - -msgid "Add a new privilege." -msgstr "Додати новий привілей." - -msgid "Add members to a privilege." -msgstr "Додати учасників до запису привілею." - -msgid "member role" -msgstr "роль учасника" - -msgid "comma-separated list of roles to add" -msgstr "список ролей, які слід додати, відокремлених комами" - -msgid "Add permissions to a privilege." -msgstr "Додати права доступу до привілею." - -msgid "permission" -msgstr "права доступу" - -msgid "comma-separated list of permissions" -msgstr "список прав доступу, відокремлених комами" - -msgid "Number of permissions added" -msgstr "Кількість доданих прав доступу" - -msgid "Delete a privilege." -msgstr "Вилучити привілей." - -msgid "Search for privileges." -msgstr "Знайти привілеї." - -msgid "Modify a privilege." -msgstr "Змінити привілей." - -msgid "Rename the privilege object" -msgstr "Перейменувати об’єкт привілеїв" - -msgid "Remove members from a privilege" -msgstr "Вилучити учасників з запису привілеїв" - -msgid "comma-separated list of roles to remove" -msgstr "список ролей, які слід вилучити, відокремлених комами" - -msgid "Remove permissions from a privilege." -msgstr "Вилучити права доступу з привілею." - -msgid "Number of permissions removed" -msgstr "Кількість вилучених записів прав доступу" - -msgid "Display information about a privilege." -msgstr "Показати дані щодо привілею." - -msgid "" -"\n" -"IPA certificate operations\n" -"\n" -"Implements a set of commands for managing server SSL certificates.\n" -"\n" -"Certificate requests exist in the form of a Certificate Signing Request " -"(CSR)\n" -"in PEM format.\n" -"\n" -"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" -msgstr "" -"\n" -"Дії з сертифікатами IPA\n" -"\n" -"Реалізує набір команд для керування сертифікатами серверів SSL.\n" -"\n" -"Запити щодо сертифікатів існують у формі Certificate Signing Request (CSR)\n" -"і форматі PEM.\n" -"\n" -"Якщо використовується модуль самопідписування, призначення у CSR має\n" -"збігатися із призначенням, вказаним на сервері. Служба сертифікації dogtag\n" -"використовує лише значення CN CSR і примусово встановлює\n" -"решту параметрів призначення за налаштуваннями сервера.\n" -"\n" -"Сертифікат зберігається з реєстраційним записом, а реєстраційний запис\n" -"потребує вузла.\n" -"\n" -"Для того, щоб створити запит щодо сертифіката:\n" -"\n" -"* Вузол має існувати\n" -"* Служба має існувати (або слід скористатися параметром --add " -"дляавтоматичного додавання)\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 - не визначено\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" - -msgid "Take a revoked certificate off hold." -msgstr "Забрати відкликаний сертифікат." - -msgid "Serial number" -msgstr "Серійний номер" - -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" -msgstr "Серійний десятковий номер або шістнадцятковий номер з префіксом 0x" - -msgid "Submit a certificate signing request." -msgstr "Надіслати запит щодо підписування сертифіката." - -msgid "CSR" -msgstr "CSR" - -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" -msgstr "" -"Реєстраційний запис служби для цього сертифіката (наприклад HTTP/test." -"example.com)" - -msgid "automatically add the principal if it doesn't exist" -msgstr "автоматично додати реєстраційний запис, якщо його не існує" - -msgid "Revoke a certificate." -msgstr "Відкликати сертифікат." - -msgid "Reason" -msgstr "Підстава" - -msgid "Reason for revoking the certificate (0-10)" -msgstr "Причина відкликання сертифіката (0-10)" - -msgid "Retrieve an existing certificate." -msgstr "Отримати вже створений сертифікат." - -msgid "Output filename" -msgstr "Назва файла виводу" - -msgid "File to store the certificate in." -msgstr "Файл, у якому зберігатимуться дані сертифіката." - -msgid "Check the status of a certificate signing request." -msgstr "Перевірити стан запиту щодо підписування сертифіката." - -msgid "Request id" -msgstr "Ід. запиту" - -msgid "" -"\n" -"Cross-realm trusts\n" -"\n" -"Manage trust relationship between IPA and Active Directory domains.\n" -"\n" -"In order to allow users from a remote domain to access resources in IPA\n" -"domain, trust relationship needs to be established. Currently IPA supports\n" -"only trusts between IPA and Active Directory domains under control of " -"Windows\n" -"Server 2008 or later, with functional level 2008 or later.\n" -"\n" -"Please note that DNS on both IPA and Active Directory domain sides should " -"be\n" -"configured properly to discover each other. Trust relationship relies on\n" -"ability to discover special resources in the other domain via DNS records.\n" -"\n" -"Examples:\n" -"\n" -"1. Establish cross-realm trust with Active Directory using AD administrator\n" -" credentials:\n" -"\n" -" ipa trust-add --type=ad --admin --" -"password\n" -"\n" -"2. List all existing trust relationships:\n" -"\n" -" ipa trust-find\n" -"\n" -"3. Show details of the specific trust relationship:\n" -"\n" -" ipa trust-show \n" -"\n" -"4. Delete existing trust relationship:\n" -"\n" -" ipa trust-del \n" -"\n" -"Once trust relationship is established, remote users will need to be mapped\n" -"to local POSIX groups in order to actually use IPA resources. The mapping " -"should\n" -"be done via use of external membership of non-POSIX group and then this " -"group\n" -"should be included into one of local POSIX groups.\n" -"\n" -"Example:\n" -"\n" -"1. Create group for the trusted domain admins' mapping and their local POSIX " -"group:\n" -"\n" -" ipa group-add --desc=' admins external map' ad_admins_external " -"--external\n" -" ipa group-add --desc=' admins' ad_admins\n" -"\n" -"2. Add security identifier of Domain Admins of the to the " -"ad_admins_external\n" -" group:\n" -"\n" -" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n" -"\n" -"3. Allow members of ad_admins_external group to be associated with ad_admins " -"POSIX group:\n" -"\n" -" ipa group-add-member ad_admins --groups ad_admins_external\n" -"\n" -"4. List members of external members of ad_admins_external group to see their " -"SIDs:\n" -"\n" -" ipa group-show ad_admins_external\n" -"\n" -"\n" -"GLOBAL TRUST CONFIGURATION\n" -"\n" -"When IPA AD trust subpackage is installed and ipa-adtrust-install is run,\n" -"a local domain configuration (SID, GUID, NetBIOS name) is generated. These\n" -"identifiers are then used when communicating with a trusted domain of the\n" -"particular type.\n" -"\n" -"1. Show global trust configuration for Active Directory type of trusts:\n" -"\n" -" ipa trustconfig-show --type ad\n" -"\n" -"2. Modify global configuration for all trusts of Active Directory type and " -"set\n" -" a different fallback primary group (fallback primary group GID is used " -"as\n" -" a primary user GID if user authenticating to IPA domain does not have any " -"other\n" -" primary GID already set):\n" -"\n" -" ipa trustconfig-mod --type ad --fallback-primary-group \"alternative AD " -"group\"\n" -"\n" -"3. Change primary fallback group back to default hidden group (any group " -"with\n" -" posixGroup object class is allowed):\n" -"\n" -" ipa trustconfig-mod --type ad --fallback-primary-group \"Default SMB Group" -"\"\n" -msgstr "" -"\n" -"Довіра між областями\n" -"\n" -"Керування відносинами довіри між доменами IPA і Active Directory.\n" -"\n" -"З метою надання доступу користувачам віддаленого домену до ресурсів у " -"домені\n" -"IPA слід встановити відносини довіри. У поточній версії у IPA передбачено\n" -"підтримку довіри лише між доменами IPA і Active Directory під керуванням " -"Windows\n" -"Server 2008 або новішої версії з функціональними можливостями рівня 2008 " -"або\n" -"новішої версії.\n" -"\n" -"Будь ласка, зауважте, що слід належним чином налаштувати DNS на обох " -"доменах,\n" -"IPA і Active Directory, щоб домени могли виявити один одного. " -"Працездатність\n" -"відносин довіри залежить від можливості виявлення спеціальних ресурсів у\n" -"іншому домені за допомогою записів DNS.\n" -"\n" -"Приклад:\n" -"\n" -"1. Встановити довіру між областями з Active Directory за допомогою " -"реєстраційних\n" -" даних адміністратора AD:\n" -"\n" -" ipa trust-add --type=ad <домен.ad> --admin <адміністратор домену AD> --" -"password\n" -"\n" -"2. Показати список всіх наявних відносин довіри:\n" -"\n" -" ipa trust-find\n" -"\n" -"3. Показати подробиці щодо певних відносин довіри:\n" -"\n" -" ipa trust-show <домен.ad>\n" -"\n" -"4. Вилучити наявні відносини довіри:\n" -"\n" -" ipa trust-del <домен.ad>\n" -"\n" -"Щойно відносини довіри буде встановлено, віддалених користувачів слід " -"прив’язати\n" -"до локальних груп POSIX, щоб скористатися ресурсами IPA. Прив’язку слід\n" -"виконати за допомогою використання зовнішньої участі групи не-POSIX, а " -"потім\n" -"цю групу має бути включено до однієї з локальних груп POSIX.\n" -"\n" -"Приклади:\n" -"\n" -"1. Створити групу для прив’язки адміністраторів та їхньої локальної групи " -"POSIX\n" -" довіреного домену:\n" -"\n" -" ipa group-add --desc='<домен.ad> admins external map' ad_admins_external " -"--external\n" -" ipa group-add --desc='<домен.ad> admins' ad_admins\n" -"\n" -"2. Додати ідентифікатор безпеки Domain Admins домену <домен.ad> до групи " -"ad_admins_external:\n" -"\n" -" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n" -"\n" -"3. Дозволити прив’язування учасників групи ad_admins_external до групи POSIX " -"ad_admins:\n" -"\n" -" ipa group-add-member ad_admins --groups ad_admins_external\n" -"\n" -"4. Показати список зовнішніх учасників групи ad_admins_external для " -"перегляду їхніх SID:\n" -"\n" -" ipa group-show ad_admins_external\n" -"\n" -"\n" -"НАЛАШТУВАННЯ ДОВІРИ ЗАГАЛЬНОГО РІВНЯ\n" -"\n" -"Якщо встановлено підпакунок довіри AD IPA та запущено ipa-adtrust-install,\n" -"створюються налаштування локального домену (SID, GUID, назва NetBIOS). " -"Після\n" -"цього створені ідентифікатори використовуються для обміну даними з\n" -"довіреним доменом певного типу.\n" -"\n" -"1. Показати налаштування довіри загального рівня для типів довіри Active " -"Directory:\n" -"\n" -" ipa trustconfig-show --type ad\n" -"\n" -"2. Змінити загальні налаштування для всіх довір типу Active Directory і\n" -" встановити іншу резервну основну групу (GID резервної основної групи\n" -" використовується як GID основного користувача, якщо користувача\n" -" розпізнано у домені IPA, але він не має жодного вже встановленого\n" -" основного GID):\n" -"\n" -" ipa trustconfig-mod --type ad --fallback-primary-group \"alternative AD " -"group\"\n" -"\n" -"3. Повернути для резервної основної групи значення типової прихованої групи\n" -" (будь-якої групи, у якій дозволено клас об’єктів posixGroup):\n" -"\n" -" ipa trustconfig-mod --type ad --fallback-primary-group \"Default SMB Group" -"\"\n" - -msgid "Domain NetBIOS name" -msgstr "Назва домену у NetBIOS" - -msgid "Domain Security Identifier" -msgstr "Ідентифікатор безпеки домену" - -msgid "SID blacklist incoming" -msgstr "Чорний список вхідних SID" - -msgid "SID blacklist outgoing" -msgstr "Чорний список вихідних SID" - -msgid "Domain" -msgstr "Домен" - -msgid "Security Identifier" -msgstr "Ідентифікатор безпеки" - -msgid "NetBIOS name" -msgstr "Назва NetBIOS" - -msgid "Domain GUID" -msgstr "GUID домену" - -msgid "Fallback primary group" -msgstr "Резервна основна група" - -msgid "" -"\n" -"Add new trust to use.\n" -"\n" -"This command establishes trust relationship to another domain\n" -"which becomes 'trusted'. As result, users of the trusted domain\n" -"may access resources of this domain.\n" -"\n" -"Only trusts to Active Directory domains are supported right now.\n" -"\n" -"The command can be safely run multiple times against the same domain,\n" -"this will cause change to trust relationship credentials on both\n" -"sides.\n" -" " -msgstr "" -"\n" -"Додати новий запис довіри для використання.\n" -"\n" -"За допомогою цієї команди можна встановити відносини довіри з\n" -"іншим доменом, який після цього вважається «довіреним». У результаті\n" -"користувачі довіреного домену зможуть отримувати доступ до ресурсів\n" -"цього домену.\n" -"\n" -"У поточній версії передбачено підтримку лише відносин довіри з доменами\n" -"Active Directory.\n" -"\n" -"Команду можна безпечно запускати декілька разів для одного і того самого\n" -"домену, такий запуск призводить до зміни у реєстраційних записах відносин\n" -"довіри з обох боків.\n" -" " - -msgid "Trust type (ad for Active Directory, default)" -msgstr "Тип довіри (типовим для Active Directory є ad)" - -msgid "Active Directory domain administrator" -msgstr "Адміністратор домену Active Directory" - -msgid "Active directory domain administrator's password" -msgstr "Пароль адміністратора домену Active directory" - -msgid "Domain controller for the Active Directory domain (optional)" -msgstr "Контролер домену Active Directory (необов’язковий)" - -msgid "Shared secret for the trust" -msgstr "Оприлюднений ключ для довіри" - -msgid "First Posix ID of the range reserved for the trusted domain" -msgstr "" -"Перший ідентифікатор POSIX діапазону, зарезервованого для довіреного домену" - -msgid "Size of the ID range reserved for the trusted domain" -msgstr "" -"Розмір діапазону ідентифікаторів, зарезервованого для довіреного домену" - -msgid "Delete a trust." -msgstr "Вилучити запис довіри." - -msgid "Search for trusts." -msgstr "Шукати записи довіри." - -msgid "Results should contain primary key attribute only (\"realm\")" -msgstr "Результати мають містити лише атрибут основного ключа («realm»)" - -msgid "" -"\n" -"Modify a trust (for future use).\n" -"\n" -" Currently only the default option to modify the LDAP attributes is\n" -" available. More specific options will be added in coming releases.\n" -" " -msgstr "" -"\n" -" Змінити запис довіри (для наступного використання).\n" -"\n" -" У поточній версії можлива зміна лише типова зміна атрибутів LDAP.\n" -" Додаткові варіанти буде додано у наступних випусках.\n" -" " - -msgid "Display information about a trust." -msgstr "Показати дані щодо довіри." - -msgid "Modify global trust configuration." -msgstr "Змінити налаштування довіри на загальному рівні." - -msgid "Show global trust configuration." -msgstr "Показати налаштування довіри на загальному рівні." - -msgid "" -"\n" -"Server configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -"NOTES:\n" -"\n" -"The password notification value (--pwdexpnotify) is stored here so it will\n" -"be replicated. It is not currently used to notify users in advance of an\n" -"expiring password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. " -"These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" -"\n" -"When setting the order list for mapping SELinux users you may need to\n" -"quote the value so it isn't interpreted by the shell.\n" -"\n" -"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" -"\n" -" Define SELinux user map order:\n" -" ipa config-mod --ipaselinuxusermaporder='guest_u:s0$xguest_u:s0$user_u:s0-" -"s0:c0.c1023$staff_u:s0-s0:c0.c1023$unconfined_u:s0-s0:c0.c1023'\n" -msgstr "" -"\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" -"Під час встановлення списку пріоритетності для користувачів SELinux може " -"виникнути\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" -"\n" -" Визначити пріоритетність користувачів у карті SELinux:\n" -" ipa config-mod --ipaselinuxusermaporder='guest_u:s0$xguest_u:s0$user_u:s0-" -"s0:c0.c1023$staff_u:s0-s0:c0.c1023$unconfined_u:s0-s0:c0.c1023'\n" - -msgid "Maximum username length" -msgstr "Максимальна довжина імені користувача" - -msgid "Home directory base" -msgstr "Адреса домашніх каталогів" - -msgid "Default location of home directories" -msgstr "Типова адреса домашніх каталогів" - -msgid "Default shell" -msgstr "Типова оболонка" - -msgid "Default shell for new users" -msgstr "Типова оболонка для нових користувачів" - -msgid "Default users group" -msgstr "Типова група користувачів" - -msgid "Default group for new users" -msgstr "Типова група для нових користувачів" - -msgid "Default e-mail domain" -msgstr "Типовий домен ел. пошти" - -msgid "Search time limit" -msgstr "Обмеження часу пошуку" - -msgid "" -"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" -msgstr "" -"Максимальний проміжок часу (у секундах) для виконання однієї дії з пошуку " -"(>0, -1 — без обмежень)" - -msgid "Search size limit" -msgstr "Обмеження розміру пошуку" - -msgid "Maximum number of records to search (-1 is unlimited)" -msgstr "Максимальна кількість записів результатів пошуку (-1 — без обмежень)" - -msgid "User search fields" -msgstr "Поля пошуку користувачів" - -msgid "A comma-separated list of fields to search in when searching for users" -msgstr "" -"Відокремлений комами список полів, за якими виконуватиметься пошук " -"користувачів" - -msgid "Group search fields" -msgstr "Поля пошуку груп" - -msgid "A comma-separated list of fields to search in when searching for groups" -msgstr "" -"Відокремлений комами список полів, за якими виконуватиметься пошук груп" - -msgid "Enable migration mode" -msgstr "Увімкнути режим міграції" - -msgid "Certificate Subject base" -msgstr "Базовий об’єкт сертифікації" - -msgid "Base for certificate subjects (OU=Test,O=Example)" -msgstr "Основа для створення записів об’єктів сертифікації (OU=Test,O=Example)" - -msgid "Default group objectclasses" -msgstr "Типові класи об’єктів групи" - -msgid "Default group objectclasses (comma-separated list)" -msgstr "Типові класи об’єктів груп (список класів, відокремлених комами)" - -msgid "Default user objectclasses" -msgstr "Типові класи об’єктів користувачів" - -msgid "Default user objectclasses (comma-separated list)" -msgstr "" -"Типові класи об’єктів користувачів (список класів, відокремлених комами)" - -msgid "Password Expiration Notification (days)" -msgstr "Сповіщення про вичерпання строку дії пароля (у днях)" - -msgid "Number of days's notice of impending password expiration" -msgstr "" -"Сповіщення про кількість днів, які залишилися до завершення дії пароля." - -msgid "Password plugin features" -msgstr "Можливості додатка паролів" - -msgid "Extra hashes to generate in password plug-in" -msgstr "Додаткові хеші для створення у додатку паролів." - -msgid "SELinux user map order" -msgstr "Порядок карт користувачів SELinux" - -msgid "Order in increasing priority of SELinux users, delimited by $" -msgstr "" -"Порядок у збільшенні пріоритетності користувачів SELinux, відокремлений $" - -msgid "Default SELinux user" -msgstr "Типовий користувач SELinux" - -msgid "Default SELinux user when no match is found in SELinux map rule" -msgstr "" -"Типовий користувач SELinux, якщо не буде знайдено відповідного у правилі " -"карти SELinux" - -msgid "Default PAC types" -msgstr "Типові типи PAC" - -msgid "Default types of PAC supported for services" -msgstr "Типові типи PAC, підтримувані для служб" - -msgid "Modify configuration options." -msgstr "Змінити параметри налаштування." - -msgid "Show the current configuration." -msgstr "Показати поточні налаштування." - -msgid "" -"\n" -"ID ranges\n" -"\n" -"Manage ID ranges used to map Posix IDs to SIDs and back.\n" -"\n" -"There are two type of ID ranges which are both handled by this utility:\n" -"\n" -" - the ID ranges of the local domain\n" -" - the ID ranges of trusted remote domains\n" -"\n" -"Both types have the following attributes in common:\n" -"\n" -" - base-id: the first ID of the Posix ID range\n" -" - range-size: the size of the range\n" -"\n" -"With those two attributes a range object can reserve the Posix IDs starting\n" -"with base-id up to but not including base-id+range-size exclusively.\n" -"\n" -"Additionally an ID range of the local domain may set\n" -" - rid-base: the first RID(*) of the corresponding RID range\n" -" - secondary-rid-base: first RID of the secondary RID range\n" -"\n" -"and an ID range of a trusted domain must set\n" -" - rid-base: the first RID of the corresponding RID range\n" -" - sid: domain SID of the trusted domain\n" -"\n" -"\n" -"\n" -"EXAMPLE: Add a new ID range for a trusted domain\n" -"\n" -"Since there might be more than one trusted domain the domain SID must be " -"given\n" -"while creating the ID range.\n" -"\n" -" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" -"base=0 --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" -"\n" -"This ID range is then used by the IPA server and the SSSD IPA provider to\n" -"assign Posix UIDs to users from the trusted domain.\n" -"\n" -"If e.g. a range for a trusted domain is configured with the following " -"values:\n" -" base-id = 1200000\n" -" range-size = 200000\n" -" rid-base = 0\n" -"the RIDs 0 to 199999 are mapped to the Posix ID from 1200000 to 13999999. " -"So\n" -"RID 1000 <-> Posix ID 1201000\n" -"\n" -"\n" -"\n" -"EXAMPLE: Add a new ID range for the local domain\n" -"\n" -"To create an ID range for the local domain it is not necessary to specify a\n" -"domain SID. But since it is possible that a user and a group can have the " -"same\n" -"value as Posix ID a second RID interval is needed to handle conflicts.\n" -"\n" -" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" -"base=1000 --secondary-rid-base=1000000 local_range\n" -"\n" -"The data from the ID ranges of the local domain are used by the IPA server\n" -"internally to assign SIDs to IPA users and groups. The SID will then be " -"stored\n" -"in the user or group objects.\n" -"\n" -"If e.g. the ID range for the local domain is configured with the values " -"from\n" -"the example above then a new user with the UID 1200007 will get the RID " -"1007.\n" -"If this RID is already used by a group the RID will be 1000007. This can " -"only\n" -"happen if a user or a group object was created with a fixed ID because the\n" -"automatic assignment will not assign the same ID twice. Since there are " -"only\n" -"users and groups sharing the same ID namespace it is sufficient to have " -"only\n" -"one fallback range to handle conflicts.\n" -"\n" -"To find the Posix ID for a given RID from the local domain it has to be\n" -"checked first if the RID falls in the primary or secondary RID range and\n" -"the rid-base or the secondary-rid-base has to be subtracted, respectively,\n" -"and the base-id has to be added to get the Posix ID.\n" -"\n" -"Typically the creation of ID ranges happens behind the scenes and this CLI\n" -"must not be used at all. The ID range for the local domain will be created\n" -"during installation or upgrade from an older version. The ID range for a\n" -"trusted domain will be created together with the trust by 'ipa trust-" -"add ...'.\n" -"\n" -"USE CASES:\n" -"\n" -" Add an ID range from a transitively trusted domain\n" -"\n" -" If the trusted domain (A) trusts another domain (B) as well and this " -"trust\n" -" is transitive 'ipa trust-add domain-A' will only create a range for\n" -" domain A. The ID range for domain B must be added manually.\n" -"\n" -" Add an additional ID range for the local domain\n" -"\n" -" If the ID range of the local domain is exhausted, i.e. no new IDs can " -"be\n" -" assigned to Posix users or groups by the DNA plugin, a new range has to " -"be\n" -" created to allow new users and groups to be added. (Currently there is " -"no\n" -" connection between this range CLI and the DNA plugin, but a future " -"version\n" -" might be able to modify the configuration of the DNS plugin as well)\n" -"\n" -"In general it is not necessary to modify or delete ID ranges. If there is " -"no\n" -"other way to achieve a certain configuration than to modify or delete an ID\n" -"range it should be done with great care. Because UIDs are stored in the " -"file\n" -"system and are used for access control it might be possible that users are\n" -"allowed to access files of other users if an ID range got deleted and " -"reused\n" -"for a different domain.\n" -"\n" -"(*) The RID is typically the last integer of a user or group SID which " -"follows\n" -"the domain SID. E.g. if the domain SID is S-1-5-21-123-456-789 and a user " -"from\n" -"this domain has the SID S-1-5-21-123-456-789-1010 then 1010 id the RID of " -"the\n" -"user. RIDs are unique in a domain, 32bit values and are used for users and\n" -"groups.\n" -"\n" -"=======\n" -"WARNING:\n" -"\n" -"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " -"the\n" -"local domain. Currently the DNA plugin *cannot* be reconfigured itself " -"based\n" -"on the local ranges set via this family of commands.\n" -"\n" -"Manual configuration change has to be done in the DNA plugin configuration " -"for\n" -"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" -"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " -"be\n" -"modified to match the new range.\n" -"=======\n" -msgstr "" -"\n" -"Діапазони ідентифікаторів\n" -"\n" -"Керування діапазонами ідентифікаторів, використаних для відображення\n" -"ідентифікаторів POSIX на SID, і навпаки.\n" -"\n" -"За допомогою цієї програми можна керувати обома типами діапазонів " -"ідентифікаторів:\n" -"\n" -" - діапазони ідентифікаторів локального домену\n" -" - діапазони ідентифікаторів довірених віддалених доменів\n" -"\n" -"Обидва типи мають такі спільні атрибути:\n" -"\n" -" - base-id: перший ідентифікатор діапазону ідентифікаторів POSIX\n" -" - range-size: розмір діапазону\n" -"\n" -"На основі цих двох атрибутів об’єкт діапазону може зарезервувати " -"ідентифікатори\n" -"POSIX, починаючи з base-id аж до, але не включно, base-id+range-size.\n" -"\n" -"Крім того, можна встановити діапазон ідентифікаторів локального домену\n" -" - rid-base: перший RID(*) відповідного діапазону RID\n" -" - secondary-rid-base: перший RID вторинного діапазону RID\n" -"\n" -"а діапазон ідентифікаторів довіреного домену слід задавати за допомогою\n" -" - rid-base: перший RID відповідного діапазону RID\n" -" - dom_sid: SID довіреного домену\n" -"\n" -"\n" -"\n" -"ПРИКЛАД: додавання нового діапазону ідентифікаторів для довіреного домену\n" -"\n" -"Оскільки може бути декілька довірених доменів, під час створення діапазону\n" -"ідентифікаторів слід вказати SID домену.\n" -"\n" -" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-base=0 \\\n" -" --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" -"\n" -"Цей діапазон ідентифікаторів потім використовуватиметься сервером IPA\n" -"та надавачем даних IPA SSSD для призначення UID Posix користувачам з\n" -"довіреного домену.\n" -"\n" -"Якщо, наприклад, налаштовано діапазон для довіреного домену з такими\n" -"значеннями:\n" -" base-id = 1200000\n" -" range-size = 200000\n" -" rid-base = 0\n" -"RID від 0 до 199999 прив’язуються до ідентифікаторів Posix від 1200000 до\n" -"13999999. Отже RID 1000 <-> Posix ID 1201000\n" -"\n" -"\n" -"\n" -"ПРИКЛАД: додавання нового діапазону ідентифікаторів до локального домену\n" -"\n" -"Щоб створити діапазон ідентифікаторів для локального домену не потрібно\n" -"вказувати SID домену. Але оскільки можливий конфлікт між ідентифікаторами\n" -"користувача і групи та ідентифікаторами POSIX, потрібен вторинний інтервал\n" -"RID.\n" -"\n" -" ipa range-add --base-id=1200000 --range-size=200000 --rid-base=1000 \\\n" -" --secondary-rid-base=1000000 local_range\n" -"\n" -"Дані з діапазонів ідентифікаторів локального домену використовуються\n" -"сервером IPA на внутрішньому рівні для призначення SID користувачам і " -"групам\n" -"IPA. SID буде збережено у об’єктах користувача або групи.\n" -"\n" -"Якщо, наприклад, для діапазону ідентифікаторів локального домену визначено\n" -"значення з наведеного вище прикладу, новий користувач з UID 1200007 отримає\n" -"RID 1007. Якщо цей RID вже буде використано групою, його буде змінено на " -"1000007.\n" -"Таке може трапитися лише, якщо об’єкт користувача або групи було створено з\n" -"фіксованим ідентифікатором, оскільки у разі автоматичного призначення один\n" -"ідентифікатор не може бути призначено двічі. Оскільки спільний простір назв\n" -"є лише у користувачів і груп, достатньо одного резервного діапазону для\n" -"того, щоб повністю позбутися конфліктів.\n" -"\n" -"Для визначення ідентифікатора POSIX за вказаним RID з локального домену " -"слід\n" -"спочатку перевірити, чи потрапляє RID у основний або вторинний діапазон " -"RID,\n" -"також, щоб отримати ідентифікатор POSIX, слід відняти від ідентифікатор rid-" -"base\n" -"або secondary-rid-base, відповідно, і додати base-id.\n" -"\n" -"Типово, створення діапазонів ідентифікаторів є зовні непомітним і потреби у\n" -"цьому інтерфейсі командного рядка не виникає. Діапазон ідентифікаторів\n" -"для локального домену буде створено під час встановлення або оновлення\n" -"попередньої версії. Діапазон ідентифікаторів для довіреного домену буде\n" -"створено разом з записом довіри командою «ipa trust-add ...».\n" -"Нижче наведено можливі випадки використання цього командного інтерфейсу.\n" -"\n" -"ВИПАДКИ ВИКОРИСТАННЯ:\n" -"\n" -" Додавання діапазону ідентифікаторів з перехідного довіреного домену\n" -"\n" -" Якщо довірений домен (A) довіряється іншому домену (B) і цей запис\n" -" довіри є перехідним, «ipa trust-add домен-A» створить лише діапазон\n" -" для домену A. Діапазон ідентифікаторів домену B має бути додано вручну.\n" -"\n" -" Додавання додаткового діапазону ідентифікаторів для локального домену\n" -"\n" -" Якщо діапазон ідентифікаторів локального домену вичерпано, тобто " -"додатком\n" -" DNA не може бути призначено нові ідентифікатори користувачам або групам\n" -" POSIX, має бути створено новий діапазон для додавання нових " -"користувачів\n" -" та груп. (У поточній версії між цим командним інтерфейсом і додатком " -"DNA\n" -" немає безпосереднього зв’язку, але у майбутній версії може бути " -"передбачено\n" -" можливість внесення змін і до налаштувань додатка DNS.)\n" -"\n" -"Загалом, потреби у зміні або вилученні діапазонів ідентифікаторів немає.\n" -"Якщо немає іншого виходу, окрім внесення змін або вилучення діапазону\n" -"ідентифікаторів, робити це слід дуже обережно. Оскільки UID зберігаються у\n" -"файловій системі і використовуються для керування доступом, можлива " -"ситуація,\n" -"коли одні користувачі отримуватимуть доступ до файлів інших користувачів\n" -"у разі вилучення діапазону ідентифікаторів і повторного його використання\n" -"у іншому домені.\n" -"\n" -"(*) RID типово є останнім цілим числом SID користувача або групи, перед " -"якими\n" -"має бути вказано SID домену. Наприклад, якщо SID домену " -"S-1-5-21-123-456-789, а\n" -"користувач з цього домену має SID S-1-5-21-123-456-789-1010, RID " -"користувача\n" -"буде 1010. RID є унікальними в межах домену, є 32-бітовими значенням і\n" -"використовуються для користувачів і груп.\n" -"\n" -"=======\n" -"ПОПЕРЕДЖЕННЯ:\n" -"\n" -"Додаток DNA у 389-ds розміщуватиме ідентифікатори на основі діапазонів\n" -"налаштованих для локального домену. У поточній версії додаток DNA *не " -"можна*\n" -"переналаштовувати самостійно на основі локальних діапазонів, встановлених\n" -"за допомогою цього сімейства команд.\n" -"\n" -"Зміни налаштувань вручну має бути виконано у налаштуваннях додатка DNA\n" -"для локального діапазону. Зокрема слід змінити атрибут dnaNextRange " -"«cn=Posix\n" -"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config» так, щоб\n" -"він відповідав новому діапазону.\n" -"=======\n" - -msgid "Name of the trusted domain" -msgstr "Назва довіреного домену" - -msgid "ID range type, one of ipa-ad-trust-posix, ipa-ad-trust, ipa-local" -msgstr "" -"Тип діапазону ідентифікаторів. Можливі варіанти: ipa-ad-trust-posix, ipa-ad-" -"trust, ipa-local" - -msgid "" -"\n" -"Add new ID range.\n" -"\n" -" To add a new ID range you always have to specify\n" -"\n" -" --base-id\n" -" --range-size\n" -"\n" -" Additionally\n" -"\n" -" --rid-base\n" -" --secondary-rid-base\n" -"\n" -" may be given for a new ID range for the local domain while\n" -"\n" -" --rid-base\n" -" --dom-sid\n" -"\n" -" must be given to add a new range for a trusted AD domain.\n" -"\n" -"=======\n" -"WARNING:\n" -"\n" -"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " -"the\n" -"local domain. Currently the DNA plugin *cannot* be reconfigured itself " -"based\n" -"on the local ranges set via this family of commands.\n" -"\n" -"Manual configuration change has to be done in the DNA plugin configuration " -"for\n" -"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" -"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " -"be\n" -"modified to match the new range.\n" -"=======\n" -" " -msgstr "" -"\n" -" Додати новий діапазон ідентифікаторів.\n" -"\n" -" Для додавання нового діапазону ідентифікаторів вам слід завжди " -"вказувати\n" -"\n" -" --base-id\n" -" --range-size\n" -"\n" -" Крім того, може бути надано\n" -"\n" -" --rid-base\n" -" --econdary-rid-base\n" -"\n" -" для додавання нового діапазону ідентифікаторів для локального домену і\n" -"\n" -" --rid-base\n" -" --dom-sid\n" -"\n" -" для додавання нового діапазону для довіреного домену AD.\n" -"\n" -"=======\n" -"ПОПЕРЕДЖЕННЯ:\n" -"\n" -" Додаток DNA у 389-ds визначатиме ідентифікатори у діапазонах, " -"налаштованих\n" -" для локального домену. У поточній версії додаток DNA *не може* змінити\n" -" власні налаштування на основі локальних діапазонів, встановлених за\n" -" допомогою цього сімейства команд.\n" -"\n" -" Для внесення змін щодо локального діапазону слід змінити налаштування\n" -" додатка DNA вручну. Зокрема, слід внести зміни до атрибута 'cn=Posix\n" -" IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' " -"відповідно\n" -" до параметрів нового діапазону.\n" -"=======\n" -" " - -msgid "Time limit of search in seconds (0 is unlimited)" -msgstr "Обмеження часу пошуку у секундах (0 — без обмежень)" - -msgid "Maximum number of entries returned (0 is unlimited)" -msgstr "Максимальна кількість повернутих записів (0 — без обмежень)" - -msgid "" -"\n" -"Modify ID range.\n" -"\n" -"=======\n" -"WARNING:\n" -"\n" -"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " -"the\n" -"local domain. Currently the DNA plugin *cannot* be reconfigured itself " -"based\n" -"on the local ranges set via this family of commands.\n" -"\n" -"Manual configuration change has to be done in the DNA plugin configuration " -"for\n" -"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" -"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " -"be\n" -"modified to match the new range.\n" -"=======\n" -" " -msgstr "" -"\n" -"Змінити діапазон ідентифікаторів.\n" -"\n" -"=======\n" -"ПОПЕРЕДЖЕННЯ:\n" -"\n" -"Додаток DNA у 389-ds розподілятиме ідентифікатори на основі діапазонів,\n" -"налаштованих для локального домену. У поточній версії додаток DNA *не може*\n" -"переналаштуватися на основі локальних діапазонів, встановлених цим\n" -"сімейством команд.\n" -"\n" -"Для використання нового локального діапазону до налаштувань додатка DNA\n" -"слід внести зміни вручну. Зокрема, слід змінити атрибут dnaNextRange " -"'cn=Posix\n" -"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' так, щоб\n" -"він відповідав новому діапазону.\n" -"=======\n" -" " - -msgid "" -"\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" -"\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Override a default list of supported PAC types for the service:\n" -" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n" -"\n" -" A typical use case where overriding the PAC type is needed is NFS.\n" -" Currently the related code in the Linux kernel can only handle Kerberos\n" -" tickets up to a maximal size. Since the PAC data can become quite large " -"it\n" -" is recommended to set --pac-type=NONE for NFS services.\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" -"\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" -"\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" -"\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" -"\n" -" Allow user to create a keytab:\n" -" ipa service-allow-create-keytab HTTP/web.example.com --users=tuser1\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" -msgstr "" -"\n" -"Служби\n" -"\n" -"Служба IPA — це служба, що працює на вузлі системи. У записі служби\n" -"IPA можуть зберігатися дані реєстраційного запису Kerberos, сертифікат\n" -"SSL або обидва набори даних.\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" -"\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" -" Перевизначити типовий список підтримуваних типів PAC для служби:\n" -" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n" -"\n" -" Типовим випадком, коли потрібне перевизначення типу PAC є NFS.\n" -" У поточній версії ядра Linux відповідний код може працювати лише з\n" -" квитками Kerberos, розмір яких не перевищує максимально заданого.\n" -" Оскільки дані PAC можуть бути доволі об’ємними, для служб NFS\n" -" рекомендуємо встановити --pac-type=NONE.\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" -" Дозволити користувачеві створювати сховище ключів:\n" -" ipa service-allow-create-keytab HTTP/web.example.com --users=tuser1\n" -"\n" -" Створити і отримати вміст сховища ключів для служби IPA:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/" -"httpd.keytab\n" - -msgid "" -"Override default list of supported PAC types. Use 'NONE' to disable PAC " -"support for this service, e.g. this might be necessary for NFS services." -msgstr "" -"Перевизначити типовий список підтримуваних типів PAC. Скористайтеся " -"значенням «NONE», щоб вимкнути підтримку PAC для цієї служби. Це, наприклад, " -"може бути необхідним для служб NFS." - -msgid "Requires pre-authentication" -msgstr "Вимагає попереднього розпізнавання" - -msgid "Pre-authentication is required for the service" -msgstr "Для роботи з цією службою потрібне попереднє розпізнавання" - -msgid "Trusted for delegation" -msgstr "Довірено для уповноваження" - -msgid "Client credentials may be delegated to the service" -msgstr "Реєстраційні дані клієнта може бути передано службі" - -msgid "Users allowed to retrieve keytab" -msgstr "Користувачі, яким дозволено отримувати таблицю ключів" - -msgid "Groups allowed to retrieve keytab" -msgstr "Групи, яким дозволено отримувати таблицю ключів" - -msgid "Hosts allowed to retrieve keytab" -msgstr "Вузли, яким дозволено отримувати таблицю ключів" - -msgid "Host Groups allowed to retrieve keytab" -msgstr "Групи вузлів, яким дозволено отримувати таблицю ключів" - -msgid "Users allowed to create keytab" -msgstr "Користувачі, яким дозволено створення таблиці ключів" - -msgid "Groups allowed to create keytab" -msgstr "Групи, яким дозволено створення таблиці ключів" - -msgid "Hosts allowed to create keytab" -msgstr "Вузли, яким дозволено створення таблиці ключів" - -msgid "Host Groups allowed to create keytab" -msgstr "Групи вузлів, яким дозволено створення таблиці ключів" - -msgid "Suppress processing of membership attributes." -msgstr "Придушити обробку атрибутів участі." - -msgid "Add new certificates to a service" -msgstr "Додати нові сертифікати до запису служби" - -msgid "hosts to add" -msgstr "вузли для додавання" - -msgid "" -"Allow users, groups, hosts or host groups to create a keytab of this service." -msgstr "" -"Дозволити користувачам, групам, вузлам і групам вузлів створювати таблицю " -"ключів цієї служби." - -msgid "users to add" -msgstr "користувачі для додавання" - -msgid "groups to add" -msgstr "групи для додавання" - -msgid "host groups to add" -msgstr "групи вузлів для додавання" - -msgid "" -"Allow users, groups, hosts or host groups to retrieve a keytab of this " -"service." -msgstr "" -"Дозволити користувачам, групам, вузлам і групам вузлів отримувати таблицю " -"ключів цієї служби." - -msgid "" -"Disallow users, groups, hosts or host groups to create a keytab of this " -"service." -msgstr "" -"Заборонити користувачам, групам, вузлам і групам вузлів створювати таблицю " -"ключів цієї служби." - -msgid "users to remove" -msgstr "користувачі, записи яких слід вилучити" - -msgid "groups to remove" -msgstr "групи для вилучення" - -msgid "hosts to remove" -msgstr "вузли для вилучення" - -msgid "host groups to remove" -msgstr "групи вузлів для вилучення" - -msgid "" -"Disallow users, groups, hosts or host groups to retrieve a keytab of this " -"service." -msgstr "" -"Заборонити користувачам, групам, вузлам і групам вузлів отримувати таблицю " -"ключів цієї служби." - -msgid "Remove certificates from a service" -msgstr "Вилучити сертифікати із запису служби" - -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 invoke Sudo.\n" -" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke " -"Sudo.\n" -" Allow Command: The specific command(s) permitted to be run via Sudo.\n" -" Deny Command: The specific command(s) prohibited to be run via Sudo.\n" -" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be " -"invoked with.\n" -" 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" -"An order can be added to a sudorule to control the order in which they\n" -"are evaluated (if the client supports it). This order is an integer and\n" -"must be unique.\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" -"EXAMPLES:\n" -"\n" -" Create a new rule:\n" -" ipa sudorule-add readfiles\n" -"\n" -" Add sudo command object and add it as allowed command in the rule:\n" -" ipa sudocmd-add /usr/bin/less\n" -" ipa sudorule-add-allow-command readfiles --sudocmds /usr/bin/less\n" -"\n" -" Add a host to the rule:\n" -" ipa sudorule-add-host readfiles --hosts server.example.com\n" -"\n" -" Add a user to the rule:\n" -" ipa sudorule-add-user readfiles --users jsmith\n" -"\n" -" Add a special Sudo rule for default Sudo server configuration:\n" -" ipa sudorule-add defaults\n" -"\n" -" Set a default Sudo option:\n" -" ipa sudorule-add-option defaults --sudooption '!authenticate'\n" -msgstr "" -"\n" -"Правила sudo\n" -"\n" -"Sudo (su \"do\") надає системному адміністратору змогу делегувати\n" -"повноваження певним користувачам (або групам користувачів) на виконання\n" -"деяких (або усіх) команд від імені адміністратора (root) або іншого\n" -"користувача, зберігаючи водночас журнал виконання команд та\n" -"аргументів.\n" -"\n" -"У FreeIPA передбачено декілька параметрів налаштовування роботи sudo:\n" -" Users: користувачі або групи, які можуть викликати sudo.\n" -" Hosts: вузли або групи вузлів, користувачі якого можуть викликати sudo.\n" -" Allow Command: специфічні команди, які можна виконувати за допомогою " -"sudo.\n" -" Deny Command: специфічні команди, які не можна виконувати за допомогою " -"sudo.\n" -" RunAsUser: користувачі або групи, від імені яких sudo виконуватиме " -"команди.\n" -" RunAsGroup: групи, ідентифікатори яких буде використано sudo для " -"виконання команд.\n" -" Options: різноманітні параметри sudoers, які можуть змінити поведінку " -"sudo.\n" -"\n" -"До правила sudo можна додати порядок, який керуватиме порядком\n" -"обробки записів (якщо такий порядок передбачено на клієнтському боці).\n" -"Порядок визначається числовим індексом, який не повинен повторюватися.\n" -"\n" -"У FreeIPA передбачено визначений binddn для використання з sudo, який " -"розташовано у\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\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" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Створити правило:\n" -" ipa sudorule-add readfiles\n" -"\n" -" Додати об’єкт команди sudo і записати його як дозволену команду до " -"правила:\n" -" ipa sudocmd-add /usr/bin/less\n" -" ipa sudorule-add-allow-command readfiles --sudocmds /usr/bin/less\n" -"\n" -" Додати запис вузла до правила:\n" -" ipa sudorule-add-host readfiles --hosts server.example.com\n" -"\n" -" Додати запис користувача до правила:\n" -" ipa sudorule-add-user readfiles --users jsmith\n" -"\n" -" Додати особливе правило sudo для типового налаштовування сервера sudo:\n" -" ipa sudorule-add defaults\n" -"\n" -" Встановити типовий варіант дій для sudo:\n" -" ipa sudorule-add-option defaults --sudooption '!authenticate'\n" - -msgid "Host Masks" -msgstr "Маски вузлів" - -msgid "External Groups of RunAs Users" -msgstr "Зовнішні групи користувачів для запуску від імені" - -msgid "External Groups of users that the command can run as" -msgstr "Зовнішні групи користувачів, від імені яких можна виконувати команду" - -msgid "sudo commands to add" -msgstr "команди sudo, які слід додати" - -msgid "sudo command groups to add" -msgstr "групи команд sudo для додавання" - -msgid "host masks of allowed hosts" -msgstr "маски для дозволених вузлів" - -msgid "sudo commands to remove" -msgstr "команди sudo для вилучення" - -msgid "sudo command groups to remove" -msgstr "групи команд sudo для вилучення" - -msgid "" -"\n" -"Groups of Sudo Commands\n" -"\n" -"Manage groups of Sudo Commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo Command Group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo Command Group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo Command Group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less --sudocmds=/usr/bin/" -"vim admincmds\n" -"\n" -" Manage Sudo Command Group membership, commands:\n" -" ipa group-remove-member --sudocmds=/usr/bin/less admincmds\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 --sudocmds=/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" - -msgid "" -"\n" -"ID Views\n" -"\n" -"Manage ID Views\n" -"\n" -"IPA allows to override certain properties of users and groups per each " -"host.\n" -"This functionality is primarily used to allow migration from older systems " -"or\n" -"other Identity Management solutions.\n" -msgstr "" -"\n" -"Перегляди ідентифікаторів\n" -"\n" -"Керування переглядами ідентифікаторів\n" -"\n" -"IPA надає вам змогу перевизначити певні властивості записів користувачів та " -"груп для окремих вузлів.\n" -"В основному, ці функціональні можливості призначено для уможливлення " -"перенесення даних із застарілих\n" -"систем або інших рішень для керування профілями.\n" - -msgid "Anchor to override" -msgstr "Прив’язка для перевизначення" - -msgid "User ID Number" -msgstr "Номер ідентифікатора користувача" - -msgid "GECOS" -msgstr "GECOS" - -msgid "ID View Name" -msgstr "Назва перегляду ідентифікаторів" - -msgid "Add a new Group ID override." -msgstr "Додати нове перевизначення ідентифікаторів групи." - -msgid "Fallback to AD DC LDAP" -msgstr "Повернення до резервного DC LDAP AD" - -msgid "" -"Allow falling back to AD DC LDAP when resolving AD trusted objects. For two-" -"way trusts only." -msgstr "" -"Дозволити повернення до резервного варіанта LDAP DC AD під час визначення " -"адрес довірених об’єктів AD. Лише для двобічних відносин довіри." - -msgid "Delete an Group ID override." -msgstr "Вилучити перевизначення ідентифікаторів групи." - -msgid "Search for an Group ID override." -msgstr "Шукати перевизначення ідентифікаторів групи." - -msgid "Results should contain primary key attribute only (\"anchor\")" -msgstr "Результати мають містити лише атрибут основного ключа («anchor»)" - -msgid "Modify an Group ID override." -msgstr "Змінити перевизначення ідентифікаторів групи." - -msgid "Rename the Group ID override object" -msgstr "Перейменувати об’єкт перевизначення ідентифікатора групи" - -msgid "Display information about an Group ID override." -msgstr "Показати дані щодо перевизначення ідентифікаторів групи." - -msgid "Add a new User ID override." -msgstr "Додати нове перевизначення ідентифікатора користувача." - -msgid "Delete an User ID override." -msgstr "Вилучити перевизначення ідентифікатора користувача." - -msgid "Search for an User ID override." -msgstr "Шукати перевизначення ідентифікатора користувача." - -msgid "Modify an User ID override." -msgstr "Змінити перевизначення ідентифікатора користувача." - -msgid "Rename the User ID override object" -msgstr "Перейменувати об’єкт перевизначення ідентифікатора користувача" - -msgid "Display information about an User ID override." -msgstr "Показати дані щодо перевизначення ідентифікатора користувача." - -msgid "Add a new ID View." -msgstr "Додати новий перегляд ідентифікаторів." - -msgid "" -"Applies ID View to specified hosts or current members of specified " -"hostgroups. If any other ID View is applied to the host, it is overridden." -msgstr "" -"Застосовує перегляд ідентифікаторів до вказаних вузлів або поточних " -"учасників вказаних груп вузлів. Якщо до вузла застосовується якийсь інший " -"перегляд ідентифікаторів, його буде перевизначено." - -msgid "hosts" -msgstr "вузли" - -msgid "Hosts to apply the ID View to" -msgstr "Вузли, до яких слід застосувати перегляд ідентифікаторів" - -msgid "hostgroups" -msgstr "групи вузлів" - -msgid "" -"Hostgroups to whose hosts apply the ID View to. Please note that view is not " -"applied automatically to any hosts added to the hostgroup after running the " -"idview-apply command." -msgstr "" -"Групи вузлів, до чиїх вузлів буде застосовано перегляд ідентифікаторів. Будь " -"ласка, зауважте, що перегляд не застосовується автоматично до жодних вузлів, " -"доданих до групи вузлів після виконання команди idview-apply." - -msgid "Hosts that this ID View was applied to." -msgstr "Вузли, до яких було застосовано цей перегляд ідентифікаторів." - -msgid "Hosts or hostgroups that this ID View could not be applied to." -msgstr "" -"Вузли або групи вузлів, до яких не можна застосувати цей перегляд " -"ідентифікаторів." - -msgid "Number of hosts the ID View was applied to:" -msgstr "Кількість вузлів, до яких застосовано перегляд ідентифікаторів:" - -msgid "Delete an ID View." -msgstr "Вилучити перегляд ідентифікаторів." - -msgid "Search for an ID View." -msgstr "Шукати перегляд ідентифікаторів." - -msgid "Modify an ID View." -msgstr "Змінити перегляд ідентифікаторів." - -msgid "Rename the ID View object" -msgstr "Перейменувати об’єкт перегляду ідентифікатора" - -msgid "Display information about an ID View." -msgstr "Показати дані щодо перегляду ідентифікаторів." - -msgid "Enumerate all the hosts the view applies to." -msgstr "Пронумерувати усі вузли, до яких застосовний перегляд." - -msgid "" -"Clears ID View from specified hosts or current members of specified " -"hostgroups." -msgstr "" -"Знімає перегляд ідентифікаторів із вказаних вузлів або поточних учасників " -"вказаних груп вузлів." - -msgid "Hosts to clear (any) ID View from." -msgstr "Вузли, з яких слід зняти (будь-який) перегляд ідентифікаторів." - -msgid "" -"Hostgroups whose hosts should have ID Views cleared. Note that view is not " -"cleared automatically from any host added to the hostgroup after running " -"idview-unapply command." -msgstr "" -"Групи вузлів, для вузлів яких знято обробку переглядами ідентифікаторів. " -"Зауважте, що після запуску команди idview-unapply перегляд з будь-якого " -"вузла, доданого до групи вузлів, не зніматиметься автоматично." - -msgid "Hosts that ID View was cleared from." -msgstr "Вузли, з яких знято перегляд ідентифікаторів." - -msgid "Hosts or hostgroups that ID View could not be cleared from." -msgstr "" -"Вузли або групи вузлів, з яких не можна зняти перегляд ідентифікаторів." - -msgid "Number of hosts that had a ID View was unset:" -msgstr "Кількість вузлів, з яких знято перегляд ідентифікаторів:" - -msgid "" -"\n" -"Raise the IPA Domain Level.\n" -msgstr "" -"\n" -"Підняти рівень домену IPA.\n" - -msgid "Query current Domain Level." -msgstr "Надіслати запити щодо поточного рівня домену." - -msgid "Current domain level:" -msgstr "Поточний рівень домену:" - -msgid "Change current Domain Level." -msgstr "Змінити поточний рівень домену." - -msgid "Domain Level" -msgstr "Рівень домену" - -msgid "" -"\n" -"Permissions\n" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable wrapper around a 389-ds Access Control Rule,\n" -"or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -"\n" -"A permission may not contain other permissions.\n" -"\n" -"* A permission grants access to read, write, add, delete, read, search,\n" -" or compare.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -"\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. search - search on one or more attributes\n" -"4. compare - compare one or more attributes\n" -"5. add - add a new entry to the tree\n" -"6. delete - delete an existing entry\n" -"7. all - all permissions are granted\n" -"\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. subtree: a DN; the permission applies to the subtree under this DN\n" -"2. target filter: an LDAP filter\n" -"3. target: DN with possible wildcards, specifies entries permission applies " -"to\n" -"\n" -"Additionally, there are the following convenience options.\n" -"Setting one of these options will set the corresponding attribute(s).\n" -"1. type: a type of object (user, group, etc); sets subtree and target " -"filter.\n" -"2. memberof: apply to members of a group; sets target filter\n" -"3. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership); sets target.\n" -"\n" -"Managed permissions\n" -"\n" -"Permissions that come with IPA by default can be so-called \"managed\"\n" -"permissions. These have a default set of attributes they apply to,\n" -"but the administrator can add/remove individual attributes to/from the set.\n" -"\n" -"Deleting or renaming a managed permission, as well as changing its target,\n" -"is not allowed.\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. search - пошук одного або декількох атрибутів\n" -"4. compare - порівняння одного або декількох атрибутів\n" -"5. add - додавання нового запису до ієрархії\n" -"6. delete - вилучення наявного запису\n" -"7. all - надати усі права доступу\n" -"\n" -"Зауважте відмінність між атрибутами і записами. Права доступу є " -"незалежними,\n" -"отже можливість додавання запису користувача не означає, що цей запис " -"згодом\n" -"буде придатним до редагування.\n" -"\n" -"Передбачено декілька можливих призначень:\n" -"1. subtree: DN; право доступу застосовується до піддерева DN\n" -"2. target filter: фільтр LDAP\n" -"3. target: DN з можливими символами-замінниками, що визначає записи, яких " -"стосуються права доступу\n" -"\n" -"Крім того, передбачено вказані нижче параметри.\n" -"Встановлення одного з цих параметрів призводить до встановлення відповідних " -"атрибутів.\n" -"1. type: тип об’єкта (користувач, група тощо); встановлює фільтрування за " -"піддеревом (subtree) та фільтрування за призначенням (target filter).\n" -"2. memberof: застосовувати до учасників групи; встановлює фільтр за " -"призначенням (target filter).\n" -"3. targetgroup: надає доступ до внесення змін до певної групи (зокрема, " -"доступ до\n" -" надання можливості керування участю у групі); встановлює призначення " -"(target).\n" -"\n" -"Керовані права доступу\n" -"\n" -"Права доступу, які типово встановлюються разом з IPA, можуть бути\n" -"так званими «керованим» правами доступу. Такі права доступу мають\n" -"типовий набір атрибутів, до яких вони застосовуються. Втім, адміністратор\n" -"може додавати або вилучати окремі атрибути набору.\n" -"\n" -"Вилучення або перейменування керованих прав доступу, а також зміну " -"призначення\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" - -msgid "Granted rights" -msgstr "Надані права" - -msgid "Rights to grant (read, search, compare, write, add, delete, all)" -msgstr "" -"Права доступу, які слід надати (read, search, compare, write, add, delete, " -"all)" - -msgid "Effective attributes" -msgstr "Ефективні атрибути" - -msgid "All attributes to which the permission applies" -msgstr "Усі атрибути, яких стосуються ці права доступу" - -msgid "Included attributes" -msgstr "Атрибути включення" - -msgid "User-specified attributes to which the permission applies" -msgstr "Вказані користувачем атрибути, до яких застосовується правило доступу" - -msgid "Excluded attributes" -msgstr "Атрибути виключення" - -msgid "" -"User-specified attributes to which the permission explicitly does not apply" -msgstr "" -"Вказані користувачем атрибути, до яких права доступу явним чином не " -"застосовуватимуться" - -msgid "Default attributes" -msgstr "Типові атрибути" - -msgid "Attributes to which the permission applies by default" -msgstr "Атрибути, до яких типово застосовується правило доступу" - -msgid "Bind rule type" -msgstr "Тип правила прив’язування" - -msgid "Extra target filter" -msgstr "Додатковий фільтр призначення" - -msgid "Raw target filter" -msgstr "Фільтр призначення без обробки" - -msgid "All target filters, including those implied by type and memberof" -msgstr "" -"Усі фільтри призначення, зокрема ті, які визначаються типом та членством" - -msgid "Target DN" -msgstr "DN призначення" - -msgid "" -"Optional DN to apply the permission to (must be in the subtree, but may not " -"yet exist)" -msgstr "" -"Необов’язковий DN, до якого застосовуватимуться дозвіл (має належати до " -"піддерева, але може ще не існувати)" - -msgid "Target DN subtree" -msgstr "Піддерево DN призначення" - -msgid "" -"Optional DN subtree where an entry can be moved to (must be in the subtree, " -"but may not yet exist)" -msgstr "" -"Необов’язкове піддерево DN, куди має бути пересунуто запис (має належати до " -"піддерева, але може ще не існувати)" - -msgid "Origin DN subtree" -msgstr "Піддерево DN походження" - -msgid "" -"Optional DN subtree from where an entry can be moved (must be in the " -"subtree, but may not yet exist)" -msgstr "" -"Необов’язкове піддерево DN, звідки має бути пересунуто запис (має належати " -"до піддерева, але може ще не існувати)" - -msgid "Target members of a group (sets memberOf targetfilter)" -msgstr "Цільові учасники групи (встановлює фільтр призначення memberOf)" - -msgid "User group to apply permissions to (sets target)" -msgstr "" -"Група користувачів, до якої буде застосовано права доступу (встановлює " -"target)" - -msgid "Type of IPA object (sets subtree and objectClass targetfilter)" -msgstr "Тип об’єкта IPA (встановлює фільтри призначення subtree і objectClass)" - -msgid "Deprecated; use extratargetfilter" -msgstr "Вважається застарілою; скористайтеся extratargetfilter" - -msgid "Deprecated; use ipapermlocation" -msgstr "Вважається застарілою; скористайтеся ipapermlocation" - -msgid "Deprecated; use ipapermright" -msgstr "Вважається застарілою; скористайтеся ipapermright" - -msgid "privileges to add" -msgstr "привілеї для додавання" - -msgid "Add a system permission without an ACI (internal command)" -msgstr "Додати системні права доступу без ACI (внутрішня команда)" - -msgid "Permission flags" -msgstr "Прапорці прав доступу" - -msgid "privileges to remove" -msgstr "привілеї для вилучення" - -msgid "" -"\n" -"Ping the remote IPA server to ensure it is running.\n" -"\n" -"The ping command sends an echo request to an IPA server. The server\n" -"returns its version information. This is used by an IPA client\n" -"to confirm that the server is available and accepting requests.\n" -"\n" -"The server from xmlrpc_uri in /etc/ipa/default.conf is contacted first.\n" -"If it does not respond then the client will contact any servers defined\n" -"by ldap SRV records in DNS.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Ping an IPA server:\n" -" ipa ping\n" -" ------------------------------------------\n" -" IPA server version 2.1.9. API version 2.20\n" -" ------------------------------------------\n" -"\n" -" Ping an IPA server verbosely:\n" -" ipa -v ping\n" -" ipa: INFO: trying https://ipa.example.com/ipa/xml\n" -" ipa: INFO: Forwarding 'ping' to server 'https://ipa.example.com/ipa/xml'\n" -" -----------------------------------------------------\n" -" IPA server version 2.1.9. API version 2.20\n" -" -----------------------------------------------------\n" -msgstr "" -"\n" -"Перевірка віддаленого сервера IPA з метою переконатися, що він є " -"працездатним.\n" -"\n" -"Програма ping надсилає луна-запит до сервера IPA. Сервер повертає\n" -"дані щодо його версії. Ці дані використовуються клієнтом IPA\n" -"для підтвердження, що сервер є доступним і що він приймає запити.\n" -"\n" -"Сервер з xmlrpc_uri у /etc/ipa/default.conf перевіряється першим.\n" -"Якщо він не відповідає, клієнт намагається встановити зв’язок з\n" -"будь-яким сервером, визначеним записами SRV ldap у DNS.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Перевірити луна-імпульсом сервер IPA:\n" -" ipa ping\n" -" ------------------------------------------\n" -" Сервер IPA версії 2.1.9. Версія API 2.20\n" -" ------------------------------------------\n" -"\n" -" Перевірити луна-імпульсом сервер IPA і отримати докладні дані:\n" -" ipa -v ping\n" -" ipa: INFO: trying https://ipa.example.com/ipa/xml\n" -" ipa: INFO: Forwarding 'ping' to server 'https://ipa.example.com/ipa/xml'\n" -" -----------------------------------------------------\n" -" Сервер IPA версії 2.1.9. Версія API 2.20\n" -" -----------------------------------------------------\n" - -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 (using Bash\n" -" brace expansion):\n" -" ipa selfservice-add --permissions=write --attrs={street,postalCode,l,c," -"st} \"Users manage their own address\"\n" -"\n" -" When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones.\n" -" Add telephoneNumber to the list (using Bash brace expansion):\n" -" ipa selfservice-mod --attrs={street,postalCode,l,c,st,telephoneNumber} " -"\"Users manage their own address\"\n" -"\n" -" Display our updated rule:\n" -" 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" -"\n" -" Додавання правила самообслуговування для уможливлення керування " -"користувачами\n" -" власною адресою (з використанням виразу Bash у фігурних дужках):\n" -" ipa selfservice-add --permissions=write --attrs={street,postalCode,l,c," -"st} \"Users manage their own address\"\n" -"\n" -" Якщо ви керуєте списком атрибутів, вам слід включити до списку всі " -"атрибути,\n" -" зокрема вже створені. Додавання telephoneNumber до списку (з використанням " -"виразу Bash у фігурних дужках):\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" - -msgid "Permissions to grant (read, write). Default is write." -msgstr "" -"Права доступу, які слід надати (read, write). Типовими є права доступу write." - -msgid "Attributes to which the permission applies." -msgstr "Атрибути, до яких застосовується правило доступу." - -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" -"RE-ENROLLMENT:\n" -"\n" -"Host that has been enrolled at some point, and lost its configuration (e.g. " -"VM\n" -"destroyed) can be re-enrolled.\n" -"\n" -"For more information, consult the manual pages for ipa-client-install.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -"\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" -" Remove SSH public keys of a host and update DNS to reflect this change:\n" -" ipa host-mod --sshpubkey= --updatedns 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" -"\n" -" Allow user to create a keytab:\n" -" ipa host-allow-create-keytab test2 --users=tuser1\n" -msgstr "" -"\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" -" Host Enrollment.\n" -"3. Вузол було створено з одноразовим паролем.\n" -"\n" -"ПОВТОРНА РЕЄСТРАЦІЯ:\n" -"\n" -"Вузол, якому вже колись було надано певну роль, але налаштування було " -"втрачено\n" -"(наприклад через знищення віртуальної машини), можна знову зареєструвати " -"(надати роль).\n" -"\n" -"Щоб дізнатися більше, зверніться до сторінок підручника (man) щодо ipa-" -"client-install.\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" -" Вилучити відкриті ключі SSH вузла і оновити DNS відповідно до внесених " -"змін:\n" -" ipa host-mod --sshpubkey= --updatedns test.example.com\n" -"\n" -"Вимкнути ключ Kerberos вузла, сертифікат SSL та усі його служби:\n" -" ipa host-disable test.example.com\n" -"\n" -"Додати вузол, який може керувати сховищем ключів та сертифікатом цього " -"вузла :\n" -" ipa host-add-managedby --hosts=test2 test\n" -"\n" -" Дозволити користувачеві створення таблиці ключів:\n" -" ipa host-allow-create-keytab test2 --users=tuser1\n" - -msgid "" -"Host category (semantics placed on this attribute are for local " -"interpretation)" -msgstr "" -"Категорія вузлів (семантика розташування цього атрибуту призначена для " -"локальної обробки)" - -msgid "Assigned ID View" -msgstr "Перегляд призначених ідентифікаторів" - -msgid "Add certificates to host entry" -msgstr "Додати сертифікати до запису вузла" - -msgid "" -"Allow users, groups, hosts or host groups to create a keytab of this host." -msgstr "" -"Дозволити користувачам, групам, вузлам і групам вузлів створювати таблицю " -"ключів цього вузла." - -msgid "" -"Allow users, groups, hosts or host groups to retrieve a keytab of this host." -msgstr "" -"Дозволити користувачам, групам, вузлам і групам вузлів отримувати таблицю " -"ключів цього вузла." - -msgid "" -"Disallow users, groups, hosts or host groups to create a keytab of this host." -msgstr "" -"Заборонити користувачам, групам, вузлам і групам вузлів створювати таблицю " -"ключів цього вузла." - -msgid "" -"Disallow users, groups, hosts or host groups to retrieve a keytab of this " -"host." -msgstr "" -"Заборонити користувачам, групам, вузлам і групам вузлів отримувати таблицю " -"ключів цього вузла." - -msgid "Remove certificates from host entry" -msgstr "Вилучити сертифікати із запису вузла" - -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 --hbacsvcs=login login\n" -"\n" -" Display information about a named group:\n" -" ipa hbacsvcgroup-show 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 --hbacsvcs=login login\n" -"\n" -" Показ даних щодо вказаної групи:\n" -" ipa hbacsvcgroup-show login\n" -"\n" -" Вилучення групи служб HBAC:\n" -" ipa hbacsvcgroup-del login\n" - -msgid "HBAC services to add" -msgstr "служби HBAC для додавання" - -msgid "HBAC services to remove" -msgstr "служби HBAC для вилучення" - -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 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 admins 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 --attrs=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 --" -"attrs=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" -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 --attrs=postalcode --prefix=none \"Адміністратори редагують " -"адреси редакторів\"\n" -"\n" -" Додавання ACI, яке надасть доступ групі \"admins\" до зміни поштової адреси " -"та індексу всіх, хто працює начальником:\n" -" ipa aci-add --permissions=write --group=admins --attrs=street --" -"attrs=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" - -msgid "Permissions to grant(read, write, add, delete, all)" -msgstr "Права доступу, які слід надати (read, write, add, delete, all)" - -msgid "Attributes to which the permission applies" -msgstr "Атрибути, до яких застосовується правило доступу" - -msgid "Location of the ACI" -msgstr "Розташування ACI" - -msgid "Objectclasses used to search for user entries in DS" -msgstr "Класи об’єктів, використаних для пошуку записів користувачів у DS" - -msgid "Objectclasses used to search for group entries in DS" -msgstr "Класи об’єктів, використаних для пошуку записів груп у DS" - -msgid "Objectclasses to be ignored for user entries in DS" -msgstr "Класи об’єктів, які буде проігноровано для записів користувачів у DS" - -msgid "Attributes to be ignored for user entries in DS" -msgstr "Атрибути, які буде проігноровано для записів користувачів у DS" - -msgid "Objectclasses to be ignored for group entries in DS" -msgstr "Класи об’єктів, які буде проігноровано для записів груп у DS" - -msgid "Attributes to be ignored for group entries in DS" -msgstr "Атрибути, які буде проігноровано для записів груп у DS" - -msgid "CA certificate" -msgstr "Сертифікат CA" - -msgid "Load CA certificate of LDAP server from FILE" -msgstr "Завантажити сертифікат CA сервера LDAP з вказаного файла" - -msgid "Add to default group" -msgstr "Додати до типової групи" - -msgid "Add migrated users without a group to a default group (default: true)" -msgstr "" -"Додавати перенесені записи користувачів без групи до типової групи (типове " -"значення: true)" - -msgid "Search scope" -msgstr "Область пошуку" - -msgid "" -"LDAP search scope for users and groups: base, onelevel, or subtree. Defaults " -"to onelevel" -msgstr "" -"Область пошуку LDAP для користувачів і груп: base, onelevel або subtree. " -"Типове значення: onelevel" - -msgid "groups to exclude from migration" -msgstr "групи, які слід виключити з перенесення" - -msgid "users to exclude from migration" -msgstr "записи користувачів, які слід виключити з перенесення" - -msgid "" -"\n" -"Vaults\n" -"\n" -"Manage vaults.\n" -"\n" -"Vault is a secure place to store a secret.\n" -"\n" -"Based on the ownership there are three vault categories:\n" -"* user/private vault\n" -"* service vault\n" -"* shared vault\n" -"\n" -"User vaults are vaults owned used by a particular user. Private\n" -"vaults are vaults owned the current user. Service vaults are\n" -"vaults owned by a service. Shared vaults are owned by the admin\n" -"but they can be used by other users or services.\n" -"\n" -"Based on the security mechanism there are three types of\n" -"vaults:\n" -"* standard vault\n" -"* symmetric vault\n" -"* asymmetric vault\n" -"\n" -"Standard vault uses a secure mechanism to transport and\n" -"store the secret. The secret can only be retrieved by users\n" -"that have access to the vault.\n" -"\n" -"Symmetric vault is similar to the standard vault, but it\n" -"pre-encrypts the secret using a password before transport.\n" -"The secret can only be retrieved using the same password.\n" -"\n" -"Asymmetric vault is similar to the standard vault, but it\n" -"pre-encrypts the secret using a public key before transport.\n" -"The secret can only be retrieved using the private key.\n" -"\n" -"EXAMPLES:\n" -"\n" -" List vaults:\n" -" ipa vault-find\n" -" [--user |--service |--shared]\n" -"\n" -" Add a standard vault:\n" -" ipa vault-add \n" -" [--user |--service |--shared]\n" -" --type standard\n" -"\n" -" Add a symmetric vault:\n" -" ipa vault-add \n" -" [--user |--service |--shared]\n" -" --type symmetric --password-file password.txt\n" -"\n" -" Add an asymmetric vault:\n" -" ipa vault-add \n" -" [--user |--service |--shared]\n" -" --type asymmetric --public-key-file public.pem\n" -"\n" -" Show a vault:\n" -" ipa vault-show \n" -" [--user |--service |--shared]\n" -"\n" -" Modify vault description:\n" -" ipa vault-mod \n" -" [--user |--service |--shared]\n" -" --desc \n" -"\n" -" Modify vault type:\n" -" ipa vault-mod \n" -" [--user |--service |--shared]\n" -" --type \n" -" [old password/private key]\n" -" [new password/public key]\n" -"\n" -" Modify symmetric vault password:\n" -" ipa vault-mod \n" -" [--user |--service |--shared]\n" -" --change-password\n" -" ipa vault-mod \n" -" [--user |--service |--shared]\n" -" --old-password \n" -" --new-password \n" -" ipa vault-mod \n" -" [--user |--service |--shared]\n" -" --old-password-file \n" -" --new-password-file \n" -"\n" -" Modify asymmetric vault keys:\n" -" ipa vault-mod \n" -" [--user |--service |--shared]\n" -" --private-key-file \n" -" --public-key-file \n" -"\n" -" Delete a vault:\n" -" ipa vault-del \n" -" [--user |--service |--shared]\n" -"\n" -" Display vault configuration:\n" -" ipa vaultconfig-show\n" -"\n" -" Archive data into standard vault:\n" -" ipa vault-archive \n" -" [--user |--service |--shared]\n" -" --in \n" -"\n" -" Archive data into symmetric vault:\n" -" ipa vault-archive \n" -" [--user |--service |--shared]\n" -" --in \n" -" --password-file password.txt\n" -"\n" -" Archive data into asymmetric vault:\n" -" ipa vault-archive \n" -" [--user |--service |--shared]\n" -" --in \n" -"\n" -" Retrieve data from standard vault:\n" -" ipa vault-retrieve \n" -" [--user |--service |--shared]\n" -" --out \n" -"\n" -" Retrieve data from symmetric vault:\n" -" ipa vault-retrieve \n" -" [--user |--service |--shared]\n" -" --out \n" -" --password-file password.txt\n" -"\n" -" Retrieve data from asymmetric vault:\n" -" ipa vault-retrieve \n" -" [--user |--service |--shared]\n" -" --out --private-key-file private.pem\n" -"\n" -" Add vault owners:\n" -" ipa vault-add-owner \n" -" [--user |--service |--shared]\n" -" [--users ] [--groups ] [--services ]\n" -"\n" -" Delete vault owners:\n" -" ipa vault-remove-owner \n" -" [--user |--service |--shared]\n" -" [--users ] [--groups ] [--services ]\n" -"\n" -" Add vault members:\n" -" ipa vault-add-member \n" -" [--user |--service |--shared]\n" -" [--users ] [--groups ] [--services ]\n" -"\n" -" Delete vault members:\n" -" ipa vault-remove-member \n" -" [--user |--service |--shared]\n" -" [--users ] [--groups ] [--services ]\n" -msgstr "" -"\n" -"Сховища\n" -"\n" -"Керування сховищами.\n" -"\n" -"Сховище — безпечне місце для зберігання ключів і паролів.\n" -"\n" -"За правами власності сховища поділяються на три категорії:\n" -"* приватні сховища користувачів\n" -"* сховища служб\n" -"* сховища спільного використання\n" -"\n" -"Сховища користувачів — це сховища, власником яких є конкретний\n" -"користувач. Приватними є сховища, власником яких є поточний\n" -"користувач. Власником сховища служби є певна служба. Сховища\n" -"спільного використання належать адміністратору, але можуть\n" -"використовуватися іншими користувачами або службами.\n" -"\n" -"За механізмами захисту сховища поділяються на три\n" -"типи:\n" -"* стандартні сховища\n" -"* симетричні сховища\n" -"* асиметричні сховища\n" -"\n" -"У стандартному сховищі для передавання і зберігання реєстраційних\n" -"даних використовуються безпечні механізми. Реєстраційні дані\n" -"може бути отримано лише користувачами, які мають доступ\n" -"до сховища.\n" -"\n" -"Симетричне сховище є подібним до стандартного сховища, але\n" -"у ньому реєстраційні дані попередньо шифруються до\n" -"передавання за допомогою пароля.\n" -"Реєстраційні дані можна отримати лише за допомогою цього пароля.\n" -"\n" -"Асиметричне сховище є подібним до стандартного сховища, але\n" -"у ньому реєстраційні дані попередньо шифруються до\n" -"передавання за допомогою відкритого ключа.\n" -"Реєстраційні дані можна отримати лише за допомогою закритого ключа.\n" -"\n" -" Вивести список сховищ:\n" -" ipa vault-find\n" -" [--user <користувач>|--service <служба>|--shared]\n" -"\n" -" Додати стандартне сховище:\n" -" ipa vault-add <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -" --type standard\n" -"\n" -" Додати симетричне сховище:\n" -" ipa vault-add <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -" --type symmetric --password-file пароль.txt\n" -"\n" -" Додати асиметричне сховище:\n" -" ipa vault-add <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -" --type asymmetric --public-key-file відкритий_ключ.pem\n" -"\n" -" Показати сховище:\n" -" ipa vault-show <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -"\n" -" Змінити опис сховища:\n" -" ipa vault-mod <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -" --desc <опис>\n" -"\n" -" Змінити тип сховища:\n" -" ipa vault-mod <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -" --type <тип>\n" -" [старий пароль/закритий ключ]\n" -" [новий пароль/відкритий ключ]\n" -"\n" -" Змінити пароль до симетричного сховища:\n" -" ipa vault-mod <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -" --change-password\n" -" ipa vault-mod <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -" --old-password <старий пароль>\n" -" --new-password <новий пароль>\n" -" ipa vault-mod <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -" --old-password-file <файл старого пароля>\n" -" --new-password-file <файл нового пароля>\n" -"\n" -" Змінити ключ асиметричного сховища:\n" -" ipa vault-mod <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -" --private-key-file <файл старого закритого ключа>\n" -" --public-key-file <файл нового відкритого ключа>\n" -"\n" -" Вилучити сховище:\n" -" ipa vault-del <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -"\n" -" Вивести налаштування сховищ:\n" -" ipa vaultconfig-show\n" -"\n" -" Архівувати дані до стандартного сховища:\n" -" ipa vault-archive \n" -" [--user <користувач>|--service <служба>|--shared]\n" -" --in <файл вхідних даних>\n" -"\n" -" Архівувати дані до симетричного сховища:\n" -" ipa vault-archive \n" -" [--user <користувач>|--service <служба>|--shared]\n" -" --in <файл вхідних даних>\n" -" --password-file пароль.txt\n" -"\n" -" Архівувати дані до асиметричного сховища:\n" -" ipa vault-archive \n" -" [--user <користувач>|--service <служба>|--shared]\n" -" --in <файл вхідних даних>\n" -"\n" -" Отримати дані зі стандартного сховища:\n" -" ipa vault-retrieve <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -" --out <файл результатів>\n" -"\n" -" Отримати дані з симетричного сховища:\n" -" ipa vault-retrieve <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -" --out <файл результатів>\n" -" --password-file password.txt\n" -"\n" -" Отримати дані з асиметричного сховища:\n" -" ipa vault-retrieve <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -" --out <файл результатів> --private-key-file private.pem\n" -"\n" -" Додати записи власників сховища:\n" -" ipa vault-add-owner <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -" [--users <користувачі>] [--groups <групи>] [--services <служби>]\n" -"\n" -" Вилучити записи учасників сховища:\n" -" ipa vault-remove-owner <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -" [--users <користувачі>] [--groups <групи>] [--services <служби>]\n" -"\n" -" Додати записи учасників сховища:\n" -" ipa vault-add-member <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -" [--users <користувачі>] [--groups <групи>] [--services <служби>]\n" -"\n" -" Вилучити записи учасників сховища:\n" -" ipa vault-remove-member <назва>\n" -" [--user <користувач>|--service <служба>|--shared]\n" -" [--users <користувачі>] [--groups <групи>] [--services <служби>]\n" - -msgid "Vault name" -msgstr "Назва сховища" - -msgid "Vault description" -msgstr "Опис сховища" - -msgid "Vault type" -msgstr "Тип сховища" - -msgid "Salt" -msgstr "Сіль" - -msgid "Vault salt" -msgstr "«Сіль» сховища" - -msgid "Public key" -msgstr "Відкритий ключ" - -msgid "Vault public key" -msgstr "Відкритий ключ сховища" - -msgid "Owner users" -msgstr "Користувачі власника" - -msgid "Owner groups" -msgstr "Групи власника" - -msgid "Owner services" -msgstr "Служби власника" - -msgid "Failed owners" -msgstr "Записи власників із помилками" - -msgid "Vault service" -msgstr "Служба сховища" - -msgid "Shared vault" -msgstr "Сховище спільного використання" - -msgid "Vault user" -msgstr "Користувач сховища" - -msgid "Member services" -msgstr "Служби учасника" - -msgid "Transport Certificate" -msgstr "Сертифікат передавання" - -msgid "Service name of the service vault" -msgstr "Назва служби сховища служби" - -msgid "Username of the user vault" -msgstr "Ім’я користувача сховища користувача" - -msgid "Add members to a vault." -msgstr "Додати записи учасників сховища." - -msgid "member service" -msgstr "учасник служба" - -msgid "services to add" -msgstr "служби для додавання" - -msgid "Add owners to a vault." -msgstr "Додати записи власників до сховища." - -msgid "owner user" -msgstr "користувач-власник" - -msgid "owner group" -msgstr "група-власник" - -msgid "owner service" -msgstr "служба-власник" - -msgid "Owners that could not be added" -msgstr "Власники, записи яких не вдалося додати" - -msgid "Number of owners added" -msgstr "Кількість доданих записів власників" - -msgid "Session key wrapped with transport certificate" -msgstr "Ключ сеансу, пов’язаний із сертифікатом передавання" - -msgid "Vault data encrypted with session key" -msgstr "Дані сховища зашифровано за допомогою ключа сеансу" - -msgid "Nonce" -msgstr "Цей випадок" - -msgid "Delete a vault." -msgstr "Вилучити сховище." - -msgid "Search for vaults." -msgstr "Шукати сховища." - -msgid "List all service vaults" -msgstr "Список усіх сховищ служб" - -msgid "List all user vaults" -msgstr "Список усіх сховищ користувачів" - -msgid "Remove members from a vault." -msgstr "Вилучити записи учасників сховища." - -msgid "services to remove" -msgstr "служби для вилучення" - -msgid "Remove owners from a vault." -msgstr "Вилучити записи власників сховища." - -msgid "Owners that could not be removed" -msgstr "Власники, записи яких не вдалося вилучити" - -msgid "Number of owners removed" -msgstr "Кількість вилучених записів власників" - -msgid "Display information about a vault." -msgstr "Показати дані щодо сховища." - -msgid "Show vault configuration." -msgstr "Показати налаштування сховища." - -msgid "Output file to store the transport certificate" -msgstr "Файл для зберігання сертифіката передавання даних" - -msgid "Add owners to a vault container." -msgstr "Додати записи власників до контейнера сховища." - -msgid "Delete a vault container." -msgstr "Вилучити контейнер сховищ." - -msgid "Remove owners from a vault container." -msgstr "Вилучити записи власників із контейнера сховища." - -msgid "Display information about a vault container." -msgstr "Показати дані щодо контейнера сховищ." - -msgid "" -"\n" -"Auto Membership Rule.\n" -"\n" -"Bring clarity to the membership of hosts and users by configuring inclusive\n" -"or exclusive regex patterns, you can automatically assign a new entries " -"into\n" -"a group or hostgroup based upon attribute information.\n" -"\n" -"A rule is directly associated with a group by name, so you cannot create\n" -"a rule without an accompanying group or hostgroup.\n" -"\n" -"A condition is a regular expression used by 389-ds to match a new incoming\n" -"entry with an automember rule. If it matches an inclusive rule then the\n" -"entry is added to the appropriate group or hostgroup.\n" -"\n" -"A default group or hostgroup could be specified for entries that do not\n" -"match any rule. In case of user entries this group will be a fallback group\n" -"because all users are by default members of group specified in IPA config.\n" -"\n" -"The automember-rebuild command can be used to retroactively run automember " -"rules\n" -"against existing entries, thus rebuilding their membership.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add the initial group or hostgroup:\n" -" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" -" ipa group-add --desc=\"Developers\" devel\n" -"\n" -" Add the initial rule:\n" -" ipa automember-add --type=hostgroup webservers\n" -" ipa automember-add --type=group devel\n" -"\n" -" Add a condition to the rule:\n" -" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-" -"regex=^web[1-9]+\\.example\\.com webservers\n" -" ipa automember-add-condition --key=manager --type=group --inclusive-" -"regex=^uid=mscott devel\n" -"\n" -" Add an exclusive condition to the rule to prevent auto assignment:\n" -" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-" -"regex=^web5\\.example\\.com webservers\n" -"\n" -" Add a host:\n" -" ipa host-add web1.example.com\n" -"\n" -" Add a user:\n" -" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" -"\n" -" Verify automembership:\n" -" ipa hostgroup-show webservers\n" -" Host-group: webservers\n" -" Description: Web Servers\n" -" Member hosts: web1.example.com\n" -"\n" -" ipa group-show devel\n" -" Group name: devel\n" -" Description: Developers\n" -" GID: 1004200000\n" -" Member users: tuser\n" -"\n" -" Remove a condition from the rule:\n" -" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-" -"regex=^web[1-9]+\\.example\\.com webservers\n" -"\n" -" Modify the automember rule:\n" -" ipa automember-mod\n" -"\n" -" Set the default (fallback) target group:\n" -" ipa automember-default-group-set --default-group=webservers --" -"type=hostgroup\n" -" ipa automember-default-group-set --default-group=ipausers --type=group\n" -"\n" -" Remove the default (fallback) target group:\n" -" ipa automember-default-group-remove --type=hostgroup\n" -" ipa automember-default-group-remove --type=group\n" -"\n" -" Show the default (fallback) target group:\n" -" ipa automember-default-group-show --type=hostgroup\n" -" ipa automember-default-group-show --type=group\n" -"\n" -" Find all of the automember rules:\n" -" ipa automember-find\n" -"\n" -" Display a automember rule:\n" -" ipa automember-show --type=hostgroup webservers\n" -" ipa automember-show --type=group devel\n" -"\n" -" Delete an automember rule:\n" -" ipa automember-del --type=hostgroup webservers\n" -" ipa automember-del --type=group devel\n" -"\n" -" Rebuild membership for all users:\n" -" ipa automember-rebuild --type=group\n" -"\n" -" Rebuild membership for all hosts:\n" -" ipa automember-rebuild --type=hostgroup\n" -"\n" -" Rebuild membership for specified users:\n" -" ipa automember-rebuild --users=tuser1 --users=tuser2\n" -"\n" -" Rebuild membership for specified hosts:\n" -" ipa automember-rebuild --hosts=web1.example.com --hosts=web2.example." -"com\n" -msgstr "" -"\n" -"Правило автоматичної участі.\n" -"\n" -"Внесіть ясність у правила участі вузлів та користувачів налаштовуванням\n" -"формальних виразів шаблонів включення або виключення. Ви можете автоматично\n" -"пов’язувати нові записи з групою або групою вузлів на основі даних щодо " -"атрибутів.\n" -"\n" -"Правило безпосередньо пов’язується з групою за назвою, отже ви не можете\n" -"створити правило без визначення групи або групи вузлів.\n" -"\n" -"Умова є формальним виразом, використовується 389-ds для встановлення\n" -"відповідності нового вхідного запису з правилом автоматичної участі.\n" -"Якщо умові відповідає правило включення, запис додається до відповідної\n" -"групи або групи вузлів.\n" -"\n" -"Можна визначити типову групу або групу вузлів, яку буде використано для\n" -"записів, які не відповідають жодному правилу. У випадку записів " -"користувачів\n" -"ця група буде резервною групою, оскільки усіх користувачі типово є " -"учасниками\n" -"групи, вказаної у налаштуваннях IPA.\n" -"\n" -"За допомогою програми automember-rebuild ви можете повторно застосувати " -"правила\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" -" 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" -" Група вузлів: webservers\n" -" Опис: Web Servers\n" -" Вузли-учасники: web1.example.com\n" -"\n" -" ipa group-show devel\n" -" Назва групи: devel\n" -" Опис: Developers\n" -" GID: 1004200000\n" -" Користувачі-учасники: 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" -"\n" -" Перебудувати записи участі для усіх користувачів:\n" -" ipa automember-rebuild --type=group\n" -"\n" -" Перебудувати записи участі для усіх вузлів:\n" -" ipa automember-rebuild --type=hostgroup\n" -"\n" -" Перебудувати записи участі для вказаних користувачів:\n" -" ipa automember-rebuild --users=tuser1 --users=tuser2\n" -"\n" -" Перебудувати записи участі для вказаних вузлів:\n" -" ipa automember-rebuild --hosts=web1.example.com --hosts=web2.example." -"com\n" - -msgid "Rebuild auto membership." -msgstr "Повторне збирання правил автоматичної участі." - -msgid "Rebuild membership for all members of a grouping" -msgstr "Повторне збирання правил участі для усіх учасників угрупування" - -msgid "Rebuild membership for specified users" -msgstr "Повторне збирання правил участі для вказаних користувачів" - -msgid "Rebuild membership for specified hosts" -msgstr "Повторне збирання правил участі для вказаних вузлів" - -msgid "No wait" -msgstr "Не чекати" - -msgid "Don't wait for rebuilding membership" -msgstr "Не чекати на завершення перебудови записів участі" - -msgid "" -"\n" -"Topology\n" -"\n" -"Management of a replication topology.\n" -"\n" -"Requires minimum domain level 1.\n" -msgstr "" -"\n" -"Топологія\n" -"\n" -"Керування топологією реплікації.\n" -"\n" -"Потребує мінімального рівня домену 1.\n" - -msgid "Segment name" -msgstr "Назва сегмента" - -msgid "Arbitrary string identifying the segment" -msgstr "Довільний рядок для ідентифікації сегмента" - -msgid "Left node" -msgstr "Лівий вузол" - -msgid "Left replication node - an IPA server" -msgstr "Лівий вузол реплікації — сервер IPA" - -msgid "Right node" -msgstr "Правий вузол" - -msgid "Right replication node - an IPA server" -msgstr "Правий вузол реплікації — сервер IPA" - -msgid "Connectivity" -msgstr "Можливість з’єднання" - -msgid "Direction of replication between left and right replication node" -msgstr "Напрямок реплікації між лівим і правим вузлами реплікації" - -msgid "Attributes to strip" -msgstr "Атрибути, які слід прибрати" - -msgid "" -"A space separated list of attributes which are removed from replication " -"updates." -msgstr "" -"Розділений пробілами список атрибутів, які слід вилучати під час оновлено " -"реплікації." - -msgid "Attributes to replicate" -msgstr "Атрибути для реплікації" - -msgid "" -"Attributes that are not replicated to a consumer server during a fractional " -"update. E.g., `(objectclass=*) $ EXCLUDE accountlockout memberof" -msgstr "" -"Атрибути, для яких не відбуватиметься реплікація до сервера споживання під " -"час часткового оновлення. Наприклад, `(objectclass=*) $ EXCLUDE " -"accountlockout memberof" - -msgid "Attributes for total update" -msgstr "Атрибути для загального оновлення" - -msgid "" -"Attributes that are not replicated to a consumer server during a total " -"update. E.g. (objectclass=*) $ EXCLUDE accountlockout" -msgstr "" -"Атрибути, для яких не відбуватиметься реплікація до сервера споживання під " -"час загального оновлення. Наприклад, (objectclass=*) $ EXCLUDE accountlockout" - -msgid "Session timeout" -msgstr "Час очікування сеансу" - -msgid "" -"Number of seconds outbound LDAP operations waits for a response from the " -"remote replica before timing out and failing" -msgstr "" -"Кількість секунд, протягом яких відбуватиметься очікування зовнішнім LDAP на " -"відповідь під час дій від віддаленої репліки, перш ніж дію буде припинено " -"через перевищення часу очікування і буде видано повідомлення щодо помилки" - -msgid "Replication agreement enabled" -msgstr "Увімкнено угоду щодо реплікації" - -msgid "" -"Whether a replication agreement is active, meaning whether replication is " -"occurring per that agreement" -msgstr "" -"Визначає, чи є активною угода щодо реплікації, тобто, чи відбувається " -"реплікація за цією угодою" - -msgid "Suffix name" -msgstr "Назва суфікса" - -msgid "LDAP suffix to be managed" -msgstr "Суфікс LDAP, яким слід керувати" - -msgid "Add a new segment." -msgstr "Додати новий сегмент." - -msgid "Delete a segment." -msgstr "Вилучити сегмент." - -msgid "Search for topology segments." -msgstr "Шукати сегменти топології." - -msgid "Modify a segment." -msgstr "Змінити сегмент." - -msgid "" -"Request a full re-initialization of the node retrieving data from the other " -"node." -msgstr "" -"Надіслати запит щодо повної повторної ініціалізації вузла, щоб отримує дані " -"з іншого вузла." - -msgid "Initialize left node" -msgstr "Ініціалізувати лівий вузол" - -msgid "Initialize right node" -msgstr "Ініціалізувати правий вузол" - -msgid "Stop already started refresh of chosen node(s)" -msgstr "Зупинити вже почате оновлення вибраних вузлів" - -msgid "Display a segment." -msgstr "Показати сегмент." - -msgid "Add a new topology suffix to be managed." -msgstr "Додати новий суфікс топології для керування." - -msgid "Delete a topology suffix." -msgstr "Вилучити суфікс топології." - -msgid "Search for topology suffices." -msgstr "Шукати суфікси топології." - -msgid "Modify a topology suffix." -msgstr "Змінити суфікс топології." - -msgid "Show managed suffix." -msgstr "Показати керований суфікс." - -msgid "" -"\n" -"Verify replication topology for suffix.\n" -"\n" -"Checks done:\n" -" 1. check if a topology is not disconnected. In other words if there are\n" -" replication paths between all servers.\n" -" 2. check if servers don't have more than the recommended number of\n" -" replication agreements\n" -" " -msgstr "" -"\n" -"Перевірити топологію реплікації для суфікса.\n" -"\n" -"Перевірки, які виконуються:\n" -" 1. перевірка того, чи є топологія роз’єднаною. Іншими словами, того, чи\n" -" пов’язано усі сервери шляхами реплікації.\n" -" 2. перевірка того, чи не перевищено кількість рекомендованих угод з\n" -" реплікації між серверами.\n" -" " - -msgid "" -"\n" -"YubiKey Tokens\n" -"\n" -"Manage YubiKey tokens.\n" -"\n" -"This code is an extension to the otptoken plugin and provides support for\n" -"reading/writing YubiKey tokens directly.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new token:\n" -" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" -msgstr "" -"\n" -"Жетони YubiKey\n" -"\n" -"Керування жетонами YubiKey.\n" -"\n" -"Цей код є розширенням до додатка otptoken, він надає підтримку " -"безпосереднього\n" -"читання та запису жетонів YubiKey.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Додати новий жетон:\n" -" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" - -msgid "" -"\n" -"Manage CA ACL rules.\n" -"\n" -"This plugin is used to define rules governing which principals are\n" -"permitted to have certificates issued using a given certificate\n" -"profile.\n" -"\n" -"PROFILE ID SYNTAX:\n" -"\n" -"A Profile ID is a string without spaces or punctuation starting with a " -"letter\n" -"and followed by a sequence of letters, digits or underscore (\"_\").\n" -"\n" -"EXAMPLES:\n" -"\n" -" Create a CA ACL \"test\" that grants all users access to the\n" -" \"UserCert\" profile:\n" -" ipa caacl-add test --usercat=all\n" -" ipa caacl-add-profile test --certprofiles UserCert\n" -"\n" -" Display the properties of a named CA ACL:\n" -" ipa caacl-show test\n" -"\n" -" Create a CA ACL to let user \"alice\" use the \"DNP3\" profile:\n" -" ipa caacl-add-profile alice_dnp3 --certprofiles DNP3\n" -" ipa caacl-add-user alice_dnp3 --user=alice\n" -"\n" -" Disable a CA ACL:\n" -" ipa caacl-disable test\n" -"\n" -" Remove a CA ACL:\n" -" ipa caacl-del test\n" -msgstr "" -"\n" -"Керування правилами CA ACL.\n" -"\n" -"Цей додаток призначено для визначення правил, що керують тим,\n" -"які реєстраційні записи можуть мати сертифікати, випущені за\n" -"допомогою даного профілю сертифікатів.\n" -"\n" -"СИНТАКСИС ІДЕНТИФІКАТОРА ПРОФІЛЮ:\n" -"\n" -"Ідентифікатор профілю — рядок без пробілів і символів пунктуації,\n" -"що починається з літери і складається з послідовності літер, цифр, та " -"символів підкреслювання («_»).\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Створити CA ACL «test», який надає доступ усім користувачам до\n" -" профілю «UserCert»:\n" -" ipa caacl-add test --usercat=all\n" -" ipa caacl-add-profile test --certprofiles UserCert\n" -"\n" -" Показати усі властивості вказаного за назвою CA ACL:\n" -" ipa caacl-show test\n" -"\n" -" Створити CA ACL, який надає користувачеві «alice» право\n" -" використовувати профіль «DNP3»:\n" -" ipa caacl-add-profile alice_dnp3 --certprofiles DNP3\n" -" ipa caacl-add-user alice_dnp3 --user=alice\n" -"\n" -" Вимкнути певний CA ACL:\n" -" ipa caacl-disable test\n" -"\n" -" Вилучити певний CA ACL:\n" -" ipa caacl-del test\n" - -msgid "ACL name" -msgstr "Назва ACL" - -msgid "Profile category" -msgstr "Категорія профілів" - -msgid "Profile category the ACL applies to" -msgstr "Категорія профілів, до якої застосовується ACL" - -msgid "User category the ACL applies to" -msgstr "Категорія користувачів, до якої застосовується ACL" - -msgid "Host category the ACL applies to" -msgstr "Категорія вузлів, до якої застосовується ACL" - -msgid "Service category the ACL applies to" -msgstr "Категорія служб, до якої застосовується ACL" - -msgid "Profiles" -msgstr "Профілі" - -msgid "Create a new CA ACL." -msgstr "Створити запис CA ACL." - -msgid "Add target hosts and hostgroups to a CA ACL." -msgstr "Додати вузли і групи вузлів призначення до CA ACL." - -msgid "Add profiles to a CA ACL." -msgstr "Додати профілі до CA ACL." - -msgid "member Certificate Profile" -msgstr "учасник Профіль сертифікатів" - -msgid "Certificate Profiles to add" -msgstr "Профілі сертифікатів для додавання" - -msgid "Add services to a CA ACL." -msgstr "Додати служби до CA ACL." - -msgid "Add users and groups to a CA ACL." -msgstr "Додати користувачів і групи до CA ACL." - -msgid "Delete a CA ACL." -msgstr "Вилучити CA ACL." - -msgid "Disable a CA ACL." -msgstr "Вимкнути CA ACL." - -msgid "Enable a CA ACL." -msgstr "Увімкнути CA ACL." - -msgid "Search for CA ACLs." -msgstr "Шукати CA ACL." - -msgid "Modify a CA ACL." -msgstr "Змінити CA ACL." - -msgid "Remove target hosts and hostgroups from a CA ACL." -msgstr "Вилучити вузли призначення та групи вузлів з CA ACL." - -msgid "Remove profiles from a CA ACL." -msgstr "Вилучити профілі із CA ACL." - -msgid "Certificate Profiles to remove" -msgstr "Профілі сертифікатів для вилучення" - -msgid "Remove services from a CA ACL." -msgstr "Вилучити служби з CA ACL." - -msgid "Remove users and groups from a CA ACL." -msgstr "Вилучити користувачів або групи з CA ACL." - -msgid "Display the properties of a CA ACL." -msgstr "Показати властивості CA ACL." - -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 --group=managers --" -"membergroup=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 --attrs=postalCode --group=managers --" -"membergroup=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 --group=managers --" -"membergroup=employees \"managers edit employees' street\"\n" -"\n" -" Під час керування списком атрибутів слід включати всі атрибути списку\n" -" разом з вже створеними. Додавання до списку postalCode:\n" -" ipa delegation-mod --attrs=street --attrs=postalCode --group=managers --" -"membergroup=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" - -msgid "Attributes to which the delegation applies" -msgstr "Атрибути, до яких застосовується уповноваження" - -msgid "Kerberos principal expiration" -msgstr "Завершення строку дії реєстраційного запису Kerberos" - -msgid "User authentication types" -msgstr "Типи розпізнавання користувачів" - -msgid "Types of supported user authentication" -msgstr "Типи підтримуваного розпізнавання користувачів" - -msgid "" -"User category (semantics placed on this attribute are for local " -"interpretation)" -msgstr "" -"Категорія вузлів (семантику цього атрибуту призначено для локальної обробки)" - -msgid "RADIUS proxy configuration" -msgstr "Налаштування проксі RADIUS" - -msgid "RADIUS proxy username" -msgstr "Ім’я користувача проксі-сервера RADIUS" - -msgid "Department Number" -msgstr "Номер відділу" - -msgid "Employee Number" -msgstr "Номер працівника" - -msgid "Employee Type" -msgstr "Тип працівника" - -msgid "Preferred Language" -msgstr "Бажана мова" - -msgid "Preserved user" -msgstr "Зарезервований користувач" - -msgid "Add one or more certificates to the user entry" -msgstr "Додати один або декілька сертифікатів до запису користувача" - -msgid "Remove one or more certificates to the user entry" -msgstr "Вилучити один або декілька сертифікатів запису користувача" - -msgid "Move deleted user into staged area" -msgstr "Пересунути вилучений запис користувача до області етапу" - -msgid "Undelete a delete user account." -msgstr "Відновити вилучений обліковий запис користувача." - -msgid "" -"\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX. You can use the --posix argument with the group-mod command\n" -"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" -"\n" -"Every group must have a description.\n" -"\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not " -"necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" -"\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" -"\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" -"\n" -" Add multiple users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1 --users=test2 localadmins\n" -"\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" -"\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" -"\n" -"External group membership is designed to allow users from trusted domains\n" -"to be mapped to local POSIX groups in order to actually use IPA resources.\n" -"External members should be added to groups that specifically created as\n" -"external and non-POSIX. Such group later should be included into one of " -"POSIX\n" -"groups.\n" -"\n" -"An external group member is currently a Security Identifier (SID) as defined " -"by\n" -"the trusted domain. When adding external group members, it is possible to\n" -"specify them in either SID, or DOM\n" -"ame, or name@domain format. IPA will attempt\n" -"to resolve passed name to SID with the use of Global Catalog of the trusted " -"domain.\n" -"\n" -"Example:\n" -"\n" -"1. Create group for the trusted domain admins' mapping and their local POSIX " -"group:\n" -"\n" -" ipa group-add --desc=' admins external map' ad_admins_external " -"--external\n" -" ipa group-add --desc=' admins' ad_admins\n" -"\n" -"2. Add security identifier of Domain Admins of the to the " -"ad_admins_external\n" -" group:\n" -"\n" -" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n" -"\n" -"3. Allow members of ad_admins_external group to be associated with ad_admins " -"POSIX group:\n" -"\n" -" ipa group-add-member ad_admins --groups ad_admins_external\n" -"\n" -"4. List members of external members of ad_admins_external group to see their " -"SIDs:\n" -"\n" -" ipa group-show ad_admins_external\n" -msgstr "" -"\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 --users=test2 localadmins\n" -"\n" -" Вилучення користувача з групи \"localadmins\":\n" -" ipa group-remove-member --users=test2 localadmins\n" -"\n" -" Показати інформацію щодо іменованої групи.\n" -" ipa group-show localadmins\n" -"\n" -"Участь із зовнішніх груп створено для того, щоб уможливити прив’язку\n" -"користувачів з довірених доменів до локальних груп POSIX з метою\n" -"використання ресурсів IPA. Зовнішніх користувачів слід додавати до груп\n" -"які спеціально створено як зовнішні або групи не-POSIX. Таку групу\n" -"слід пізніше включити до одної з груп POSIX.\n" -"\n" -"У поточній версії учасник зовнішньої групи є ідентифікатором безпеки\n" -"(Security Identifier або SID) визначеним довіреним доменом. Додавання\n" -"учасників зовнішньої групи можна виконати у форматі SID, DOM\\ім’я або\n" -"ім’я@домен. IPA намагатиметься визначити за переданим іменем SID за\n" -"допомогою використання Загального каталогу довіреного домену.\n" -"\n" -"Приклад:\n" -"\n" -"1. Створити групу для прив’язки адміністраторів довіреного домену до\n" -"відповідної локальної групи POSIX:\n" -"\n" -" ipa group-add --desc='<домен.ad> admins external map' ad_admins_external " -"--external\n" -" ipa group-add --desc='<домен.ad> admins' ad_admins\n" -"\n" -"2. Додати ідентифікатор Domain Admins домену <домен.ad> до\n" -"групи ad_admins_external:\n" -"\n" -" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n" -"\n" -"3. Дозволити прив’язку групи ad_admins_external до групи POSIX ad_admins:\n" -"\n" -" ipa group-add-member ad_admins --groups ad_admins_external\n" -"\n" -"4. Показати список зовнішніх учасників групи ad_admins_external, щоб " -"визначити\n" -"їхні SIDs:\n" -"\n" -" ipa group-show ad_admins_external\n" - -msgid "Members of a trusted domain in DOM\\name or name@domain form" -msgstr "Учасники довіреного домену у форматі ДОМЕН\\ім’я або ім’я@домен" - -msgid "search for POSIX groups" -msgstr "шукати групи POSIX" - -msgid "" -"search for groups with support of external non-IPA members from trusted " -"domains" -msgstr "" -"шукати групи з підтримкою зовнішніх учасників поза IPA з довірених доменів" - -msgid "search for non-POSIX groups" -msgstr "шукати групи, які не є групами POSIX" - -msgid "" -"\n" -"Realm domains\n" -"\n" -"Manage the list of domains associated with IPA realm.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Display the current list of realm domains:\n" -" ipa realmdomains-show\n" -"\n" -" Replace the list of realm domains:\n" -" ipa realmdomains-mod --domain=example.com\n" -" ipa realmdomains-mod --domain={example1.com,example2.com,example3.com}\n" -"\n" -" Add a domain to the list of realm domains:\n" -" ipa realmdomains-mod --add-domain=newdomain.com\n" -"\n" -" Delete a domain from the list of realm domains:\n" -" ipa realmdomains-mod --del-domain=olddomain.com\n" -msgstr "" -"\n" -"Домени області\n" -"\n" -"Керування списком доменів, пов’язаних з областю IPA.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Показати поточний список доменів області:\n" -" ipa realmdomains-show\n" -"\n" -" Замірити список доменів області:\n" -" ipa realmdomains-mod --domain=example.com\n" -" ipa realmdomains-mod --domain={example1.com,example2.com,example3.com}\n" -"\n" -" Додати домен до списку доменів області:\n" -" ipa realmdomains-mod --add-domain=newdomain.com\n" -"\n" -" Вилучити домен зі списку доменів області:\n" -" ipa realmdomains-mod --del-domain=olddomain.com\n" - -msgid "Add domain" -msgstr "Додати домен" - -msgid "Delete domain" -msgstr "Вилучити домен" - -msgid "Modify realm domains." -msgstr "Змінити домени області." - -msgid "Force adding domain even if not in DNS" -msgstr "Примусове додавання домену, навіть якщо назви немає у DNS" - -msgid "Display the list of realm domains." -msgstr "Показати список доменів області." - -msgid "OTP" -msgstr "OTP" - -msgid "One Time Password" -msgstr "Одноразовий пароль" - -msgid "" -"\n" -"IPA servers\n" -"\n" -"Get information about installed IPA servers.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Find all servers:\n" -" ipa server-find\n" -"\n" -" Show specific server:\n" -" ipa server-show ipa.example.com\n" -msgstr "" -"\n" -"Сервери IPA\n" -"\n" -"Отримати дані щодо встановлених серверів IPA.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Знайти усі сервери:\n" -" ipa server-find\n" -"\n" -" Показати вказаний сервер:\n" -" ipa server-show ipa.example.com\n" - -msgid "Server name" -msgstr "Назва сервера" - -msgid "IPA server hostname" -msgstr "Назва вузла сервера IPA" - -msgid "Managed suffix" -msgstr "Керований суфікс" - -msgid "Min domain level" -msgstr "Мін. рівень домену" - -msgid "Minimum domain level" -msgstr "Мінімальний рівень домену" - -msgid "Max domain level" -msgstr "Макс. рівень домену" - -msgid "Maximum domain level" -msgstr "Максимальний рівень домену" - -msgid "Delete IPA server." -msgstr "Вилучити сервер IPA." - -msgid "Search for IPA servers." -msgstr "Шукати сервери IPA." - -msgid "Show IPA server." -msgstr "Показати сервер IPA." - -msgid "" -"\n" -"RADIUS Proxy Servers\n" -"\n" -"Manage RADIUS Proxy Servers.\n" -"\n" -"IPA supports the use of an external RADIUS proxy server for krb5 OTP\n" -"authentications. This permits a great deal of flexibility when\n" -"integrating with third-party authentication services.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new server:\n" -" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" -"\n" -" Find all servers whose entries include the string \"example.com\":\n" -" ipa radiusproxy-find example.com\n" -"\n" -" Examine the configuration:\n" -" ipa radiusproxy-show MyRADIUS\n" -"\n" -" Change the secret:\n" -" ipa radiusproxy-mod MyRADIUS --secret\n" -"\n" -" Delete a configuration:\n" -" ipa radiusproxy-del MyRADIUS\n" -msgstr "" -"\n" -"Проксі-сервери RADIUS\n" -"\n" -"Керування проксі-серверами RADIUS.\n" -"\n" -"У IPA передбачено підтримку зовнішнього проксі-сервера RADIUS для\n" -"виконання розпізнавання OTP krb5. Це надає системі значної гнучкості\n" -"з метою інтеграції зі сторонніми службами розпізнавання.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Додати новий сервер:\n" -" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" -"\n" -" Знайти усі сервери, чиї запис містять рядок «example.com»:\n" -" ipa radiusproxy-find example.com\n" -"\n" -" Перевірити налаштування:\n" -" ipa radiusproxy-show MyRADIUS\n" -"\n" -" Змінити реєстраційні дані:\n" -" ipa radiusproxy-mod MyRADIUS --secret\n" -"\n" -" Вилучити налаштування:\n" -" ipa radiusproxy-del MyRADIUS\n" - -msgid "RADIUS proxy server name" -msgstr "Назва проксі-сервера RADIUS" - -msgid "A description of this RADIUS proxy server" -msgstr "Опис цього проксі-сервера RADIUS" - -msgid "Server" -msgstr "Сервер" - -msgid "The hostname or IP (with or without port)" -msgstr "Назва вузла або IP-адреса (з портом або без порту)" - -msgid "Secret" -msgstr "Ключ" - -msgid "The secret used to encrypt data" -msgstr "Ключ, який використовується для шифрування даних" - -msgid "Timeout" -msgstr "Час очікування" - -msgid "The total timeout across all retries (in seconds)" -msgstr "Загальний час очікування за усіма спробами (у секундах)" - -msgid "Retries" -msgstr "Кількість спроб" - -msgid "The number of times to retry authentication" -msgstr "Кількість спроб пройти розпізнавання" - -msgid "User attribute" -msgstr "Атрибут користувача" - -msgid "The username attribute on the user object" -msgstr "Атрибут імені користувача об’єкта користувача" - -msgid "Add a new RADIUS proxy server." -msgstr "Додати новий проксі-сервер RADIUS." - -msgid "Delete a RADIUS proxy server." -msgstr "Вилучити проксі-сервер RADIUS." - -msgid "Search for RADIUS proxy servers." -msgstr "Шукати проксі-сервери RADIUS." - -msgid "Modify a RADIUS proxy server." -msgstr "Змінити запис проксі-сервера RADIUS." - -msgid "Rename the RADIUS proxy server object" -msgstr "Перейменувати об’єкт проксі-сервера RADIUS" - -msgid "Display information about a RADIUS proxy server." -msgstr "Показати дані щодо проксі-сервера RADIUS." - -msgid "" -"\n" -"Manage Certificate Profiles\n" -"\n" -"Certificate Profiles are used by Certificate Authority (CA) in the signing " -"of\n" -"certificates to determine if a Certificate Signing Request (CSR) is " -"acceptable,\n" -"and if so what features and extensions will be present on the certificate.\n" -"\n" -"The Certificate Profile format is the property-list format understood by " -"the\n" -"Dogtag or Red Hat Certificate System CA.\n" -"\n" -"PROFILE ID SYNTAX:\n" -"\n" -"A Profile ID is a string without spaces or punctuation starting with a " -"letter\n" -"and followed by a sequence of letters, digits or underscore (\"_\").\n" -"\n" -"EXAMPLES:\n" -"\n" -" Import a profile that will not store issued certificates:\n" -" ipa certprofile-import ShortLivedUserCert --file UserCert.profile " -"--desc \"User Certificates\" --store=false\n" -"\n" -" Delete a certificate profile:\n" -" ipa certprofile-del ShortLivedUserCert\n" -"\n" -" Show information about a profile:\n" -" ipa certprofile-show ShortLivedUserCert\n" -"\n" -" Save profile configuration to a file:\n" -" ipa certprofile-show caIPAserviceCert --out caIPAserviceCert.cfg\n" -"\n" -" Search for profiles that do not store certificates:\n" -" ipa certprofile-find --store=false\n" -"\n" -"PROFILE CONFIGURATION FORMAT:\n" -"\n" -"The profile configuration format is the raw property-list format\n" -"used by Dogtag Certificate System. The XML format is not supported.\n" -"\n" -"The following restrictions apply to profiles managed by FreeIPA:\n" -"\n" -"- When importing a profile the \"profileId\" field, if present, must\n" -" match the ID given on the command line.\n" -"\n" -"- The \"classId\" field must be set to \"caEnrollImpl\"\n" -"\n" -"- The \"auth.instance_id\" field must be set to \"raCertAuth\"\n" -"\n" -"- The \"certReqInputImpl\" input class and \"certOutputImpl\" output\n" -" class must be used.\n" -msgstr "" -"\n" -"Керування профілями сертифікатів\n" -"\n" -"Профілі сертифікатів використовуються службами сертифікації (CA) під час\n" -"підписування сертифікатів для визначення того, чи є прийнятним запит на\n" -"підписування сертифіката (CSR), і, якщо це так, визначення можливостей\n" -"і розширень, які буде надано сертифікатом.\n" -"\n" -"Форматом профілю сертифікатів є список значень, які може обробляти\n" -"Dogtag або система сертифікації служби сертифікації Red Hat.\n" -"\n" -"СИНТАКСИС ІДЕНТИФІКАТОРА ПРОФІЛЮ:\n" -"\n" -"Ідентифікатор профілю — рядок без пробілів і символів пунктуації,\n" -"що починається з літери і складається з послідовності літер, цифр, та " -"символів підкреслювання («_»).\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Імпортувати профіль, у якому не зберігатимуться видані сертифікати:\n" -" ipa certprofile-import ShortLivedUserCert \\\n" -" --file UserCert.profile --summary \"User Certificates\" \\\n" -" --store=false\n" -"\n" -" Вилучити профіль сертифікатів:\n" -" ipa certprofile-del ShortLivedUserCert\n" -"\n" -" Показати дані щодо профілю:\n" -" ipa certprofile-show ShortLivedUserCert\n" -"\n" -" Зберегти налаштування профілю до файла:\n" -" ipa certprofile-show caIPAserviceCert --out caIPAserviceCert.cfg\n" -"\n" -" Шукати профілі, у яких не зберігаються сертифікати:\n" -" ipa certprofile-find --store=false\n" -"\n" -"ФОРМАТ НАЛАШТУВАНЬ ПРОФІЛЮ:\n" -"\n" -"Налаштування профілю зберігаються у вигляді простого списку\n" -"властивостей, що використовується системою сертифікації Dogtag.\n" -"Підтримки формату XML не передбачено.\n" -"\n" -"Профілів, які керуються FreeIPA, стосуються такі обмеження:\n" -"\n" -"- Під час імпортування профілю поле «profileId», якщо таке є, має\n" -" містити значення, що збігається з ідентифікатором, вказаним у рядку " -"команди.\n" -"\n" -"- Значенням поля «classId» має бути «caEnrollImpl»\n" -"\n" -"- Значенням поля «auth.instance_id» має бути «raCertAuth»\n" -"\n" -"- Має бути використано вхідний клас «certReqInputImpl» і вихідний\n" -" клас «certOutputImpl».\n" - -msgid "Profile ID" -msgstr "Ід. профілю" - -msgid "Profile ID for referring to this profile" -msgstr "Ідентифікатор профілю для посилання на цей профіль" - -msgid "Profile description" -msgstr "Опис профілю" - -msgid "Brief description of this profile" -msgstr "Короткий опис профілю" - -msgid "Store issued certificates" -msgstr "Зберігати видані сертифікати" - -msgid "Whether to store certs issued using this profile" -msgstr "" -"Визначає, чи слід зберігати сертифікати, видані за допомогою цього профілю" - -msgid "Delete a Certificate Profile." -msgstr "Вилучити профіль сертифікатів." - -msgid "Search for Certificate Profiles." -msgstr "Шукати профілі сертифікатів." - -msgid "Results should contain primary key attribute only (\"id\")" -msgstr "Результати мають містити лише атрибут основного ключа («id»)" - -msgid "Import a Certificate Profile." -msgstr "Імпортувати профіль сертифікатів." - -msgid "Filename of a raw profile. The XML format is not supported." -msgstr "" -"Назва файла профілю з необробленими даними. Підтримки формату XML не " -"передбачено." - -msgid "Modify Certificate Profile configuration." -msgstr "Змінити налаштування профілю сертифікатів." - -msgid "File containing profile configuration" -msgstr "Файл, який містить налаштування профілів" - -msgid "Display the properties of a Certificate Profile." -msgstr "Показати властивості профілю сертифікатів." - -msgid "Write profile configuration to file" -msgstr "Записати налаштування профілів до файла" - -msgid "privileges" -msgstr "привілеї" - -msgid "" -"\n" -"OTP configuration\n" -"\n" -"Manage the default values that IPA uses for OTP tokens.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Show basic OTP configuration:\n" -" ipa otpconfig-show\n" -"\n" -" Show all OTP configuration options:\n" -" ipa otpconfig-show --all\n" -"\n" -" Change maximum TOTP authentication window to 10 minutes:\n" -" ipa otpconfig-mod --totp-auth-window=600\n" -"\n" -" Change maximum TOTP synchronization window to 12 hours:\n" -" ipa otpconfig-mod --totp-sync-window=43200\n" -"\n" -" Change maximum HOTP authentication window to 5:\n" -" ipa hotpconfig-mod --hotp-auth-window=5\n" -"\n" -" Change maximum HOTP synchronization window to 50:\n" -" ipa hotpconfig-mod --hotp-sync-window=50\n" -msgstr "" -"\n" -"Налаштування OTP\n" -"\n" -"Керування типовими значеннями, які IPA використовує для ключів OTP.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Показати базові налаштування OTP:\n" -" ipa otpconfig-show\n" -"\n" -" Показати усі параметри налаштування OTP:\n" -" ipa otpconfig-show --all\n" -"\n" -" Змінити тривалість максимального вікна розпізнавання TOTP на 10 хвилин:\n" -" ipa otpconfig-mod --totp-auth-window=600\n" -"\n" -" Змінити тривалість максимального вікна синхронізації TOTP на 12 годин:\n" -" ipa otpconfig-mod --totp-sync-window=43200\n" -"\n" -" Змінити тривалість максимального вікна розпізнавання HOTP на 5:\n" -" ipa hotpconfig-mod --hotp-auth-window=5\n" -"\n" -" Змінити тривалість максимального вікна синхронізації HOTP на 50:\n" -" ipa hotpconfig-mod --hotp-sync-window=50\n" - -msgid "TOTP authentication Window" -msgstr "Вікно розпізнавання TOTP" - -msgid "TOTP authentication time variance (seconds)" -msgstr "Відхилення часу розпізнавання TOTP (у секундах)" - -msgid "TOTP Synchronization Window" -msgstr "Вікно синхронізації TOTP" - -msgid "TOTP synchronization time variance (seconds)" -msgstr "Відхилення часу синхронізації TOTP (у секундах)" - -msgid "HOTP Authentication Window" -msgstr "Вікно розпізнавання HOTP" - -msgid "HOTP authentication skip-ahead" -msgstr "Випереджальне пропускання розпізнавання HOTP" - -msgid "HOTP Synchronization Window" -msgstr "Вікно синхронізації HOTP" - -msgid "HOTP synchronization skip-ahead" -msgstr "Випереджальне пропускання синхронізації HOTP" - -msgid "Modify OTP configuration options." -msgstr "Змінити параметри налаштування OTP." - -msgid "Show the current OTP configuration." -msgstr "Показати поточні налаштування OTP." - -msgid "" -"\n" -"OTP Tokens\n" -"\n" -"Manage OTP tokens.\n" -"\n" -"IPA supports the use of OTP tokens for multi-factor authentication. This\n" -"code enables the management of OTP tokens.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new token:\n" -" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" -"\n" -" Examine the token:\n" -" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" -"\n" -" Change the vendor:\n" -" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" -"\"\n" -"\n" -" Delete a token:\n" -" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" -msgstr "" -"\n" -"Жетони OTP\n" -"\n" -"Керування жетонами OTP.\n" -"\n" -"У IPA передбачено підтримку використання жетонів OTP для багатофакторного " -"розпізнавання.\n" -"За допомогою цього коду уможливлюється керування жетонами OTP.\n" -"\n" -" Додати новий жетон:\n" -" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" -"\n" -" Перевірити жетон:\n" -" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" -"\n" -" Змінити постачальника:\n" -" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" -"\"\n" -"\n" -" Вилучити жетон:\n" -" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" - -msgid "Unique ID" -msgstr "Унікальний ід." - -msgid "Type of the token" -msgstr "Тип ключа" - -msgid "Token description (informational only)" -msgstr "Опис ключа (лише інформаційний)" - -msgid "Owner" -msgstr "Власник" - -msgid "Assigned user of the token (default: self)" -msgstr "Призначений користувач ключа (типове значення: self)" - -msgid "Assigned manager of the token (default: self)" -msgstr "Призначений керівник ключа (типове значення: self)" - -msgid "Disabled" -msgstr "Вимкнено" - -msgid "Mark the token as disabled (default: false)" -msgstr "Позначення ключа як вимкненого (типове значення: false)" - -msgid "Validity start" -msgstr "Початок чинності" - -msgid "First date/time the token can be used" -msgstr "Час початку використання ключа (дата і час)" - -msgid "Validity end" -msgstr "Завершення чинності" - -msgid "Last date/time the token can be used" -msgstr "Строк дії ключа (дата і час)" - -msgid "Vendor" -msgstr "Постачальник" - -msgid "Token vendor name (informational only)" -msgstr "Назва виробника ключа (лише інформація)" - -msgid "Model" -msgstr "Модель" - -msgid "Token model (informational only)" -msgstr "Модель ключа (лише інформація)" - -msgid "Serial" -msgstr "Серійний номер" - -msgid "Token serial (informational only)" -msgstr "Серійний номер ключа (лише інформація)" - -msgid "Token secret (Base32; default: random)" -msgstr "Пароль ключа (Base32; типове значення: випадковий)" - -msgid "Token hash algorithm" -msgstr "Алгоритм хешування ключа" - -msgid "Digits" -msgstr "Цифри" - -msgid "Number of digits each token code will have" -msgstr "Кількість цифр у кожному з кодів ключа" - -msgid "Clock offset" -msgstr "Зсув годинника" - -msgid "TOTP token / FreeIPA server time difference" -msgstr "Часова розбіжність між ключем TOTP і сервером FreeIPA" - -msgid "Clock interval" -msgstr "Інтервал годинника" - -msgid "Length of TOTP token code validity" -msgstr "Тривалість чинності коду ключа TOTP" - -msgid "Counter" -msgstr "Лічильник" - -msgid "Initial counter for the HOTP token" -msgstr "Початковий лічильник для ключа HOTP" - -msgid "Add a new OTP token." -msgstr "Додати новий жетон OTP." - -msgid "(deprecated)" -msgstr "(застаріле)" - -msgid "Do not display QR code" -msgstr "Не показувати код QR" - -msgid "Add users that can manage this token." -msgstr "Додати записи користувачів, які можуть керувати цим жетоном." - -msgid "Delete an OTP token." -msgstr "Вилучити жетон OTP." - -msgid "Search for OTP token." -msgstr "Шукати жетон OTP." - -msgid "Modify a OTP token." -msgstr "Змінити жетон OTP." - -msgid "Rename the OTP token object" -msgstr "Перейменувати об’єкт жетона OTP" - -msgid "Remove users that can manage this token." -msgstr "Вилучити записи користувачів, які можуть керувати цим жетоном." - -msgid "Display information about an OTP token." -msgstr "Показати інформацію щодо жетона OTP." - -msgid "" -"\n" -"Groups of hosts.\n" -"\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" -"\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" -"\n" -" Add members to the hostgroup (using Bash brace expansion):\n" -" ipa hostgroup-add-member --hosts={box1,box2,box3} baltimore\n" -"\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" -"\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" -"\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" -"\n" -" 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" -" Додавання учасників до групи вузлів з використанням виразу Bash у фігурних " -"дужках):\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" - -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 --users=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 --users=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" - -msgid "netgroups to add" -msgstr "мережеві групи, які слід додати" - -msgid "netgroups to remove" -msgstr "мережеві групи для вилучення" - -msgid "" -"\n" -"Domain Name System (DNS)\n" -"\n" -"Manage DNS zone and resource records.\n" -"\n" -"SUPPORTED ZONE TYPES\n" -"\n" -" * Master zone (dnszone-*), contains authoritative data.\n" -" * Forward zone (dnsforwardzone-*), forwards queries to configured " -"forwarders\n" -" (a set of DNS servers).\n" -"\n" -"USING STRUCTURED PER-TYPE OPTIONS\n" -"\n" -"There are many structured DNS RR types where DNS data stored in LDAP server\n" -"is not just a scalar value, for example an IP address or a domain name, but\n" -"a data structure which may be often complex. A good example is a LOC record\n" -"[RFC1876] which consists of many mandatory and optional parts (degrees,\n" -"minutes, seconds of latitude and longitude, altitude or precision).\n" -"\n" -"It may be difficult to manipulate such DNS records without making a mistake\n" -"and entering an invalid value. DNS module provides an abstraction over " -"these\n" -"raw records and allows to manipulate each RR type with specific options. " -"For\n" -"each supported RR type, DNS module provides a standard option to manipulate\n" -"a raw records with format ---rec, e.g. --mx-rec, and special " -"options\n" -"for every part of the RR structure with format ---, e.g.\n" -"--mx-preference and --mx-exchanger.\n" -"\n" -"When adding a record, either RR specific options or standard option for a " -"raw\n" -"value can be used, they just should not be combined in one add operation. " -"When\n" -"modifying an existing entry, new RR specific options can be used to change\n" -"one part of a DNS record, where the standard option for raw value is used\n" -"to specify the modified value. The following example demonstrates\n" -"a modification of MX record preference from 0 to 1 in a record without\n" -"modifying the exchanger:\n" -"ipa dnsrecord-mod --mx-rec=\"0 mx.example.com.\" --mx-preference=1\n" -"\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --admin-email=admin@example.com\n" -"\n" -" Add system permission that can be used for per-zone privilege delegation:\n" -" ipa dnszone-add-permission 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" -"\n" -" This is the equivalent of:\n" -" ipa dnszone-mod example.com --dynamic-update=TRUE --update-policy=" -"\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM krb5-self * AAAA; grant " -"EXAMPLE.COM krb5-self * SSHFP;\"\n" -"\n" -" Modify the zone to allow zone transfers for local network only:\n" -" ipa dnszone-mod example.com --allow-transfer=192.0.2.0/24\n" -"\n" -" Add new reverse zone specified by network IP address:\n" -" ipa dnszone-add --name-from-ip=192.0.2.0/24\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 mail1\"\n" -"\n" -" Add another record using MX record specific options:\n" -" ipa dnsrecord-add example.com @ --mx-preference=20 --mx-exchanger=mail2\n" -"\n" -" Add another record using interactive mode (started when dnsrecord-add, " -"dnsrecord-mod,\n" -" or dnsrecord-del are executed with no options):\n" -" ipa dnsrecord-add example.com @\n" -" Please choose a type of DNS resource record to be added\n" -" The most common types for this type of zone are: NS, MX, LOC\n" -"\n" -" DNS resource record type: MX\n" -" MX Preference: 30\n" -" MX Exchanger: mail3\n" -" Record name: example.com\n" -" MX record: 10 mail1, 20 mail2, 30 mail3\n" -" NS record: nameserver.example.com., nameserver2.example.com.\n" -"\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. Create a reverse record in " -"appropriate\n" -" reverse zone as well. In this case a PTR record \"2\" pointing to www." -"example.com\n" -" will be created in zone 2.0.192.in-addr.arpa.\n" -" ipa dnsrecord-add example.com www --a-rec=192.0.2.2 --a-create-reverse\n" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 2.0.192.in-addr.arpa. 2 --ptr-rec=www.example.com.\n" -"\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 interactive mode can be used for easy modification:\n" -" ipa dnsrecord-mod example.com _ldap._tcp\n" -" No option to modify specific record provided.\n" -" Current DNS record contents:\n" -"\n" -" SRV record: 0 3 389 fast.example.com, 0 1 389 slow.example.com, 1 1 389 " -"backup.example.com\n" -"\n" -" Modify SRV record '0 3 389 fast.example.com'? Yes/No (default No):\n" -" Modify SRV record '0 1 389 slow.example.com'? Yes/No (default No): y\n" -" SRV Priority [0]: (keep the default value)\n" -" SRV Weight [1]: 2 (modified value)\n" -" SRV Port [389]: (keep the default value)\n" -" SRV Target [slow.example.com]: (keep the default value)\n" -" 1 SRV record skipped. Only one value per DNS record type can be modified " -"at one time.\n" -" Record name: _ldap._tcp\n" -" SRV record: 0 3 389 fast.example.com, 1 1 389 backup.example.com, 0 2 " -"389 slow.example.com\n" -"\n" -" After this modification, three fifths of the requests should go to\n" -" fast.example.com and two fifths to slow.example.com.\n" -"\n" -" An example of the interactive mode for dnsrecord-del command:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 192.0.2.2, 192.0.2.3\n" -"\n" -" Delete A record '192.0.2.2'? Yes/No (default No):\n" -" Delete A record '192.0.2.3'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 192.0.2.2 (A record 192.0.2.3 has been " -"deleted)\n" -"\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 192.0.2.2 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec=192.0.2.2\n" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Delegate zone sub.example to another nameserver:\n" -" ipa dnsrecord-add example.com ns.sub --a-rec=203.0.113.1\n" -" ipa dnsrecord-add example.com sub --ns-rec=ns.sub.example.com.\n" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -"\n" -" If a global forwarder is configured, all queries for which this server is " -"not\n" -" authoritative (e.g. sub.example.com) will be routed to the global " -"forwarder.\n" -" Global forwarding configuration can be overridden per-zone.\n" -"\n" -" Semantics of forwarding in IPA matches BIND semantics and depends on the " -"type\n" -" of zone:\n" -" * Master zone: local BIND replies authoritatively to queries for data in\n" -" the given zone (including authoritative NXDOMAIN answers) and forwarding\n" -" affects only queries for names below zone cuts (NS records) of locally\n" -" served zones.\n" -"\n" -" * Forward zone: forward zone contains no authoritative data. BIND " -"forwards\n" -" queries, which cannot be answered from its local cache, to configured\n" -" forwarders.\n" -"\n" -" Semantics of the --forward-policy option:\n" -" * none - disable forwarding for the given zone.\n" -" * first - forward all queries to configured forwarders. If they fail,\n" -" do resolution using DNS root servers.\n" -" * only - forward all queries to configured forwarders and if they fail,\n" -" return failure.\n" -"\n" -" Disable global forwarding for given sub-tree:\n" -" ipa dnszone-mod example.com --forward-policy=none\n" -"\n" -" This configuration forwards all queries for names outside the example.com\n" -" sub-tree to global forwarders. Normal recursive resolution process is used\n" -" for names inside the example.com sub-tree (i.e. NS records are followed " -"etc.).\n" -"\n" -" Forward all requests for the zone external.example.com to another " -"forwarder\n" -" using a \"first\" policy (it will send the queries to the selected " -"forwarder\n" -" and if not answered it will use global root servers):\n" -" ipa dnsforwardzone-add external.example.com --forward-" -"policy=first --forwarder=203.0.113.1\n" -"\n" -" Change forward-policy for external.example.com:\n" -" ipa dnsforwardzone-mod external.example.com --forward-policy=only\n" -"\n" -" Show forward zone external.example.com:\n" -" ipa dnsforwardzone-show external.example.com\n" -"\n" -" List all forward zones:\n" -" ipa dnsforwardzone-find\n" -"\n" -" Delete forward zone external.example.com:\n" -" ipa dnsforwardzone-del external.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" -"\n" -"\n" -"GLOBAL DNS CONFIGURATION\n" -"\n" -"DNS configuration passed to command line install script is stored in a " -"local\n" -"configuration file on each IPA server where DNS service is configured. " -"These\n" -"local settings can be overridden with a common configuration stored in LDAP\n" -"server:\n" -"\n" -" Show global DNS configuration:\n" -" ipa dnsconfig-show\n" -"\n" -" Modify global DNS configuration and set a list of global forwarders:\n" -" ipa dnsconfig-mod --forwarder=203.0.113.113\n" -msgstr "" -"\n" -"Система назв доменів (DNS)\n" -"\n" -"Керування записами зон та ресурсів DNS.\n" -"\n" -"ПІДТРИМУВАНІ ТИПИ ЗОН\n" -"\n" -" * Основна зона (dnszone-*), містить довірені дані.\n" -" * Зона переспрямовування (dnsforwardzone-*), переспрямовує запити до " -"налаштованих засобів обробки\n" -" (набору серверів DNS).\n" -"\n" -"ВИКОРИСТАННЯ СТРУКТУРОВАНИХ ПАРАМЕТРІВ ДЛЯ ОКРЕМИХ ТИПІВ\n" -"\n" -"Існує багато структурованих типів RR DNS, для яких дані DNS, що " -"зберігаються\n" -"на сервері LDAP, не є скалярним значенням, наприклад дані щодо IP-адресу " -"або\n" -"назву домену, а структурою даних, яка часто може бути складною. Прикладом\n" -"може бути запис LOC [RFC1876], який складається з багатьох обов’язкових і\n" -"необов’язкових частин (градусів, мінут, секунд широти і довготи, висоти\n" -"та похибки).\n" -"\n" -"Робота з такими записами DNS без помилки і введення некоректного значення\n" -"може бути складною. Модуль DNS надає у ваше розпорядження абстракцію над\n" -"цими необробленими записами і спосіб керування кожним з типів RR за\n" -"допомогою специфічних параметрів. Для кожного з підтримуваних типів\n" -"RR у модулі DNS передбачено стандартний параметр для роботи із\n" -"необробленими записами за допомогою формату --<тип_rr>-rec, наприклад,\n" -"--mx-rec та зі спеціальними параметрами для кожної із частин структури RR\n" -"за допомогою формату --<тип_rr>-<назва_частини>, наприклад --mx-preference\n" -"та --mx-exchanger.\n" -"\n" -"\n" -"Під час додавання запису можна скористатися специфічними для RR параметрами\n" -"або стандартним параметром для необробленого значення. Втім, поєднувати\n" -"ці варіанти у одній дії із додавання не можна. Під час внесення змін до\n" -"наявного запису можна скористатися для зміни однієї частини запису DNS\n" -"новими специфічними параметрами RR, причому для визначення зміненого\n" -"значення буде використано стандартний варіант необробленого значення.\n" -"У наведеному нижче прикладі продемонстровано зміну пріоритетності запису\n" -"MX з 0 на 1 у записі без внесення змін до обмінника:\n" -"ipa dnsrecord-mod --mx-rec=\"0 mx.example.com.\" --mx-preference=1\n" -"\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Додавання нової зони:\n" -" ipa dnszone-add example.com --admin-email=admin@example.com\n" -"\n" -" Додавання загальносистемних прав доступу, якими можна скористатися для " -"делегування привілеїв для окремих зон:\n" -" ipa dnszone-add-permission example.com\n" -"\n" -" Зміна зони таким чином, щоб дозволити динамічне оновлення для власних " -"записів вузлів у області EXAMPLE.COM:\n" -" ipa dnszone-mod example.com --dynamic-update=TRUE\n" -"\n" -" Ця команда еквівалентна до такої команди:\n" -" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" -" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM " -"krb5-self * AAAA; grant EXAMPLE.COM krb5-self * SSHFP;\"\n" -"\n" -" Зміна зони таким чином, щоб дозволити перенесення зони лише для локальної " -"мережі:\n" -" ipa dnszone-mod example.com --allow-transfer=192.0.2.0/24\n" -"\n" -" Додавання нової реверсивної зони, вказаної за допомогою мережевої IP-" -"адреси:\n" -" ipa dnszone-add --name-from-ip=192.0.2.0/24\n" -"\n" -" Додати другий сервер назв для example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec=nameserver2.example.com\n" -"\n" -"\n" -" Додавання поштового сервера для example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail1\"\n" -"\n" -" Додавання ще одного запису за допомогою специфічних для запису MX " -"параметрів:\n" -" ipa dnsrecord-add example.com @ --mx-preference=20 --mx-exchanger=mail2\n" -"\n" -" Додавання ще одного запису за допомогою інтерактивного режиму (у який " -"програма переходить\n" -" у відповідь на команди dnsrecord-add, dnsrecord-mod або dnsrecord-del без " -"параметрів):\n" -" ipa dnsrecord-add example.com @\n" -" Будь ласка, виберіть тип запису ресурсу DNS, який слід додати\n" -" Найпоширенішими типами для цього типу зон є: NS, MX, LOC\n" -"\n" -" Тип запису ресурсу DNS: MX\n" -" Пріоритетність MX: 30\n" -" Обмінник MX: mail3\n" -" Назва запису: example.com\n" -" Запис MX: 10 mail1, 20 mail2, 30 mail3\n" -" Запис NS: nameserver.example.com., nameserver2.example.com.\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, крім того, створення " -"зворотного\n" -" запису у відповідній зворотній зоні. У цьому випадку запис PTR «2» вказує " -"на\n" -" www.example.com буде створено у зоні 2.0.192.in-addr.arpa.\n" -" ipa dnsrecord-add example.com www --a-rec=192.0.2.2 --a-create-reverse\n" -"\n" -" Додавання нового запису PTR для www.example.com\n" -" ipa dnsrecord-add 2.0.192.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" -" Для полегшення внесення змін можна скористатися інтерактивним режимом:\n" -" ipa dnsrecord-mod example.com _ldap._tcp\n" -" Можливості внесення змін у певний запис не передбачено.\n" -" Поточний вміст запису DNS:\n" -"\n" -" Запис SRV: 0 3 389 fast.example.com, 0 1 389 slow.example.com, 1 1 389 " -"backup.example.com\n" -"\n" -" Змінити запис SRV «0 3 389 fast.example.com»? Так/Ні (типово «Ні»):\n" -" Змінити запис SRV «0 1 389 slow.example.com»? Так/Ні (типово «Ні»): y\n" -" Пріоритетність SRV [0]: (зберегти типове значення)\n" -" Вага SRV [1]: 2 (змінене значення)\n" -" Порт SRV [389]: (зберегти типове значення)\n" -" Призначення SRV [slow.example.com]: (зберегти типове значення)\n" -" Пропущено 1 запис SRV. Одночасно можна змінювати лише одне значення на тип " -"запису DNS.\n" -" Назва запису: _ldap._tcp\n" -" Запис SRV: 0 3 389 fast.example.com, 1 1 389 backup.example.com, 0 2 389 " -"slow.example.com\n" -"\n" -" Після внесення цих змін три п’ятих запитів має надсилатися до\n" -" fast.example.com, а дві п’ятих — до slow.example.com.\n" -"\n" -" Приклад інтерактивного режиму для команди dnsrecord-del:\n" -" ipa dnsrecord-del example.com www\n" -" Не вказано параметр вилучення певного запису.\n" -" Вилучити усі? Так/Ні (типово «Ні»): (не вилучати усі записи)\n" -" Поточний вміст запису DNS:\n" -"\n" -" Запис A: 192.0.2.2, 192.0.2.3\n" -"\n" -" Вилучити запис A «192.0.2.2»? Так/Ні (типово «Ні»):\n" -" Вилучити запис A «192.0.2.3»? Так/Ні (типово «Ні»): y\n" -" Назва запису: www\n" -" Запис A: 192.0.2.2 (Запис A 192.0.2.3 вилучено)\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 зі значенням 192.0.2.2 у зоні example.com\n" -" ipa dnsrecord-find example.com --a-rec=192.0.2.2\n" -"\n" -" Показати записи для ресурсу www у зоні example.com\n" -" ipa dnsrecord-show example.com www\n" -"\n" -" Делегування зони sub.example до іншого сервера назв:\n" -" ipa dnsrecord-add example.com ns.sub --a-rec=203.0.113.1\n" -" ipa dnsrecord-add example.com sub --ns-rec=ns.sub.example.com.\n" -"\n" -" Вилучення зони example.com з усіма записами ресурсів:\n" -" ipa dnszone-del example.com\n" -"\n" -" Якщо налаштовано загальний переспрямовувач, усі запити, для яких цей сервер " -"не є\n" -" надійним (наприклад sub.example.com) не маршрутизуватимуться до загального\n" -" переспрямовувача.\n" -" Загальні налаштування переспрямовування можна перевизначати для окремих " -"зон.\n" -" Семантика переспрямовування у IPA збігається із семантикою BIND і залежить\n" -" від типу зони:\n" -" * Основна зона: локальний BIND надає надійні відповіді для даних у " -"заданій\n" -" зоні (включено з надійними відповідями NXDOMAIN), а переспрямовування\n" -" стосуватиметься лише запитів щодо назв за межами (записами NS) зон, що\n" -" обслуговуються локально.\n" -"\n" -" * Зона переспрямовування: зона переспрямовування не містить надійних " -"даних. BIND\n" -" переспрямовує запити, на які не вдалося отримати відповіді з локального " -"кешу, до\n" -" налаштованих переспрямовувачів.\n" -"\n" -" Семантика параметра --forwarder-policy:\n" -" * none — вимкнути переспрямовування для вказаної зони.\n" -" * first — спрямувати усі запити до налаштованих переспрямовувачів. Якщо\n" -" це не спрацює, виконати перетворення за допомогою кореневих серверів " -"DNS.\n" -" * only — спрямувати усі запити до налаштованих переспрямовувачів. Якщо\n" -" це не спрацює, повернути повідомлення про помилку.\n" -"\n" -" Вимикання загального переспрямовування для вказаного піддерева:\n" -" ipa dnszone-mod example.com --forward-policy=none\n" -"\n" -" За цих налаштувань усі запити щодо назв поза піддеревом example.com буде\n" -" спрямовано до загальних переспрямовувачів. Для назв у межах піддерева\n" -" example.com буде використано звичайну рекурсивну (тобто з переходом за\n" -" записами NS) процедуру визначення.\n" -"\n" -" Переспрямувати усі запити для зони external.example.com до іншого " -"переспрямовувача\n" -" з використанням правила «first» (надсилати запити до вибраного " -"переспрямовувача і,\n" -" якщо він не відповість, скористатися загальними кореневими серверами):\n" -" ipa dnsforwardzone-add external.example.com --forward-policy=first \\\n" -" --forwarder=203.0.113.1\n" -"\n" -" Змінити правила переспрямовування для external.example.com:\n" -" ipa dnsforwardzone-mod external.example.com --forward-policy=only\n" -"\n" -" Показати зону переспрямовування external.example.com:\n" -" ipa dnsforwardzone-show external.example.com\n" -"\n" -" Показати список усіх зон переспрямовування:\n" -" ipa dnsforwardzone-find\n" -"\n" -" Вилучення зони переспрямовування external.example.com:\n" -" ipa dnsforwardzone-del external.example.com\n" -"\n" -" Визначити адресу вузла за назвою, якщо адреса існує (додасть типовий\n" -" домен IPA, якщо домен не включено):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" -"\n" -"\n" -"ЗАГАЛЬНІ НАЛАШТУВАННЯ DNS\n" -"\n" -"Налаштування DNS, що передаються до скрипту командного рядка для " -"встановлення,\n" -"зберігаються у локальному файлі налаштувань на кожному з серверів IPA, де\n" -"налаштовано службу DNS. Ці локальні параметри можна перевизначити за " -"допомогою\n" -"загальних налаштувань, що зберігаються на сервері LDAP:\n" -"\n" -" Показати загальні налаштування DNS:\n" -" ipa dnsconfig-show\n" -"\n" -" Зміна загальних налаштувань DNS і встановлення списку загальних " -"переспрямовувачів:\n" -" ipa dnsconfig-mod --forwarder=203.0.113.113\n" - -msgid "" -"Global forwarders. A custom port can be specified for each forwarder using a " -"standard format \"IP_ADDRESS port PORT\"" -msgstr "" -"Переспрямовувачі загального рівня. Для кожного переспрямовувача можна " -"вказати нетиповий порт за допомогою стандартного формату: «IP_АДРЕСА port " -"ПОРТ»" - -msgid "" -"Per-zone forwarders. A custom port can be specified for each forwarder using " -"a standard format \"IP_ADDRESS port PORT\"" -msgstr "" -"Переспрямовувачі для окремої зони. Можна вказати нетиповий порт для кожного " -"переспрямовувача у стандартному форматі: «IP_АДРЕСА port ПОРТ»" - -msgid "Raw A records" -msgstr "Прості записи A" - -msgid "Raw AAAA records" -msgstr "Прості записи AAAA" - -msgid "Raw A6 records" -msgstr "Прості записи A6" - -msgid "Raw AFSDB records" -msgstr "Прості записи AFSDB" - -msgid "Raw APL records" -msgstr "Прості записи APL" - -msgid "Raw CERT records" -msgstr "Прості записи CERT" - -msgid "Raw CNAME records" -msgstr "Прості записи CNAME" - -msgid "Raw DHCID records" -msgstr "Прості записи DHCID" - -msgid "Raw DLV records" -msgstr "Прості записи DLV" - -msgid "DLV Key Tag" -msgstr "Мітка ключа DLV" - -msgid "DLV Algorithm" -msgstr "Алгоритм DLV" - -msgid "DLV Digest Type" -msgstr "Тип контрольної суми DLV" - -msgid "DLV Digest" -msgstr "Контрольна сума DLV" - -msgid "Raw DNAME records" -msgstr "Прості записи DNAME" - -msgid "Raw DS records" -msgstr "Прості записи DS" - -msgid "Raw HIP records" -msgstr "Прості записи HIP" - -msgid "Raw IPSECKEY records" -msgstr "Прості записи IPSECKEY" - -msgid "Raw KEY records" -msgstr "Прості записи KEY" - -msgid "Raw KX records" -msgstr "Прості записи KX" - -msgid "Raw LOC records" -msgstr "Прості записи LOC" - -msgid "Raw MX records" -msgstr "Прості записи MX" - -msgid "Raw NAPTR records" -msgstr "Прості записи NAPTR" - -msgid "Raw NS records" -msgstr "Прості записи NS" - -msgid "Raw NSEC records" -msgstr "Прості записи NSEC" - -msgid "Raw PTR records" -msgstr "Прості записи PTR" - -msgid "Raw RRSIG records" -msgstr "Прості записи RRSIG" - -msgid "Raw RP records" -msgstr "Прості записи RP" - -msgid "Raw SIG records" -msgstr "Прості записи SIG" - -msgid "Raw SPF records" -msgstr "Прості записи SPF" - -msgid "Raw SRV records" -msgstr "Прості записи SRV" - -msgid "Raw SSHFP records" -msgstr "Прості записи SSHFP" - -msgid "TLSA record" -msgstr "Запис TLSA" - -msgid "Raw TLSA records" -msgstr "Прості записи TLSA" - -msgid "TLSA Certificate Usage" -msgstr "Використання сертифіката TLSA" - -msgid "Certificate Usage" -msgstr "Використання сертифіката" - -msgid "TLSA Selector" -msgstr "Селектор TLSA" - -msgid "Selector" -msgstr "Селектор" - -msgid "TLSA Matching Type" -msgstr "Відповідний тип TLSA" - -msgid "Matching Type" -msgstr "Відповідний тип" - -msgid "TLSA Certificate Association Data" -msgstr "Дані прив’язки сертифікатів TLSA" - -msgid "Certificate Association Data" -msgstr "Дані прив’язки сертифікатів" - -msgid "Raw TXT records" -msgstr "Прості записи TXT" - -msgid "Time to live for records at zone apex" -msgstr "Час життя записів у апексі зони" - -msgid "Allow in-line DNSSEC signing" -msgstr "Дозволити вбудоване підписування DNSSEC" - -msgid "Allow inline DNSSEC signing of records in the zone" -msgstr "Дозволити вбудоване підписування DNSSEC записів у зоні" - -msgid "" -"NSEC3PARAM record for zone in format: hash_algorithm flags iterations salt" -msgstr "" -"Запис NSEC3PARAM для зони у такому форматі: алгоритм_хешування прапорці " -"ітерації сіль" - -msgid "Create new DNS forward zone." -msgstr "Створити зону переспрямовування DNS." - -msgid "Add a permission for per-forward zone access delegation." -msgstr "" -"Додати право доступу до делегування доступу на основі окремих зон " -"переспрямовування." - -msgid "Permission value" -msgstr "Значення прав доступу" - -msgid "Delete DNS forward zone." -msgstr "Вилучити зону переспрямовування DNS." - -msgid "Disable DNS Forward Zone." -msgstr "Вимкнути зону переспрямовування DNS." - -msgid "Enable DNS Forward Zone." -msgstr "Увімкнути зону переспрямовування DNS" - -msgid "Search for DNS forward zones." -msgstr "Пошук зон переспрямовування DNS." - -msgid "Modify DNS forward zone." -msgstr "Змінити зону переспрямовування DNS." - -msgid "Remove a permission for per-forward zone access delegation." -msgstr "" -"Вилучити права доступу до делегування доступу для окремих зон " -"переспрямовування." - -msgid "Display information about a DNS forward zone." -msgstr "Показ даних щодо зони переспрямовування DNS." - -msgid "" -"\n" -"Host-based access control\n" -"\n" -"Control who can access what services on what hosts. You\n" -"can use HBAC to control which users or groups can\n" -"access a service, or group of services, on a target host.\n" -"\n" -"You can also specify a category of users and target hosts.\n" -"This is currently limited to \"all\", but might be expanded in the\n" -"future.\n" -"\n" -"Target hosts in HBAC rules must be hosts managed by IPA.\n" -"\n" -"The available services and groups of services are controlled by the\n" -"hbacsvc and hbacsvcgroup plug-ins respectively.\n" -"\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 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 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 --hbacsvcs=sftp ftpers\n" -" ipa hbacrule-add --hostcat=all john_ftp\n" -" ipa hbacrule-add-user --users=john john_ftp\n" -" ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" -"\n" -" 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 --usercat=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 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 --hbacsvcs=sftp ftpers\n" -" ipa hbacrule-add --type=allow --hostcat=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" - -msgid "HBAC service groups to add" -msgstr "група служб HBAC для додавання" - -msgid "HBAC service groups to remove" -msgstr "групи служб HBAC для вилучення" - -msgid "" -"\n" -"Simulate use of Host-based access controls\n" -"\n" -"HBAC rules control who can access what services on what hosts.\n" -"You can use HBAC to control which users or groups can access a service,\n" -"or group of services, on a target host.\n" -"\n" -"Since applying HBAC rules implies use of a production environment,\n" -"this plugin aims to provide simulation of HBAC rules evaluation without\n" -"having access to the production environment.\n" -"\n" -" Test user coming to a service on a named host against\n" -" existing enabled rules.\n" -"\n" -" ipa hbactest --user= --host= --service=\n" -" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" -" [--sizelimit= ]\n" -"\n" -" --user, --host, and --service are mandatory, others are optional.\n" -"\n" -" If --rules is specified simulate enabling of the specified rules and test\n" -" the login of the user using only these rules.\n" -"\n" -" If --enabled is specified, all enabled HBAC rules will be added to " -"simulation\n" -"\n" -" If --disabled is specified, all disabled HBAC rules will be added to " -"simulation\n" -"\n" -" If --nodetail is specified, do not return information about rules matched/" -"not matched.\n" -"\n" -" If both --rules and --enabled are specified, apply simulation to --rules " -"_and_\n" -" all IPA enabled rules.\n" -"\n" -" If no --rules specified, simulation is run against all IPA enabled rules.\n" -" By default there is a IPA-wide limit to number of entries fetched, you can " -"change it\n" -" with --sizelimit option.\n" -"\n" -"EXAMPLES:\n" -"\n" -" 1. Use all enabled HBAC rules in IPA database to simulate:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -" Matched rules: allow_all\n" -"\n" -" 2. Disable detailed summary of how rules were applied:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --nodetail\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -"\n" -" 3. Test explicitly specified HBAC rules:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --" -"rules=myrule --rules=my-second-rule\n" -" ---------------------\n" -" Access granted: False\n" -" ---------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: myrule\n" -"\n" -" 4. Use all enabled HBAC rules in IPA database + explicitly specified " -"rules:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --" -"rules=myrule --rules=my-second-rule --enabled\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -" Matched rules: allow_all\n" -"\n" -" 5. Test all disabled HBAC rules in IPA database:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --disabled\n" -" ---------------------\n" -" Access granted: False\n" -" ---------------------\n" -" Not matched rules: new-rule\n" -"\n" -" 6. Test all disabled HBAC rules in IPA database + explicitly specified " -"rules:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --" -"rules=myrule --rules=my-second-rule --disabled\n" -" ---------------------\n" -" Access granted: False\n" -" ---------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -"\n" -" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --enabled " -"--disabled\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -" Not matched rules: new-rule\n" -" Matched rules: allow_all\n" -"\n" -"\n" -"HBACTEST AND TRUSTED DOMAINS\n" -"\n" -"When an external trusted domain is configured in IPA, HBAC rules are also " -"applied\n" -"on users accessing IPA resources from the trusted domain. Trusted domain " -"users and\n" -"groups (and their SIDs) can be then assigned to external groups which can " -"be\n" -"members of POSIX groups in IPA which can be used in HBAC rules and thus " -"allowing\n" -"access to resources protected by the HBAC system.\n" -"\n" -"hbactest plugin is capable of testing access for both local IPA users and " -"users\n" -"from the trusted domains, either by a fully qualified user name or by user " -"SID.\n" -"Such user names need to have a trusted domain specified as a short name\n" -"(DOMAIN\\Administrator) or with a user principal name (UPN), " -"Administrator@ad.test.\n" -"\n" -"Please note that hbactest executed with a trusted domain user as --user " -"parameter\n" -"can be only run by members of \"trust admins\" group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" 1. Test if a user from a trusted domain specified by its shortname " -"matches any\n" -" rule:\n" -"\n" -" $ ipa hbactest --user 'DOMAIN\\Administrator' --host `hostname` --" -"service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 2. Test if a user from a trusted domain specified by its domain name " -"matches\n" -" any rule:\n" -"\n" -" $ ipa hbactest --user 'Administrator@domain.com' --host `hostname` --" -"service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 3. Test if a user from a trusted domain specified by its SID matches any " -"rule:\n" -"\n" -" $ ipa hbactest --user " -"S-1-5-21-3035198329-144811719-1378114514-500 --host `hostname` --" -"service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 4. Test if other user from a trusted domain specified by its SID matches " -"any rule:\n" -"\n" -" $ ipa hbactest --user " -"S-1-5-21-3035198329-144811719-1378114514-1203 --host `hostname` " -"--service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Not matched rules: can_login\n" -"\n" -" 5. Test if other user from a trusted domain specified by its shortname " -"matches\n" -" any rule:\n" -"\n" -" $ ipa hbactest --user 'DOMAIN\\Otheruser' --host `hostname` --service " -"sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Not matched rules: can_login\n" -msgstr "" -"\n" -"Імітація використання керування доступом на основі вузлів (HBAC)\n" -"\n" -"Правила HBAC керують тим, хто може отримувати доступ до певних служб на\n" -"певних вузлах.\n" -"Ви можете скористатися HBAC для керування тим, які користувачі або групи\n" -"на початковому вузлі можуть отримувати доступ до служби або групи служб\n" -"на вузлі призначення\n" -"\n" -"Оскільки застосування правил HBAC передбачає використання робочого\n" -"середовища, це додаток призначено для імітації обробки правил HBAC без\n" -"доступу до реального середовища\n" -"\n" -" Перевірити відповідність користувача з початкового вузла до служби на " -"іменованому\n" -" вузлі правилам уможливлення доступу.\n" -"\n" -" ipa hbactest --user= --host= --service=\n" -" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" -" [--sizelimit= ]\n" -"\n" -" --user, --host і --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 --host=bar --service=sshd --nodetail\n" -" --------------------\n" -" Надано доступ: Так\n" -" --------------------\n" -"\n" -" 3. Перевірити явно вказані правила HBAC:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --" -"rules=myrule --rules=my-second-rule\n" -" ---------------------\n" -" Надано доступ: Ні\n" -" ---------------------\n" -" невідповідне: my-second-rule\n" -" невідповідне: myrule\n" -"\n" -" 4. Використання всіх увімкнених правил HBAC у базі даних IPA + явно " -"вказаних правил:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --" -"rules=myrule --rules=my-second-rule\n" -" --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 --host=bar --service=sshd --disabled\n" -" ---------------------\n" -" Надано доступ: Ні\n" -" ---------------------\n" -" невідповідне: new-rule\n" -"\n" -" 6. Перевірка всіх вимкнених правил HBAC у базі даних IPA + явно вказані " -"правила:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --" -"rules=myrule --rules=my-second-rule --disabled\n" -" ---------------------\n" -" Надано доступ: Ні\n" -" ---------------------\n" -" невідповідне: my-second-rule\n" -" невідповідне: my-third-rule\n" -" невідповідне: myrule\n" -"\n" -" 7. Перевірка всіх (увімкнених і вимкнених) правил HBAC у базі даних " -"IPA:\n" -" $ ipa hbactest --user=a1a --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" -"\n" -"HBACTEST І ДОВІРЕНІ ДОМЕНИ\n" -"\n" -"Якщо у IPA налаштовано зовнішній довірений домен, правила HBAC також\n" -"застосовуються до користувачів, що отримують доступ до ресурсів IPA з\n" -"з довіреного домену. Після цього користувачі і групи довіреного домену\n" -"(на їхні SID) може бути прив’язано до зовнішніх груп, які можуть бути\n" -"учасниками груп POSIX у IPA. Такі прив’язки може бути використано у\n" -"правилах HBAC, отже уможливлення доступу до ресурсів, захищених системою\n" -"HBAC.\n" -"\n" -"Додаток hbactest здатен тестувати доступ як для локальних користувачів\n" -"IPA, так і користувачів з довірених доменів, як за повним іменем\n" -"користувача, так і за SID користувачів. У таких іменах користувачів\n" -"має бути вказано скорочено довірений домен (ДОМЕН\\Administrator) або\n" -"назву реєстраційного запису користувача (UPN), Administrator@ad.test.\n" -"\n" -"Будь ласка, зауважте, що виконувати hbactest з аргументом користувача\n" -"довіреного домену у параметрі --user можуть виконувати лише учасники\n" -"групи «trust admins».\n" -"\n" -"ПРИКЛАД:\n" -"\n" -" 1. Перевірити, чи відповідає користувач з довіреного домену,\n" -" вказаний за коротким іменем, якомусь правилу:\n" -"\n" -" $ ipa hbactest --user 'DOMAIN\\Administrator' --host `hostname` --" -"service sshd\n" -" --------------------\n" -" Надано доступ: Так\n" -" --------------------\n" -" Відповідні правила: allow_all\n" -" Відповідні правила: can_login\n" -"\n" -" 2. Перевірити, чи відповідає користувач з довіреного домену,\n" -" вказаний за назвою його домену, якомусь правилу:\n" -"\n" -" $ ipa hbactest --user 'Administrator@domain.com' --host `hostname` --" -"service sshd\n" -" --------------------\n" -" Надано доступ: Так\n" -" --------------------\n" -" Відповідні правила: allow_all\n" -" Невідповідні правила: can_login\n" -"\n" -" 3. Перевірити, чи відповідає користувач з довіреного домену\n" -" вказаний за SID, якомусь правилу:\n" -"\n" -" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n" -" --host `hostname` --service sshd\n" -" --------------------\n" -" Надано доступ: Так\n" -" --------------------\n" -" Відповідні правила: allow_all\n" -" Відповідні правила: can_login\n" -"\n" -" 4. Перевірити, чи відповідає інший користувач з довіреного домену,\n" -" вказаний за SID, якомусь правилу:\n" -"\n" -" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n" -" --host `hostname` --service sshd\n" -" --------------------\n" -" Надано доступ: Так\n" -" --------------------\n" -" Відповідні правила: allow_all\n" -" Відповідні правила: can_login\n" -"\n" -" 5. Перевірити, чи відповідає інший користувач з довіреного домену,\n" -" вказаний за коротким ім’ям, якомусь правилу:\n" -"\n" -" $ ipa hbactest --user 'DOMAIN\\Otheruser' --host `hostname` --service " -"sshd\n" -" --------------------\n" -" Надано доступ: Так\n" -" --------------------\n" -" Відповідні правила: allow_all\n" -" Невідповідні правила: can_login\n" - -msgid "" -"\n" -"Service Constrained Delegation\n" -"\n" -"Manage rules to allow constrained delegation of credentials so\n" -"that a service can impersonate a user when communicating with another\n" -"service without requiring the user to actually forward their TGT.\n" -"This makes for a much better method of delegating credentials as it\n" -"prevents exposure of the short term secret of the user.\n" -"\n" -"The naming convention is to append the word \"target\" or \"targets\" to\n" -"a matching rule name. This is not mandatory but helps conceptually\n" -"to associate rules and targets.\n" -"\n" -"A rule consists of two things:\n" -" - A list of targets the rule applies to\n" -" - A list of memberPrincipals that are allowed to delegate for\n" -" those targets\n" -"\n" -"A target consists of a list of principals that can be delegated.\n" -"\n" -"In English, a rule says that this principal can delegate as this\n" -"list of principals, as defined by these targets.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new constrained delegation rule:\n" -" ipa servicedelegationrule-add ftp-delegation\n" -"\n" -" Add a new constrained delegation target:\n" -" ipa servicedelegationtarget-add ftp-delegation-target\n" -"\n" -" Add a principal to the rule:\n" -" ipa servicedelegationrule-add-member --principals=ftp/ipa.example." -"com ftp-delegation\n" -"\n" -" Add our target to the rule:\n" -" ipa servicedelegationrule-add-target --servicedelegationtargets=ftp-" -"delegation-target ftp-delegation\n" -"\n" -" Add a principal to the target:\n" -" ipa servicedelegationtarget-add-member --principals=ldap/ipa.example." -"com ftp-delegation-target\n" -"\n" -" Display information about a named delegation rule and target:\n" -" ipa servicedelegationrule_show ftp-delegation\n" -" ipa servicedelegationtarget_show ftp-delegation-target\n" -"\n" -" Remove a constrained delegation:\n" -" ipa servicedelegationrule-del ftp-delegation-target\n" -" ipa servicedelegationtarget-del ftp-delegation\n" -"\n" -"In this example the ftp service can get a TGT for the ldap service on\n" -"the bound user's behalf.\n" -"\n" -"It is strongly discouraged to modify the delegations that ship with\n" -"IPA, ipa-http-delegation and its targets ipa-cifs-delegation-targets and\n" -"ipa-ldap-delegation-targets. Incorrect changes can remove the ability\n" -"to delegate, causing the framework to stop functioning.\n" -msgstr "" -"\n" -"Обмежене службами делегування\n" -"\n" -"Керування правилами, за допомогою яких можна обмежити делегування\n" -"реєстраційних даних так, що служба зможе виконувати персоніфікацію\n" -"користувача під час обміну даними з іншою службою без потреби для\n" -"користувача насправді переспрямовувати квиток для отримання квитка\n" -"(TGT). Так створюється значно кращий метод делегування реєстраційних\n" -"даних, оскільки він запобігає розкриттю короткотермінових ключів\n" -"доступу користувачів.\n" -"\n" -"Відповідно до угоди з іменування, до назви правила додається слово\n" -"\"target\" або \"targets\". Така схема назв не є обов’язковою, але вона\n" -"допомагає концептуально пов’язати правила та їхні призначення.\n" -"\n" -"Правило складається з двох компонентів:\n" -" - Списку цілей (призначень), яких стосується правило\n" -" - Списку memberPrincipals, яким дозволено делегування для\n" -" цих цілей\n" -"\n" -"Запис цілі складається зі списку реєстраційних записів, які можна\n" -"делегувати.\n" -"\n" -"Якщо простіше, правило стверджує, що певний реєстраційний запис\n" -"можна делегувати як вказаний список реєстраційних записів,\n" -"відповідно до визначеного списку цілей.\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Додати нове правило обмеженого делегування:\n" -" ipa servicedelegationrule-add ftp-delegation\n" -"\n" -" Додати нову ціль обмеженого делегування:\n" -" ipa servicedelegationtarget-add ftp-delegation-target\n" -"\n" -" Додати реєстраційний запис до правила:\n" -" ipa servicedelegationrule-add-member --principals=ftp/ipa.example." -"com ftp-delegation\n" -"\n" -" Додати нашу ціль до правила:\n" -" ipa servicedelegationrule-add-target --servicedelegationtargets=ftp-" -"delegation-target ftp-delegation\n" -"\n" -" Додати реєстраційний запис до цілі:\n" -" ipa servicedelegationtarget-add-member --principals=ldap/ipa.example." -"com ftp-delegation-target\n" -"\n" -" Показати дані щодо іменованого правила і цілі:\n" -" ipa servicedelegationrule_show ftp-delegation\n" -" ipa servicedelegationtarget_show ftp-delegation-target\n" -"\n" -" Вилучити обмежене делегування:\n" -" ipa servicedelegationrule-del ftp-delegation-target\n" -" ipa servicedelegationtarget-del ftp-delegation\n" -"\n" -"У цьому прикладі служба ftp може отримувати квиток для отримання квитка для\n" -"служби ldap від імені пов’язаного користувача.\n" -"\n" -"Ми наполегливо не рекомендуємо змінювати делегування, які постачаються з\n" -"IPA, ipa-http-delegation та його цілі ipa-cifs-delegation-targets і\n" -"ipa-ldap-delegation-targets. Некоректні зміни можуть усунути можливість\n" -"делегування, що спричинить непрацездатність усієї системи.\n" - -msgid "Allowed Target" -msgstr "Дозволена ціль" - -msgid "Create a new service delegation rule." -msgstr "Створити правило делегування служб." - -msgid "Add member to a named service delegation rule." -msgstr "Додати запис учасника до іменованого правила делегування служб." - -msgid "member principal" -msgstr "учасник «реєстраційний запис»" - -msgid "principal to add" -msgstr "реєстраційний запис для додавання" - -msgid "Add target to a named service delegation rule." -msgstr "Додати ціль до іменованого правила делегування служб." - -msgid "member service delegation target" -msgstr "учасник призначення делегування служб" - -msgid "service delegation targets to add" -msgstr "призначення делегування служб для додавання" - -msgid "Delete service delegation." -msgstr "Вилучити делегування служб." - -msgid "Search for service delegations rule." -msgstr "Шукати правило делегування служб." - -msgid "Results should contain primary key attribute only (\"delegation-name\")" -msgstr "" -"Результати мають містити лише атрибут основного ключа («delegation-name»)" - -msgid "Remove member from a named service delegation rule." -msgstr "Вилучити запис учасника із іменованого правила делегування служб." - -msgid "principal to remove" -msgstr "реєстраційний запис для вилучення" - -msgid "Remove target from a named service delegation rule." -msgstr "Вилучити ціль із іменованого правила делегування служб." - -msgid "service delegation targets to remove" -msgstr "призначення делегування служб для вилучення" - -msgid "Display information about a named service delegation rule." -msgstr "Показати дані щодо іменованого правила делегування служб." - -msgid "Create a new service delegation target." -msgstr "Створити ціль делегування служб." - -msgid "Add member to a named service delegation target." -msgstr "Додати запис учасника до іменованого призначення делегування служб." - -msgid "Delete service delegation target." -msgstr "Вилучити ціль делегування служб." - -msgid "Search for service delegation target." -msgstr "Шукати ціль делегування служб" - -msgid "Remove member from a named service delegation target." -msgstr "Вилучити запис учасника із іменованого призначення делегування служб." - -msgid "Display information about a named service delegation target." -msgstr "Показати дані щодо іменованого призначення делегування служб." - -msgid "roles to add" -msgstr "ролі для додавання" - -msgid "permissions" -msgstr "права доступу" - -msgid "roles to remove" -msgstr "ролі для вилучення" - -msgid "" -"\n" -"IPA certificate operations\n" -"\n" -"Implements a set of commands for managing server SSL certificates.\n" -"\n" -"Certificate requests exist in the form of a Certificate Signing Request " -"(CSR)\n" -"in PEM format.\n" -"\n" -"The dogtag CA uses just the CN value of the CSR and forces the rest of the\n" -"subject to values configured in the server.\n" -"\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" -"\n" -"In order to request a certificate:\n" -"\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add " -"it)\n" -"\n" -"SEARCHING:\n" -"\n" -"Certificates may be searched on by certificate subject, serial number,\n" -"revocation reason, validity dates and the issued date.\n" -"\n" -"When searching on dates the _from date does a >= search and the _to date\n" -"does a <= search. When combined these are done as an AND.\n" -"\n" -"Dates are treated as GMT to match the dates in the certificates.\n" -"\n" -"The date format is YYYY-mm-dd.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" -"\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" -"\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" -"\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" -"\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" -"\n" -" Search for certificates by hostname:\n" -" ipa cert-find --subject=ipaserver.example.com\n" -"\n" -" Search for revoked certificates by reason:\n" -" ipa cert-find --revocation-reason=5\n" -"\n" -" Search for certificates based on issuance date\n" -" ipa cert-find --issuedon-from=2013-02-01 --issuedon-to=2013-02-07\n" -"\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" -"\n" -"The following revocation reasons are supported:\n" -"\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" -"\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" -"\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" -msgstr "" -"\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" -"причиною відкликання, датами чинності та датою видання.\n" -"\n" -"Якщо пошук виконується за датою _від, використовується порівняння >=, а " -"якщо\n" -"виконується пошук _до дати — порівняння <=. Поєднання обох пошуків " -"призводить\n" -"до пошуку з логічним поєднанням ТА.\n" -"\n" -"Дати обробляються як дати за Гринвічем, відповідно до дат визначених у\n" -"сертифікатах.\n" -"\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" -" Пошук сертифікатів за назвою вузла:\n" -" ipa cert-find --subject=ipaserver.example.com\n" -"\n" -" Пошук відкликаних сертифікатів за причиною:\n" -" ipa cert-find --revocation-reason=5\n" -"\n" -" Пошук сертифікатів за датою видання\n" -" ipa cert-find --issuedon-from=2013-02-01 --issuedon-to=2013-02-07\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" - -msgid "Checks if any of the servers has the CA service enabled." -msgstr "Перевіряє, чи увімкнено на якомусь із серверів службу CA." - -msgid "Search for existing certificates." -msgstr "Шукати наявні сертифікати." - -msgid "Subject" -msgstr "Об’єкт" - -msgid "minimum serial number" -msgstr "мінімальний серійний номер" - -msgid "maximum serial number" -msgstr "максимальний серійний номер" - -msgid "match the common name exactly" -msgstr "повна відповідність загальній назві" - -msgid "Valid not after from this date (YYYY-mm-dd)" -msgstr "Чинний не пізніше, ніж з цієї дати (РРРР-мм-дд)" - -msgid "Valid not after to this date (YYYY-mm-dd)" -msgstr "Чинний не пізніше, ніж до цієї дати (РРРР-мм-дд)" - -msgid "Valid not before from this date (YYYY-mm-dd)" -msgstr "Чинний не раніше від цієї дати (РРРР-мм-дд)" - -msgid "Valid not before to this date (YYYY-mm-dd)" -msgstr "Чинний не раніше цієї дати (РРРР-мм-дд)" - -msgid "Issued on from this date (YYYY-mm-dd)" -msgstr "Видано з цієї дати (РРРР-мм-дд)" - -msgid "Issued on to this date (YYYY-mm-dd)" -msgstr "Видано до цієї дати (РРРР-мм-дд)" - -msgid "Revoked on from this date (YYYY-mm-dd)" -msgstr "Відкликано з цієї дати (РРРР-мм-дд)" - -msgid "Revoked on to this date (YYYY-mm-dd)" -msgstr "Відкликано до цієї дати (РРРР-мм-дд)" - -msgid "Maximum number of certs returned" -msgstr "Максимальна кількість сертифікатів у повернутому списку" - -msgid "Principal for this certificate (e.g. HTTP/test.example.com)" -msgstr "" -"Реєстраційний запис для цього сертифіката (наприклад HTTP/test.example.com)" - -msgid "Certificate Profile to use" -msgstr "Профіль сертифіката, яким слід скористатися" - -msgid "Domain name" -msgstr "Назва домену" - -msgid "Trusted domain partner" -msgstr "Партнер довіреного домену" - -msgid "Determine whether ipa-adtrust-install has been run on this system" -msgstr "Визначити, чи було запущено ipa-adtrust-install для цієї системи" - -msgid "" -"Determine whether Schema Compatibility plugin is configured to serve trusted " -"domain users and groups" -msgstr "" -"Визначити, чи налаштовано додаток сумісності схем (Schema Compatibility) на " -"обслуговування користувачів і груп довіреного домену" - -msgid "Determine whether ipa-adtrust-install has been run with sidgen task" -msgstr "Визначити, чи було запущено ipa-adtrust-install з завданням sidgen" - -msgid "Active Directory domain administrator's password" -msgstr "Пароль адміністратора домену Active Directory" - -msgid "" -"Type of trusted domain ID range, one of ipa-ad-trust-posix, ipa-ad-trust" -msgstr "" -"Тип діапазону ідентифікаторів довіреного домену, одне з таких значень: ipa-" -"ad-trust-posix, ipa-ad-trust" - -msgid "Two-way trust" -msgstr "Двобічна довіра" - -msgid "" -"Establish bi-directional trust. By default trust is inbound one-way only." -msgstr "Встановлено двобічну довіру. Типово, довіра є лише однобічною вхідною." - -msgid "Refresh list of the domains associated with the trust" -msgstr "Освіжити список доменів, пов’язаних з правилом довіри" - -msgid "Resolve security identifiers of users and groups in trusted domains" -msgstr "" -"Визначати ідентифікатори безпеки користувачів та груп у довірених доменах" - -msgid "Security Identifiers (SIDs)" -msgstr "Ідентифікатори безпеки (SID)" - -msgid "Allow access from the trusted domain" -msgstr "Дозволити доступ з довіреного домену" - -msgid "Remove information about the domain associated with the trust." -msgstr "Вилучити дані щодо домену, пов’язаного з цим правилом довіри." - -msgid "Disable use of IPA resources by the domain of the trust" -msgstr "Вимкнути використання ресурсів IPA доменом правила довіри" - -msgid "Allow use of IPA resources by the domain of the trust" -msgstr "Дозволити використання ресурсів IPA доменом правила довіри" - -msgid "Search domains of the trust" -msgstr "Шукати довірені домени" - -msgid "Results should contain primary key attribute only (\"domain\")" -msgstr "Результати мають містити лише атрибут основного ключа («domain»)" - -msgid "Modify trustdomain of the trust" -msgstr "Змінити значення довіреного домену (trustdomain) правила довіри" - -msgid "Maximum amount of time (seconds) for a search (-1 or 0 is unlimited)" -msgstr "" -"Максимальний проміжок часу (у секундах) для виконання однієї дії з пошуку " -"(-1 або 0 — без обмежень)" - -msgid "Maximum number of records to search (-1 or 0 is unlimited)" -msgstr "" -"Максимальна кількість записів результатів пошуку (-1 або 0 — без обмежень)" - -msgid "Default user authentication types" -msgstr "Типові типи розпізнавання користувачів" - -msgid "Default types of supported user authentication" -msgstr "Типові типи підтримуваного розпізнавання користувачів" - -msgid "" -"\n" -"Stageusers\n" -"\n" -"Manage stage user entries.\n" -"\n" -"Stage user entries are directly under the container: \"cn=stage users,\n" -"cn=accounts, cn=provisioning, SUFFIX\".\n" -"User can not authenticate with those entries (even if the entries\n" -"contain credentials) and are candidate to become Active entries.\n" -"\n" -"Active user entries are Posix users directly under the container: " -"\"cn=accounts, SUFFIX\".\n" -"User can authenticate with Active entries, at the condition they have\n" -"credentials\n" -"\n" -"Delete user entries are Posix users directly under the container: " -"\"cn=deleted users,\n" -"cn=accounts, cn=provisioning, SUFFIX\".\n" -"User can not authenticate with those entries (even if the entries contain " -"credentials)\n" -"\n" -"The stage user container contains entries\n" -" - created by 'stageuser-add' commands that are Posix users\n" -" - created by external provisioning system\n" -"\n" -"A valid stage user entry MUST:\n" -" - entry RDN is 'uid'\n" -" - ipaUniqueID is 'autogenerate'\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" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new stageuser:\n" -" ipa stageuser-add --first=Tim --last=User --password tuser1\n" -"\n" -" Add a stageuser from the Delete container\n" -" ipa stageuser-add --first=Tim --last=User --from-delete tuser1\n" -msgstr "" -"\n" -"Користувачі етапу\n" -"\n" -"Керування записами користувачів етапу.\n" -"\n" -"Записи користувачів етапу перебувають безпосередньо у контейнері:\n" -"\"cn=stage users, cn=accounts, cn=provisioning, SUFFIX\".\n" -"Користувач не може пройти розпізнавання за допомогою цих записів\n" -"(навіть якщо записи містять реєстраційні дані) і є кандидатами на\n" -"перетворення на активні записи.\n" -"\n" -"Записи активних користувачів є користувачами Posix, що перебувають\n" -"безпосередньо у контейнері: \"cn=accounts, SUFFIX\".\n" -"Користувач може пройти розпізнавання за допомогою активних записів,\n" -"якщо для них передбачено реєстраційні дані\n" -"\n" -"Вилучені записи користувачів є записами користувачів Posix, що\n" -"перебувають безпосередньо у контейнері: \"cn=deleted users,\n" -"cn=accounts, cn=provisioning, SUFFIX\".\n" -"Користувачі не можуть проходити розпізнавання за допомогою цих\n" -"записів (навіть якщо записи містять реєстраційні дані)\n" -"\n" -"Контейнер користувачів етапу містить записи\n" -" - створені командами 'stageuser-add', які є користувачами Posix\n" -" - створені зовнішньою системою забезпечення\n" -"\n" -"Коректний запис користувача етапу МАЄ відповідати таким вимогам:\n" -" - RDN запису має значення 'uid'\n" -" - ipaUniqueID має значення 'autogenerate'\n" -"\n" -"У IPA передбачено підтримку широкого діапазону форматів імен користувачів,\n" -"але слід зважати на різноманітні обмеження, які можуть стосуватися " -"середовища,\n" -"у якому ви працюєте. Наприклад, імена користувачів, що починаються з цифри,\n" -"або імена користувачів, довжина яких перевищує певну довжину, що може\n" -"призвести до проблем у деяких системах UNIX.\n" -"Для зміни формату, який дозволено інструментами IPA, скористайтеся командою\n" -"'ipa config-mod'.\n" -"\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Додати нового користувача етапу:\n" -" ipa stageuser-add --first=Tim --last=User --password tuser1\n" -"\n" -" Додати користувача етапу з контейнера Delete\n" -" ipa stageuser-add --first=Tim --last=User --from-delete tuser1\n" - -msgid "Activate a stage user." -msgstr "Активувати користувача етапу." - -msgid "Add a new stage user." -msgstr "Додати нового користувача етапу." - -msgid "Create Stage user in from a delete user" -msgstr "" -"Створити запис користувача етапу на основі вилученого запису користувача" - -msgid "Delete a stage user." -msgstr "Вилучити запис користувача етапу." - -msgid "Search for stage users." -msgstr "Шукати записи користувачів етапу." - -msgid "Search for stage users with these member of groups." -msgstr "Шукати користувачів етапу із вказаними групами участі." - -msgid "Search for stage users without these member of groups." -msgstr "Шукати користувачів етапу без вказаних груп участі." - -msgid "Search for stage users with these member of netgroups." -msgstr "Шукати користувачів етапу із вказаними мережевими групами участі." - -msgid "Search for stage users without these member of netgroups." -msgstr "Шукати користувачів етапу без вказаних мережевих груп участі." - -msgid "Search for stage users with these member of roles." -msgstr "Шукати користувачів етапу із вказаними ролями участі." - -msgid "Search for stage users without these member of roles." -msgstr "Шукати користувачів етапу без вказаних ролей участі." - -msgid "Search for stage users with these member of HBAC rules." -msgstr "Шукати користувачів етапу із цими правилами HBAC участі." - -msgid "Search for stage users without these member of HBAC rules." -msgstr "Шукати користувачів етапу без цих правил HBAC участі." - -msgid "Search for stage users with these member of sudo rules." -msgstr "Шукати користувачів етапу із цими правилами sudo участі." - -msgid "Search for stage users without these member of sudo rules." -msgstr "Шукати користувачів етапу без цих правил sudo участі." - -msgid "Modify a stage user." -msgstr "Змінити запис користувача етапу." - -msgid "Rename the stage user object" -msgstr "Перейменувати об’єкт користувача етапу" - -msgid "Display information about a stage user." -msgstr "Показати дані щодо користувача етапу." - -msgid "" -"\n" -"Topology\n" -"\n" -"Management of a replication topology at domain level 1.\n" -"\n" -"IPA server's data is stored in LDAP server in two suffixes:\n" -"* domain suffix, e.g., 'dc=example,dc=com', contains all domain related " -"data\n" -"* ca suffix, 'o=ipaca', is present only on server with CA installed. It\n" -" contains data for Certificate Server component\n" -"\n" -"Data stored on IPA servers is replicated to other IPA servers. The way it " -"is\n" -"replicated is defined by replication agreements. Replication agreements " -"needs\n" -"to be set for both suffixes separately. On domain level 0 they are managed\n" -"using ipa-replica-manage and ipa-csreplica-manage tools. With domain level " -"1\n" -"they are managed centrally using `ipa topology*` commands.\n" -"\n" -"Agreements are represented by topology segments. By default topology " -"segment\n" -"represents 2 replication agreements - one for each direction, e.g., A to B " -"and\n" -"B to A. Creation of unidirectional segments is not allowed.\n" -"\n" -"To verify that no server is disconnected in the topology of the given " -"suffix,\n" -"use:\n" -" ipa topologysuffix-verify $suffix\n" -"\n" -"\n" -"Examples:\n" -" Find all IPA servers:\n" -" ipa server-find\n" -"\n" -" Find all suffixes:\n" -" ipa topologysuffix-find\n" -"\n" -" Add topology segment to 'domain' suffix:\n" -" ipa topologysegment-add domain --left IPA_SERVER_A --right IPA_SERVER_B\n" -"\n" -" Add topology segment to 'ca' suffix:\n" -" ipa topologysegment-add ca --left IPA_SERVER_A --right IPA_SERVER_B\n" -"\n" -" List all topology segments in 'domain' suffix:\n" -" ipa topologysegment-find domain\n" -"\n" -" List all topology segments in 'ca' suffix:\n" -" ipa topologysegment-find ca\n" -"\n" -" Delete topology segment in 'domain' suffix:\n" -" ipa topologysegment-del domain segment_name\n" -"\n" -" Delete topology segment in 'ca' suffix:\n" -" ipa topologysegment-del ca segment_name\n" -"\n" -" Verify topology of 'domain' suffix:\n" -" ipa topologysuffix-verify domain\n" -"\n" -" Verify topology of 'ca' suffix:\n" -" ipa topologysuffix-verify ca\n" -msgstr "" -"\n" -"Топологія\n" -"\n" -"Керування топологією реплікації на домені рівня 1.\n" -"\n" -"Дані сервера IPA зберігаються на сервері LDAP у двох суфіксах:\n" -"* суфіксі домену, наприклад «dc=example,dc=com», тут містяться усі пов’язані " -"із доменом дані\n" -"* суфіксі ca, «o=ipaca», наявні лише на серверах із встановленим CA. Тут\n" -" містяться дані для компонента сервера сертифікатів.\n" -"\n" -"Дані, що зберігаються на серверах IPA, відтворюються на інших серверах IPA. " -"Спосіб\n" -"відтворення (реплікації) визначається угодами. Угоди реплікації потрібно\n" -"встановлювати для обох суфіксів окремо. На рівні домену 0 угодами керують\n" -"програми ipa-replica-manage та ipa-csreplica-manage. На рівні доменів 1\n" -"керування виконується централізовано за допомогою команд «ipa topology*».\n" -"\n" -"Угоди представляються сегментами топології. Типово, сегмент топології\n" -"представляється 2 угодами реплікації — по одній для кожного напрямку, " -"наприклад\n" -"від A до B і від B до A. Створення односпрямованих сегментів заборонене.\n" -"\n" -"Щоб перевірити, що жоден сервер не від’єднано у топології вказаного " -"суфікса,\n" -"скористайтеся такою командою:\n" -" ipa topologysuffix-verify $suffix\n" -"\n" -"\n" -"Приклади:\n" -" Знайти усі сервери IPA:\n" -" ipa server-find\n" -"\n" -" Знайти усі суфікси:\n" -" ipa topologysuffix-find\n" -"\n" -" Додати сегмент топології до суфікса «domain»:\n" -" ipa topologysegment-add domain --left IPA_SERVER_A --right IPA_SERVER_B\n" -"\n" -" Додати сегмент топології до суфікса «ca»:\n" -" ipa topologysegment-add ca --left IPA_SERVER_A --right IPA_SERVER_B\n" -"\n" -" Вивести список усіх сегментів топології у суфіксі «domain»:\n" -" ipa topologysegment-find domain\n" -"\n" -" Вивести список усіх сегментів топології у суфіксі «ca»:\n" -" ipa topologysegment-find ca\n" -"\n" -" Вилучити сегмент топології у суфіксі «domain»:\n" -" ipa topologysegment-del domain segment_name\n" -"\n" -" Вилучити сегмент топології у суфіксі «ca»:\n" -" ipa topologysegment-del ca segment_name\n" -"\n" -" Перевірити топологію суфікса «domain»:\n" -" ipa topologysuffix-verify domain\n" -"\n" -" Перевірити топологію суфікса «ca»:\n" -" ipa topologysuffix-verify ca\n" - -msgid "Managed LDAP suffix DN" -msgstr "DN керованого суфікса LDAP" - -msgid "Search for topology suffixes." -msgstr "Шукати суфікси топології." - -msgid "Add a manager to the user entry" -msgstr "Додати керування до запису користувача" - -msgid "Remove a manager to the user entry" -msgstr "Вилучити керування із запису користувача" - -msgid "Managed suffixes" -msgstr "Керовані суфікси" - -msgid "Check connection to remote IPA server." -msgstr "Перевірити з’єднання із віддаленим сервером IPA." - -msgid "Remote server name" -msgstr "Назва віддаленого сервера" - -msgid "Remote IPA server hostname" -msgstr "Назва вузла віддаленого сервера IPA" - -msgid "suffix" -msgstr "суфікс" - -msgid "Search for servers with these managed suffixes." -msgstr "Шукати сервери із цими керованими суфіксами." - -msgid "Search for servers without these managed suffixes." -msgstr "Шукати сервери без цих керованих суфіксів." - -msgid "Resolve a host name in DNS. (Deprecated)" -msgstr "Визначити назву вузла у DNS. (Застаріле)" - -msgid "Hostname (FQDN)" -msgstr "Назва вузла (FQDN)" - -msgid "Force DNS zone creation even if it will overlap with an existing zone." -msgstr "" -"Примусове створення зони DNS, навіть якщо вона перекриватиметься із наявною." - -msgid "" -"Force DNS zone creation even if nameserver is not resolvable. (Deprecated)" -msgstr "" -"Примусове створення зони DNS, навіть якщо адресу сервера назв не вдається " -"визначити. (застаріле)" - -msgid "Add a manager to the stage user entry" -msgstr "Додати керування до запису користувача етапу" - -msgid "Remove a manager to the stage user entry" -msgstr "Вилучити керування із запису користувача етапу" - -msgid "" -"\n" -"ID ranges\n" -"\n" -"Manage ID ranges used to map Posix IDs to SIDs and back.\n" -"\n" -"There are two type of ID ranges which are both handled by this utility:\n" -"\n" -" - the ID ranges of the local domain\n" -" - the ID ranges of trusted remote domains\n" -"\n" -"Both types have the following attributes in common:\n" -"\n" -" - base-id: the first ID of the Posix ID range\n" -" - range-size: the size of the range\n" -"\n" -"With those two attributes a range object can reserve the Posix IDs starting\n" -"with base-id up to but not including base-id+range-size exclusively.\n" -"\n" -"Additionally an ID range of the local domain may set\n" -" - rid-base: the first RID(*) of the corresponding RID range\n" -" - secondary-rid-base: first RID of the secondary RID range\n" -"\n" -"and an ID range of a trusted domain must set\n" -" - rid-base: the first RID of the corresponding RID range\n" -" - sid: domain SID of the trusted domain\n" -"\n" -"\n" -"\n" -"EXAMPLE: Add a new ID range for a trusted domain\n" -"\n" -"Since there might be more than one trusted domain the domain SID must be " -"given\n" -"while creating the ID range.\n" -"\n" -" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" -"base=0 --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" -"\n" -"This ID range is then used by the IPA server and the SSSD IPA provider to\n" -"assign Posix UIDs to users from the trusted domain.\n" -"\n" -"If e.g. a range for a trusted domain is configured with the following " -"values:\n" -" base-id = 1200000\n" -" range-size = 200000\n" -" rid-base = 0\n" -"the RIDs 0 to 199999 are mapped to the Posix ID from 1200000 to 13999999. " -"So\n" -"RID 1000 <-> Posix ID 1201000\n" -"\n" -"\n" -"\n" -"EXAMPLE: Add a new ID range for the local domain\n" -"\n" -"To create an ID range for the local domain it is not necessary to specify a\n" -"domain SID. But since it is possible that a user and a group can have the " -"same\n" -"value as Posix ID a second RID interval is needed to handle conflicts.\n" -"\n" -" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" -"base=1000 --secondary-rid-base=1000000 local_range\n" -"\n" -"The data from the ID ranges of the local domain are used by the IPA server\n" -"internally to assign SIDs to IPA users and groups. The SID will then be " -"stored\n" -"in the user or group objects.\n" -"\n" -"If e.g. the ID range for the local domain is configured with the values " -"from\n" -"the example above then a new user with the UID 1200007 will get the RID " -"1007.\n" -"If this RID is already used by a group the RID will be 1000007. This can " -"only\n" -"happen if a user or a group object was created with a fixed ID because the\n" -"automatic assignment will not assign the same ID twice. Since there are " -"only\n" -"users and groups sharing the same ID namespace it is sufficient to have " -"only\n" -"one fallback range to handle conflicts.\n" -"\n" -"To find the Posix ID for a given RID from the local domain it has to be\n" -"checked first if the RID falls in the primary or secondary RID range and\n" -"the rid-base or the secondary-rid-base has to be subtracted, respectively,\n" -"and the base-id has to be added to get the Posix ID.\n" -"\n" -"Typically the creation of ID ranges happens behind the scenes and this CLI\n" -"must not be used at all. The ID range for the local domain will be created\n" -"during installation or upgrade from an older version. The ID range for a\n" -"trusted domain will be created together with the trust by 'ipa trust-" -"add ...'.\n" -"\n" -"USE CASES:\n" -"\n" -" Add an ID range from a transitively trusted domain\n" -"\n" -" If the trusted domain (A) trusts another domain (B) as well and this " -"trust\n" -" is transitive 'ipa trust-add domain-A' will only create a range for\n" -" domain A. The ID range for domain B must be added manually.\n" -"\n" -" Add an additional ID range for the local domain\n" -"\n" -" If the ID range of the local domain is exhausted, i.e. no new IDs can " -"be\n" -" assigned to Posix users or groups by the DNA plugin, a new range has to " -"be\n" -" created to allow new users and groups to be added. (Currently there is " -"no\n" -" connection between this range CLI and the DNA plugin, but a future " -"version\n" -" might be able to modify the configuration of the DNS plugin as well)\n" -"\n" -"In general it is not necessary to modify or delete ID ranges. If there is " -"no\n" -"other way to achieve a certain configuration than to modify or delete an ID\n" -"range it should be done with great care. Because UIDs are stored in the " -"file\n" -"system and are used for access control it might be possible that users are\n" -"allowed to access files of other users if an ID range got deleted and " -"reused\n" -"for a different domain.\n" -"\n" -"(*) The RID is typically the last integer of a user or group SID which " -"follows\n" -"the domain SID. E.g. if the domain SID is S-1-5-21-123-456-789 and a user " -"from\n" -"this domain has the SID S-1-5-21-123-456-789-1010 then 1010 id the RID of " -"the\n" -"user. RIDs are unique in a domain, 32bit values and are used for users and\n" -"groups.\n" -"\n" -"WARNING:\n" -"\n" -"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " -"the\n" -"local domain. Currently the DNA plugin *cannot* be reconfigured itself " -"based\n" -"on the local ranges set via this family of commands.\n" -"\n" -"Manual configuration change has to be done in the DNA plugin configuration " -"for\n" -"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" -"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " -"be\n" -"modified to match the new range.\n" -msgstr "" -"\n" -"Діапазони ідентифікаторів\n" -"\n" -"Керування діапазонами ідентифікаторів, використаних для відображення\n" -"ідентифікаторів POSIX на SID, і навпаки.\n" -"\n" -"За допомогою цієї програми можна керувати обома типами діапазонів " -"ідентифікаторів:\n" -"\n" -" - діапазони ідентифікаторів локального домену\n" -" - діапазони ідентифікаторів довірених віддалених доменів\n" -"\n" -"Обидва типи мають такі спільні атрибути:\n" -"\n" -" - base-id: перший ідентифікатор діапазону ідентифікаторів POSIX\n" -" - range-size: розмір діапазону\n" -"\n" -"На основі цих двох атрибутів об’єкт діапазону може зарезервувати " -"ідентифікатори\n" -"POSIX, починаючи з base-id аж до, але не включно, base-id+range-size.\n" -"\n" -"Крім того, можна встановити діапазон ідентифікаторів локального домену\n" -" - rid-base: перший RID(*) відповідного діапазону RID\n" -" - secondary-rid-base: перший RID вторинного діапазону RID\n" -"\n" -"а діапазон ідентифікаторів довіреного домену слід задавати за допомогою\n" -" - rid-base: перший RID відповідного діапазону RID\n" -" - dom_sid: SID довіреного домену\n" -"\n" -"\n" -"\n" -"ПРИКЛАД: додавання нового діапазону ідентифікаторів для довіреного домену\n" -"\n" -"Оскільки може бути декілька довірених доменів, під час створення діапазону\n" -"ідентифікаторів слід вказати SID домену.\n" -"\n" -" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-base=0 \\\n" -" --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" -"\n" -"Цей діапазон ідентифікаторів потім використовуватиметься сервером IPA\n" -"та надавачем даних IPA SSSD для призначення UID Posix користувачам з\n" -"довіреного домену.\n" -"\n" -"Якщо, наприклад, налаштовано діапазон для довіреного домену з такими\n" -"значеннями:\n" -" base-id = 1200000\n" -" range-size = 200000\n" -" rid-base = 0\n" -"RID від 0 до 199999 прив’язуються до ідентифікаторів Posix від 1200000 до\n" -"13999999. Отже RID 1000 <-> Posix ID 1201000\n" -"\n" -"\n" -"\n" -"ПРИКЛАД: додавання нового діапазону ідентифікаторів до локального домену\n" -"\n" -"Щоб створити діапазон ідентифікаторів для локального домену не потрібно\n" -"вказувати SID домену. Але оскільки можливий конфлікт між ідентифікаторами\n" -"користувача і групи та ідентифікаторами POSIX, потрібен вторинний інтервал\n" -"RID.\n" -"\n" -" ipa range-add --base-id=1200000 --range-size=200000 --rid-base=1000 \\\n" -" --secondary-rid-base=1000000 local_range\n" -"\n" -"Дані з діапазонів ідентифікаторів локального домену використовуються\n" -"сервером IPA на внутрішньому рівні для призначення SID користувачам і " -"групам\n" -"IPA. SID буде збережено у об’єктах користувача або групи.\n" -"\n" -"Якщо, наприклад, для діапазону ідентифікаторів локального домену визначено\n" -"значення з наведеного вище прикладу, новий користувач з UID 1200007 отримає\n" -"RID 1007. Якщо цей RID вже буде використано групою, його буде змінено на " -"1000007.\n" -"Таке може трапитися лише, якщо об’єкт користувача або групи було створено з\n" -"фіксованим ідентифікатором, оскільки у разі автоматичного призначення один\n" -"ідентифікатор не може бути призначено двічі. Оскільки спільний простір назв\n" -"є лише у користувачів і груп, достатньо одного резервного діапазону для\n" -"того, щоб повністю позбутися конфліктів.\n" -"\n" -"Для визначення ідентифікатора POSIX за вказаним RID з локального домену " -"слід\n" -"спочатку перевірити, чи потрапляє RID у основний або вторинний діапазон " -"RID,\n" -"також, щоб отримати ідентифікатор POSIX, слід відняти від ідентифікатор rid-" -"base\n" -"або secondary-rid-base, відповідно, і додати base-id.\n" -"\n" -"Типово, створення діапазонів ідентифікаторів є зовні непомітним і потреби у\n" -"цьому інтерфейсі командного рядка не виникає. Діапазон ідентифікаторів\n" -"для локального домену буде створено під час встановлення або оновлення\n" -"попередньої версії. Діапазон ідентифікаторів для довіреного домену буде\n" -"створено разом з записом довіри командою «ipa trust-add ...».\n" -"Нижче наведено можливі випадки використання цього командного інтерфейсу.\n" -"\n" -"ВИПАДКИ ВИКОРИСТАННЯ:\n" -"\n" -" Додавання діапазону ідентифікаторів з перехідного довіреного домену\n" -"\n" -" Якщо довірений домен (A) довіряється іншому домену (B) і цей запис\n" -" довіри є перехідним, «ipa trust-add домен-A» створить лише діапазон\n" -" для домену A. Діапазон ідентифікаторів домену B має бути додано вручну.\n" -"\n" -" Додавання додаткового діапазону ідентифікаторів для локального домену\n" -"\n" -" Якщо діапазон ідентифікаторів локального домену вичерпано, тобто " -"додатком\n" -" DNA не може бути призначено нові ідентифікатори користувачам або групам\n" -" POSIX, має бути створено новий діапазон для додавання нових " -"користувачів\n" -" та груп. (У поточній версії між цим командним інтерфейсом і додатком " -"DNA\n" -" немає безпосереднього зв’язку, але у майбутній версії може бути " -"передбачено\n" -" можливість внесення змін і до налаштувань додатка DNS.)\n" -"\n" -"Загалом, потреби у зміні або вилученні діапазонів ідентифікаторів немає.\n" -"Якщо немає іншого виходу, окрім внесення змін або вилучення діапазону\n" -"ідентифікаторів, робити це слід дуже обережно. Оскільки UID зберігаються у\n" -"файловій системі і використовуються для керування доступом, можлива " -"ситуація,\n" -"коли одні користувачі отримуватимуть доступ до файлів інших користувачів\n" -"у разі вилучення діапазону ідентифікаторів і повторного його використання\n" -"у іншому домені.\n" -"\n" -"(*) RID типово є останнім цілим числом SID користувача або групи, перед " -"якими\n" -"має бути вказано SID домену. Наприклад, якщо SID домену " -"S-1-5-21-123-456-789, а\n" -"користувач з цього домену має SID S-1-5-21-123-456-789-1010, RID " -"користувача\n" -"буде 1010. RID є унікальними в межах домену, є 32-бітовими значенням і\n" -"використовуються для користувачів і груп.\n" -"\n" -"ПОПЕРЕДЖЕННЯ:\n" -"\n" -"Додаток DNA у 389-ds розміщуватиме ідентифікатори на основі діапазонів\n" -"налаштованих для локального домену. У поточній версії додаток DNA *не " -"можна*\n" -"переналаштовувати самостійно на основі локальних діапазонів, встановлених\n" -"за допомогою цього сімейства команд.\n" -"\n" -"Зміни налаштувань вручну має бути виконано у налаштуваннях додатка DNA\n" -"для локального діапазону. Зокрема слід змінити атрибут dnaNextRange " -"«cn=Posix\n" -"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config» так, щоб\n" -"він відповідав новому діапазону.\n" +msgid "jinja2 is not installed." +msgstr "jinja2 не встановлено." msgid "" "\n" -"Add new ID range.\n" -"\n" -" To add a new ID range you always have to specify\n" -"\n" -" --base-id\n" -" --range-size\n" -"\n" -" Additionally\n" -"\n" -" --rid-base\n" -" --secondary-rid-base\n" -"\n" -" may be given for a new ID range for the local domain while\n" -"\n" -" --rid-base\n" -" --dom-sid\n" -"\n" -" must be given to add a new range for a trusted AD domain.\n" -"\n" -" WARNING:\n" -"\n" -" DNA plugin in 389-ds will allocate IDs based on the ranges configured " -"for the\n" -" local domain. Currently the DNA plugin *cannot* be reconfigured itself " -"based\n" -" on the local ranges set via this family of commands.\n" -"\n" -" Manual configuration change has to be done in the DNA plugin " -"configuration for\n" -" the new local range. Specifically, The dnaNextRange attribute of " -"'cn=Posix\n" -" IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has " -"to be\n" -" modified to match the new range.\n" -" " +"Commands to build certificate requests automatically\n" msgstr "" "\n" -" Додати новий діапазон ідентифікаторів.\n" -"\n" -" Для додавання нового діапазону ідентифікаторів вам слід завжди " -"вказувати\n" -"\n" -" --base-id\n" -" --range-size\n" -"\n" -" Крім того, може бути надано\n" -"\n" -" --rid-base\n" -" --econdary-rid-base\n" -"\n" -" для додавання нового діапазону ідентифікаторів для локального домену і\n" -"\n" -" --rid-base\n" -" --dom-sid\n" -"\n" -" для додавання нового діапазону для довіреного домену AD.\n" -"\n" -" ПОПЕРЕДЖЕННЯ:\n" -"\n" -" Додаток DNA у 389-ds визначатиме ідентифікатори у діапазонах, " -"налаштованих\n" -" для локального домену. У поточній версії додаток DNA *не може* змінити\n" -" власні налаштування на основі локальних діапазонів, встановлених за\n" -" допомогою цього сімейства команд.\n" -"\n" -" Для внесення змін щодо локального діапазону слід змінити налаштування\n" -" додатка DNA вручну. Зокрема, слід внести зміни до атрибута 'cn=Posix\n" -" IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' " -"відповідно\n" -" до параметрів нового діапазону.\n" -" " - -msgid "" -"Applies ID View to specified hosts or current members of specified " -"hostgroups. If any other ID View is applied to the host, it is overriden." -msgstr "" -"Застосовує перегляд ідентифікаторів до вказаних вузлів або поточних " -"учасників вказаних груп вузлів. Якщо до вузла застосовується якийсь інший " -"перегляд ідентифікаторів, його буде перевизначено." - -msgid "Raw DNSKEY records" -msgstr "Прості записи DNSKEY" +"Команди для автоматичної побудови запитів щодо сертифікації\n" -msgid "Raw NSEC3 records" -msgstr "Прості записи NSEC3" - -msgid "Raw TA records" -msgstr "Прості записи TA" - -msgid "Raw TKEY records" -msgstr "Прості записи TKEY" - -msgid "Raw TSIG records" -msgstr "Прості записи TSIG" - -msgid "" -"\n" -"Routines for constructing certificate signing requests using IPA data and\n" -"stored templates.\n" -msgstr "" -"\n" -"Процедури для побудови запитів щодо підписування сертифікатів за допомогою " -"даних IPA та\n" -"збережених шаблонів.\n" +msgid "Gather data for a certificate signing request." +msgstr "Зібрати дані для запиту щодо підписування сертифіката." -#, python-format -msgid "Required CSR generation rule %(name)s is missing data" -msgstr "У обов’язковому правилі створення CSR, %(name)s, не вистачає даних" +msgid "CSR Generation Profile to use" +msgstr "Профіль створення CSR, яким слід скористатися" -msgid "Template error when formatting certificate data" -msgstr "Помилка шаблона під час форматування даних сертифіката" +msgid "Subject Public Key Info" +msgstr "Дані щодо відкритого ключа суб’єкта" -#, python-format -msgid "No generation rule %(rulename)s found." -msgstr "Не знайдено правила створення %(rulename)s." +msgid "DER-encoded SubjectPublicKeyInfo structure" +msgstr "Структура SubjectPublicKeyInfo у кодуванні DER" -#, python-format -msgid "Generation rule \"%(rulename)s\" is missing the \"rule\" key" -msgstr "У правилі створення «%(rulename)s» немає ключа «rule»" +msgid "Write CertificationRequestInfo to file" +msgstr "Записати CertificationRequestInfo до файла" -#, python-format -msgid "No CSR generation rules are defined for profile %(profile_id)s" -msgstr "Для профілю %(profile_id)s не визначено правил створення CSR" +msgid "CertificationRequestInfo structure" +msgstr "Структура CertificationRequestInfo" -#, python-format -msgid "Certificate(s) stored in file '%(file)s'" -msgstr "Сертифікати, що зберігаються у файлі «%(file)s»" +msgid "The principal for this request doesn't exist." +msgstr "Реєстраційного запису для цього запиту не існує." #, python-format msgid "Enabled Sudo Rule \"%s\"" @@ -16905,6 +16099,15 @@ msgstr "До правила sudo «%(rule)s» додано параметр «%( msgid "Removed option \"%(option)s\" from Sudo Rule \"%(rule)s\"" msgstr "З правила sudo «%(rule)s» вилучено параметр «%(option)s»" +msgid "Write certificate (chain if --chain used) to file" +msgstr "" +"Записати сертифікат (ланцюжок сертифікації, якщо використано --chain) до " +"файла" + +#, python-format +msgid "Certificate(s) stored in file '%(file)s'" +msgstr "Сертифікати, що зберігаються у файлі «%(file)s»" + msgid "Input file" msgstr "Вхідний файл" @@ -16914,10 +16117,49 @@ msgstr "Файл, з якого слід завантажити сертифік msgid "cannot specify both raw certificate and file" msgstr "не можна одночасно вказувати код сертифіката і файл із сертифікатом" -msgid "Write certificate (chain if --chain used) to file" +#, python-format +msgid "Profile configuration stored in file '%(file)s'" +msgstr "Налаштування профілів збережено до файла «%(file)s»" + +msgid "" +"Unable to display QR code using the configured output encoding. Please use " +"the token URI to configure your OTP device" msgstr "" -"Записати сертифікат (ланцюжок сертифікації, якщо використано --chain) до " -"файла" +"Неможливо показати код QR за допомогою налаштованого кодування виведення " +"результатів. Будь ласка, скористайтеся адресою ключа для налаштовування " +"вашого пристрою OTP" + +msgid "" +"QR code width is greater than that of the output tty. Please resize your " +"terminal." +msgstr "" +"QR code width is greater than that of the output tty. Please resize your " +"terminal." + +msgid "Synchronize an OTP token." +msgstr "Синхронізувати жетон OTP." + +msgid "User ID" +msgstr "Ід. користувача" + +msgid "First Code" +msgstr "Перший код" + +msgid "Second Code" +msgstr "Другий код" + +msgid "Token ID" +msgstr "Ідентифікатор жетона" + +msgid "Failed to add" +msgstr "Не вдалося додати" + +msgid "Servers details:" +msgstr "Параметри сервера:" + +#, python-format +msgid "Removing %(servers)s from replication topology, please wait..." +msgstr "Вилучаємо %(servers)s з топології реплікації, будь ласка, зачекайте…" msgid "" "Migration mode is disabled.\n" @@ -16940,6 +16182,107 @@ msgstr "" "https://your.domain/ipa/migration/ до того, як вони зможуть\n" "скористатися обліковими записами Kerberos." +msgid "Delete a user, keeping the entry available for future use" +msgstr "Вилучити користувача, зберігаючи запис для наступного використання" + +msgid "Delete a user" +msgstr "Вилучити користувача" + +msgid "preserve and no-preserve cannot be both set" +msgstr "" +"не можна одночасно встановлювати ознаку зарезервованості та " +"незарезервованості" + +#, python-format +msgid "Replication topology of suffix \"%(suffix)s\" is in order." +msgstr "Топологія реплікації суфікса «%(suffix)s» у порядку." + +#, python-format +msgid "Replication topology of suffix \"%(suffix)s\" contains errors." +msgstr "Топологія реплікації суфікса «%(suffix)s» містить помилки." + +msgid "Topology is disconnected" +msgstr "Топологію від’єднано" + +#, python-format +msgid "Server %(srv)s can't contact servers: %(replicas)s" +msgstr "Сервер %(srv)s не може встановити зв’язок із серверами: %(replicas)s" + +msgid "Recommended maximum number of agreements per replica exceeded" +msgstr "Перевищено рекомендовану максимальну кількість узгоджень на репліку" + +msgid "Maximum number of agreements per replica" +msgstr "Максимальна кількість узгоджень на репліку" + +#, python-format +msgid "Server \"%(srv)s\" has %(n)d agreements with servers:" +msgstr "Сервер «%(srv)s» має %(n)d узгоджень із такими серверами:" + +msgid "maps not connected to /etc/auto.master:" +msgstr "карти, не з’єднані з /etc/auto.master:" + +msgid "Import automount files for a specific location." +msgstr "Імпортувати файли automount для певної адреси." + +msgid "Master file" +msgstr "Основний файл" + +msgid "Automount master file." +msgstr "Основний файл automount." + +msgid "" +"Continuous operation mode. Errors are reported but the process continues." +msgstr "" +"Режим неперервної обробки. Програма повідомляє про помилки, але продовжує " +"обробку." + +#, python-format +msgid "File %(file)s not found" +msgstr "Файла %(file)s не знайдено" + +#, python-format +msgid "key %(key)s already exists" +msgstr "запис ключа %(key)s вже існує" + +#, python-format +msgid "map %(map)s already exists" +msgstr "запис карти %(map)s вже існує" + +msgid "Imported maps:" +msgstr "Імпортовані карти:" + +#, python-format +msgid "Added %(map)s" +msgstr "Додано %(map)s" + +msgid "Imported keys:" +msgstr "Імпортовані ключі:" + +#, python-format +msgid "Added %(src)s to %(dst)s" +msgstr "Додано %(src)s до %(dst)s" + +msgid "Ignored keys:" +msgstr "Проігноровані ключі:" + +#, python-format +msgid "Ignored %(src)s to %(dst)s" +msgstr "Проігноровано %(src)s до %(dst)s" + +msgid "Duplicate maps skipped:" +msgstr "Пропущені дублікати карт:" + +#, python-format +msgid "Skipped %(map)s" +msgstr "Пропущено %(map)s" + +msgid "Duplicate keys skipped:" +msgstr "Пропущені дублікати ключів:" + +#, python-format +msgid "Skipped %(key)s" +msgstr "Пропущено %(key)s" + #, python-format msgid "Cannot read file '%(filename)s': %(exc)s" msgstr "Не вдалося прочитати файл «%(filename)s»: %(exc)s" @@ -17061,233 +16404,41 @@ msgstr "Закритий ключ вказано декілька разів" msgid "Missing vault private key" msgstr "Не вказано закритого ключа сховища" -msgid "Failed to add" -msgstr "Не вдалося додати" +msgid "Path to NSS database" +msgstr "Шлях до бази даних NSS" -#, python-format -msgid "Replication topology of suffix \"%(suffix)s\" is in order." -msgstr "Топологія реплікації суфікса «%(suffix)s» у порядку." +msgid "Path to NSS database to use for private key" +msgstr "Шлях до бази даних NSS, яку слід використовувати для закритого ключа" -#, python-format -msgid "Replication topology of suffix \"%(suffix)s\" contains errors." -msgstr "Топологія реплікації суфікса «%(suffix)s» містить помилки." +msgid "Path to private key file" +msgstr "Шлях до файла закритого ключа" -msgid "Topology is disconnected" -msgstr "Топологію від’єднано" +msgid "Path to PEM file containing a private key" +msgstr "Шлях до файла PEM, який містить закритий ключ" -#, python-format -msgid "Server %(srv)s can't contact servers: %(replicas)s" -msgstr "Сервер %(srv)s не може встановити зв’язок із серверами: %(replicas)s" +msgid "File containing a password for the private key or database" +msgstr "Файл, що містить пароль до закритого ключа або бази даних" -msgid "Recommended maximum number of agreements per replica exceeded" -msgstr "Перевищено рекомендовану максимальну кількість узгоджень на репліку" +msgid "Name of CSR generation profile (if not the same as profile_id)" +msgstr "Назва профілю створення CSR (якщо не та сама, що і profile_id)" -msgid "Maximum number of agreements per replica" -msgstr "Максимальна кількість узгоджень на репліку" +msgid "Generated CSR was empty" +msgstr "Створений CSR виявився порожнім" -#, python-format -msgid "Server \"%(srv)s\" has %(n)d agreements with servers:" -msgstr "Сервер «%(srv)s» має %(n)d узгоджень із такими серверами:" +msgid "Options 'database' and 'private_key' are not compatible with 'csr'" +msgstr "Параметри «database» і «private_key» є несумісними з «csr»" -msgid "maps not connected to /etc/auto.master:" -msgstr "карти, не з’єднані з /etc/auto.master:" +msgid "Unrevoked" +msgstr "Відкликання скасовано" -msgid "Import automount files for a specific location." -msgstr "Імпортувати файли automount для певної адреси." +msgid "Error" +msgstr "Помилка" -msgid "Master file" -msgstr "Основний файл" +msgid "Input filename" +msgstr "Назва вхідного файла" -msgid "Automount master file." -msgstr "Основний файл automount." - -msgid "" -"Continuous operation mode. Errors are reported but the process continues." -msgstr "" -"Режим неперервної обробки. Програма повідомляє про помилки, але продовжує " -"обробку." - -#, python-format -msgid "File %(file)s not found" -msgstr "Файла %(file)s не знайдено" - -#, python-format -msgid "key %(key)s already exists" -msgstr "запис ключа %(key)s вже існує" - -#, python-format -msgid "map %(map)s already exists" -msgstr "запис карти %(map)s вже існує" - -msgid "Imported maps:" -msgstr "Імпортовані карти:" - -#, python-format -msgid "Added %(map)s" -msgstr "Додано %(map)s" - -msgid "Imported keys:" -msgstr "Імпортовані ключі:" - -#, python-format -msgid "Added %(src)s to %(dst)s" -msgstr "Додано %(src)s до %(dst)s" - -msgid "Ignored keys:" -msgstr "Проігноровані ключі:" - -#, python-format -msgid "Ignored %(src)s to %(dst)s" -msgstr "Проігноровано %(src)s до %(dst)s" - -msgid "Duplicate maps skipped:" -msgstr "Пропущені дублікати карт:" - -#, python-format -msgid "Skipped %(map)s" -msgstr "Пропущено %(map)s" - -msgid "Duplicate keys skipped:" -msgstr "Пропущені дублікати ключів:" - -#, python-format -msgid "Skipped %(key)s" -msgstr "Пропущено %(key)s" - -msgid "python-yubico is not installed." -msgstr "python-yubico не встановлено." - -msgid "" -"\n" -"YubiKey Tokens\n" -msgstr "" -"\n" -"Жетони YubiKey\n" - -msgid "" -"\n" -"Manage YubiKey tokens.\n" -msgstr "" -"\n" -"Керування жетонами YubiKey.\n" - -msgid "" -"\n" -"This code is an extension to the otptoken plugin and provides support for\n" -"reading/writing YubiKey tokens directly.\n" -msgstr "" -"\n" -"Цей код є розширенням до додатка otptoken, він надає підтримку " -"безпосереднього\n" -"читання та запису жетонів YubiKey.\n" - -msgid "" -"\n" -"EXAMPLES:\n" -msgstr "" -"\n" -"ПРИКЛАДИ:\n" - -msgid "" -"\n" -" Add a new token:\n" -" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" -msgstr "" -"\n" -" Додати новий жетон:\n" -" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" - -msgid "Add a new YubiKey OTP token." -msgstr "Додати новий жетон OTP YubiKey." - -msgid "YubiKey slot" -msgstr "Слот YubiKey" - -msgid "No free YubiKey slot!" -msgstr "Немає вільних слотів YubiKey!" - -msgid "jinja2 is not installed." -msgstr "jinja2 не встановлено." - -msgid "" -"\n" -"Commands to build certificate requests automatically\n" -msgstr "" -"\n" -"Команди для автоматичної побудови запитів щодо сертифікації\n" - -msgid "Gather data for a certificate signing request." -msgstr "Зібрати дані для запиту щодо підписування сертифіката." - -msgid "CSR Generation Profile to use" -msgstr "Профіль створення CSR, яким слід скористатися" - -msgid "Subject Public Key Info" -msgstr "Дані щодо відкритого ключа суб’єкта" - -msgid "DER-encoded SubjectPublicKeyInfo structure" -msgstr "Структура SubjectPublicKeyInfo у кодуванні DER" - -msgid "Write CertificationRequestInfo to file" -msgstr "Записати CertificationRequestInfo до файла" - -msgid "CertificationRequestInfo structure" -msgstr "Структура CertificationRequestInfo" - -msgid "The principal for this request doesn't exist." -msgstr "Реєстраційного запису для цього запиту не існує." - -msgid "Delete a user, keeping the entry available for future use" -msgstr "Вилучити користувача, зберігаючи запис для наступного використання" - -msgid "Delete a user" -msgstr "Вилучити користувача" - -msgid "preserve and no-preserve cannot be both set" -msgstr "" -"не можна одночасно встановлювати ознаку зарезервованості та " -"незарезервованості" - -#, python-format -msgid "Removing %(servers)s from replication topology, please wait..." -msgstr "Вилучаємо %(servers)s з топології реплікації, будь ласка, зачекайте…" - -msgid "Servers details:" -msgstr "Параметри сервера:" - -#, python-format -msgid "Profile configuration stored in file '%(file)s'" -msgstr "Налаштування профілів збережено до файла «%(file)s»" - -msgid "" -"Unable to display QR code using the configured output encoding. Please use " -"the token URI to configure your OTP device" -msgstr "" -"Неможливо показати код QR за допомогою налаштованого кодування виведення " -"результатів. Будь ласка, скористайтеся адресою ключа для налаштовування " -"вашого пристрою OTP" - -msgid "" -"QR code width is greater than that of the output tty. Please resize your " -"terminal." -msgstr "" -"QR code width is greater than that of the output tty. Please resize your " -"terminal." - -msgid "Synchronize an OTP token." -msgstr "Синхронізувати жетон OTP." - -msgid "User ID" -msgstr "Ід. користувача" - -msgid "First Code" -msgstr "Перший код" - -msgid "Second Code" -msgstr "Другий код" - -msgid "Token ID" -msgstr "Ідентифікатор жетона" +msgid "File to load the certificate from." +msgstr "Файл, з якого слід завантажити сертифікат." msgid "Please choose a type of DNS resource record to be added" msgstr "Будь ласка, виберіть тип запису ресурсу DNS, який слід додати" @@ -17359,114 +16510,61 @@ msgstr "Переспрямовувач DNS" msgid "file to store DNS records in nsupdate format" msgstr "файл для зберігання записів DNS у форматі nsupdate" -msgid "Path to NSS database" -msgstr "Шлях до бази даних NSS" +msgid "python-yubico is not installed." +msgstr "python-yubico не встановлено." -msgid "Path to NSS database to use for private key" -msgstr "Шлях до бази даних NSS, яку слід використовувати для закритого ключа" +msgid "" +"\n" +"YubiKey Tokens\n" +msgstr "" +"\n" +"Жетони YubiKey\n" -msgid "Path to private key file" -msgstr "Шлях до файла закритого ключа" +msgid "" +"\n" +"Manage YubiKey tokens.\n" +msgstr "" +"\n" +"Керування жетонами YubiKey.\n" -msgid "Path to PEM file containing a private key" -msgstr "Шлях до файла PEM, який містить закритий ключ" +msgid "" +"\n" +"This code is an extension to the otptoken plugin and provides support for\n" +"reading/writing YubiKey tokens directly.\n" +msgstr "" +"\n" +"Цей код є розширенням до додатка otptoken, він надає підтримку " +"безпосереднього\n" +"читання та запису жетонів YubiKey.\n" -msgid "File containing a password for the private key or database" -msgstr "Файл, що містить пароль до закритого ключа або бази даних" +msgid "" +"\n" +"EXAMPLES:\n" +msgstr "" +"\n" +"ПРИКЛАДИ:\n" -msgid "Name of CSR generation profile (if not the same as profile_id)" -msgstr "Назва профілю створення CSR (якщо не та сама, що і profile_id)" +msgid "" +"\n" +" Add a new token:\n" +" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" +msgstr "" +"\n" +" Додати новий жетон:\n" +" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" -msgid "Generated CSR was empty" -msgstr "Створений CSR виявився порожнім" +msgid "Add a new YubiKey OTP token." +msgstr "Додати новий жетон OTP YubiKey." -msgid "Options 'database' and 'private_key' are not compatible with 'csr'" -msgstr "Параметри «database» і «private_key» є несумісними з «csr»" +msgid "YubiKey slot" +msgstr "Слот YubiKey" -msgid "Unrevoked" -msgstr "Відкликання скасовано" - -msgid "Error" -msgstr "Помилка" - -msgid "Input filename" -msgstr "Назва вхідного файла" - -msgid "File to load the certificate from." -msgstr "Файл, з якого слід завантажити сертифікат." - -msgid "Failed members" -msgstr "Помилка members" - -msgid "Failed source hosts/hostgroups" -msgstr "Помилка hosts/hostgroups джерела" - -msgid "Failed hosts/hostgroups" -msgstr "Помилка hosts/hostgroups" - -msgid "Failed users/groups" -msgstr "Помилка users/groups" - -msgid "Failed service/service groups" -msgstr "Помилки служб/груп служб" - -msgid "Failed to remove" -msgstr "Спроба вилучення зазнала невдачі" - -msgid "Failed RunAs" -msgstr "Помилка запуску від імені" - -msgid "Failed RunAsGroup" -msgstr "Помилка запуску від імені групи" - -msgid "Failed profiles" -msgstr "Профілі із помилками" - -msgid "Failed CAs" -msgstr "Помилкові CA" - -msgid "Failed managedby" -msgstr "Помилка managedby" - -msgid "Failed allowed to retrieve keytab" -msgstr "Не вдалося дозволити отримувати таблицю ключів" - -msgid "Failed allowed to create keytab" -msgstr "Не вдалося дозволити створювати таблицю ключів" - -msgid "Failed targets" -msgstr "Помилкові цілі" - -msgid "Out of memory\n" -msgstr "Не вистачає пам'яті\n" - -msgid "Warning unrecognized encryption type.\n" -msgstr "Попередження: невідомий тип шифрування.\n" - -msgid "Warning unrecognized salt type.\n" -msgstr "Попередження: невідомий тип солі (salt).\n" - -msgid "Out of memory!?\n" -msgstr "Не вистачає пам'яті!?\n" - -msgid "Enctype comparison failed!\n" -msgstr "Спроба порівняння значень типу шифрування зазнала невдачі!\n" - -msgid "Failed to create random key!\n" -msgstr "Не вдалося створити випадковий ключ!\n" - -msgid "Failed to create key!\n" -msgstr "Не вдалося створити ключ!\n" - -msgid "Bad or unsupported salt type.\n" -msgstr "Помилковий або непідтримуваний тип солі (salt).\n" - -msgid "Hello world" -msgstr "Привіт, світе" +msgid "No free YubiKey slot!" +msgstr "Немає вільних слотів YubiKey!" #, python-format -msgid "must equal %r" -msgstr "має дорівнювати %r" +msgid "Unknown option: %(option)s" +msgstr "Невідомий параметр: %(option)s" #, python-format msgid "%s: RADIUS proxy server not found" @@ -17480,12 +16578,39 @@ msgid "must be at least 1" msgstr "має бути принаймні 1" #, python-format -msgid "all masters must have %(role)s role enabled" -msgstr "для усіх основних серверів має бути увімкнено роль %(role)s" +msgid "must equal %r" +msgstr "має дорівнювати %r" -#, python-format -msgid "must have %(role)s role enabled" -msgstr "має бути увімкнено роль %(role)s" +msgid "Hello world" +msgstr "Привіт, світе" + +msgid "Trusting forest" +msgstr "«Ліс» довіри" + +msgid "Trusted forest" +msgstr "Довірений «ліс»" + +msgid "Established and verified" +msgstr "Встановлено і перевірено" + +msgid "Waiting for confirmation by remote side" +msgstr "Очікуємо на підтвердження з віддаленого боку" + +msgid "Unknown" +msgstr "Невідомо" + +msgid "Non-Active Directory domain" +msgstr "Домен не-Active Directory" + +msgid "Active Directory domain" +msgstr "Домен Active Directory" + +msgid "RFC4120-compliant Kerberos realm" +msgstr "Область Kerberos, сумісна з RFC4120" + +msgid "" +"Non-transitive external trust to a domain in another Active Directory forest" +msgstr "Неперехідна зовнішня довіра до домену у іншому лісі Active Directory" msgid "" "\n" @@ -17633,6 +16758,42 @@ msgstr "Реєстраційні дані" msgid "Missing credentials for cross-forest communication" msgstr "Пропущено реєстраційні дані для обміну даними між лісами" +#, python-format +msgid "Unable to communicate with CMS (status %d)" +msgstr "Не вдалося обмінятися даними з CMS (стан %d)" + +#, python-format +msgid "all masters must have %(role)s role enabled" +msgstr "для усіх основних серверів має бути увімкнено роль %(role)s" + +#, python-format +msgid "must have %(role)s role enabled" +msgstr "має бути увімкнено роль %(role)s" + +msgid "must be enabled only on a single master" +msgstr "має бути увімкнено лише на одному основному" + +msgid "Request must be a dict" +msgstr "Запит має належати до типу словника (dict)" + +msgid "Request is missing \"method\"" +msgstr "У запиті не вказано метод (\"method\")" + +msgid "Request is missing \"params\"" +msgstr "У запиті не вказано параметри (\"params\")" + +msgid "params must be a list" +msgstr "params має бути списком (list)" + +msgid "params must contain [args, options]" +msgstr "params має містити записи [аргументи, параметри]" + +msgid "params[0] (aka args) must be a list" +msgstr "params[0] (або аргументи) має бути списком (list)" + +msgid "params[1] (aka options) must be a dict" +msgstr "params[1] (або параметри) має належати до типу словника (dict)" + #, python-format msgid "" "\n" @@ -17660,6 +16821,2939 @@ msgid "Topology does not allow server %(server)s to replicate with servers:" msgstr "" "Топологія не дозволяє серверу %(server)s виконувати реплікацію із серверами:" +msgid "Allowed to Impersonate" +msgstr "Дозволено виконувати імперсонацію" + +msgid "Member principals" +msgstr "Реєстраційні записи учасників" + +msgid "Add target to a named service delegation." +msgstr "Додати ціль до делегування іменованої служби." + +#, python-format +msgid "member %s" +msgstr "%s учасника" + +msgid "Remove member from a named service delegation." +msgstr "Вилучити запис із делегування іменованої служби." + +msgid "service delegation rule" +msgstr "правило делегування служби" + +msgid "service delegation rules" +msgstr "правила делегування служб" + +msgid "Service delegation rules" +msgstr "Правила делегування служб" + +msgid "Service delegation rule" +msgstr "Правило делегування служб" + +#, python-format +msgid "Added service delegation rule \"%(value)s\"" +msgstr "Додано правило делегування служб «%(value)s»" + +#, python-format +msgid "Deleted service delegation \"%(value)s\"" +msgstr "Вилучено делегування служб «%(value)s»" + +msgid "privileged service delegation rule" +msgstr "привілейоване правило делегування служб" + +#, python-format +msgid "%(count)d service delegation rule matched" +msgid_plural "%(count)d service delegation rules matched" +msgstr[0] "встановлено відповідність %(count)d правила делегування служб" +msgstr[1] "встановлено відповідність %(count)d правил делегування служб" +msgstr[2] "встановлено відповідність %(count)d правил делегування служб" + +msgid "service delegation target" +msgstr "ціль делегування служб" + +msgid "service delegation targets" +msgstr "призначення делегування служб" + +msgid "Service delegation targets" +msgstr "Призначення делегування служб" + +msgid "Service delegation target" +msgstr "Ціль делегування служб" + +#, python-format +msgid "Added service delegation target \"%(value)s\"" +msgstr "Додано ціль делегування служб «%(value)s»" + +#, python-format +msgid "Deleted service delegation target \"%(value)s\"" +msgstr "Вилучено ціль делегування служб «%(value)s»" + +msgid "privileged service delegation target" +msgstr "привілейована ціль делегування служб" + +#, python-format +msgid "%(count)d service delegation target matched" +msgid_plural "%(count)d service delegation targets matched" +msgstr[0] "встановлено відповідність %(count)d призначення делегування служб" +msgstr[1] "встановлено відповідність %(count)d призначень делегування служб" +msgstr[2] "встановлено відповідність %(count)d призначень делегування служб" + +msgid "" +"\n" +"IPA server roles\n" +msgstr "" +"\n" +"Ролі сервера IPA\n" + +msgid "" +"\n" +"Get status of roles (DNS server, CA, etc.) provided by IPA masters.\n" +msgstr "" +"\n" +"Отримати стан ролей (сервер DNS, CA тощо), що надається основними серверами " +"IPA.\n" + +msgid "" +"\n" +" Show status of 'DNS server' role on a server:\n" +" ipa server-role-show ipa.example.com \"DNS server\"\n" +msgstr "" +"\n" +" Показати стан ролі «DNS server» на сервері:\n" +" ipa server-role-show ipa.example.com \"DNS server\"\n" + +msgid "" +"\n" +" Show status of all roles containing 'AD' on a server:\n" +" ipa server-role-find --server ipa.example.com --role='AD'\n" +msgstr "" +"\n" +" Показати стан усіх ролей, назва яких містить «AD», на сервері:\n" +" ipa server-role-find --server ipa.example.com --role='AD'\n" + +msgid "" +"\n" +" Show status of all configured roles on a server:\n" +" ipa server-role-find ipa.example.com\n" +msgstr "" +"\n" +" Показати стан усіх налаштованих ролей на сервері:\n" +" ipa server-role-find ipa.example.com\n" + +msgid "server role" +msgstr "роль сервера" + +msgid "server roles" +msgstr "ролі сервера" + +msgid "IPA Server Roles" +msgstr "Ролі сервера IPA" + +msgid "IPA Server Role" +msgstr "Роль сервера IPA" + +msgid "IPA server role name" +msgstr "Назва ролі сервера IPA" + +msgid "Role status" +msgstr "Стан ролі" + +msgid "Status of the role" +msgstr "Стан ролі" + +msgid "Show role status on a server" +msgstr "Показати стан ролі на сервері" + +msgid "Find a server role on a server(s)" +msgstr "Знайти роль сервера на серверах" + +#, python-format +msgid "%(count)s server role matched" +msgid_plural "%(count)s server roles matched" +msgstr[0] "встановлено відповідність %(count)s ролі сервера" +msgstr[1] "встановлено відповідність %(count)s ролей сервера" +msgstr[2] "встановлено відповідність %(count)s ролей сервера" + +msgid "roles" +msgstr "ролі" + +msgid "IPA role name" +msgstr "Назва ролі IPA" + +msgid "kerberos ticket policy settings" +msgstr "параметри правил квитків kerberos" + +msgid "Kerberos Ticket Policy" +msgstr "Правила квитків Kerberos" + +#, python-format +msgid "Ticket policy for %s could not be read" +msgstr "Не вдалося прочитати правила щодо квитків для %s" + +msgid "Default ticket policy could not be read" +msgstr "Не вдалося прочитати типові правила щодо квитків" + +msgid "ID View" +msgstr "Перегляд ідентифікаторів" + +msgid "system ID View" +msgstr "системний перегляд ідентифікаторів" + +msgid "ID Views" +msgstr "Перегляди ідентифікаторів" + +msgid "User object overrides" +msgstr "Пріоритет об’єкта користувача" + +msgid "Group object overrides" +msgstr "Пріоритет об’єкта групи" + +msgid "Hosts the view applies to" +msgstr "Вузли, до яких застосовний перегляд" + +msgid "Domain resolution order" +msgstr "Порядок визначення доменів" + +msgid "colon-separated list of domains used for short name qualification" +msgstr "" +"список доменів, відокремлених двокрапками, які використовуються для обробки " +"коротких назв" + +#, python-format +msgid "Added ID View \"%(value)s\"" +msgstr "Додано перегляд ідентифікаторів «%(value)s»" + +#, python-format +msgid "Deleted ID View \"%(value)s\"" +msgstr "Вилучено перегляд ідентифікаторів «%(value)s»" + +#, python-format +msgid "Modified an ID View \"%(value)s\"" +msgstr "Змінено перегляд ідентифікаторів «%(value)s»" + +#, python-format +msgid "%(count)d ID View matched" +msgid_plural "%(count)d ID Views matched" +msgstr[0] "встановлено відповідність %(count)d перегляду ідентифікаторів" +msgstr[1] "встановлено відповідність %(count)d переглядів ідентифікаторів" +msgstr[2] "встановлено відповідність %(count)d переглядів ідентифікаторів" + +msgid "Default Trust View cannot be applied on hosts" +msgstr "Типовий перегляд довіри не може бути застосовано до вузлів" + +msgid "not found" +msgstr "не знайдено" + +msgid "ID View already applied" +msgstr "Перегляд ідентифікаторів уже застосовано" + +msgid "value" +msgstr "значення" + +#, python-format +msgid "ID View applied to %i host." +msgstr "Перегляд ідентифікаторів застосовано до %i вузла." + +#, python-format +msgid "ID View applied to %i hosts." +msgstr "Перегляд ідентифікаторів застосовано до %i вузлів." + +#, python-format +msgid "ID View cleared from %i host." +msgstr "Перегляд ідентифікаторів знято з %i вузла." + +#, python-format +msgid "ID View cleared from %i hosts." +msgstr "Перегляд ідентифікаторів знято з %i вузлів." + +msgid "" +"You are trying to reference a magic private group which is not allowed to be " +"overridden. Try overriding the GID attribute of the corresponding user " +"instead." +msgstr "" +"Ви намагаєтеся послатися на магічну приватну групу, яку не можна " +"перевизначати Спробуйте краще перевизначити атрибут GID запису відповідного " +"користувача." + +msgid "IPA object" +msgstr "Об’єкт IPA" + +msgid "" +"system IPA objects (e.g. system groups, user private groups) cannot be " +"overridden" +msgstr "" +"системні об’єкти IPA (наприклад системні групи, приватні групи користувачів) " +"не може бути перевизначено" + +#, python-format +msgid "Anchor '%(anchor)s' could not be resolved." +msgstr "Не вдалося визначити прив’язку «%(anchor)s»." + +msgid "Default Trust View cannot contain IPA users" +msgstr "Типовий перегляд довіри не може містити користувачів IPA" + +msgid "Add a new ID override." +msgstr "Додати нове перевизначення ідентифікаторів." + +#, python-format +msgid "Added ID override \"%(value)s\"" +msgstr "Додано перевизначення ідентифікаторів «%(value)s»" + +msgid "Delete an ID override." +msgstr "Вилучити перевизначення ідентифікаторів." + +#, python-format +msgid "Deleted ID override \"%(value)s\"" +msgstr "Вилучено перевизначення ідентифікатора «%(value)s»" + +msgid "Modify an ID override." +msgstr "Змінити перевизначення ідентифікатора." + +#, python-format +msgid "Modified an ID override \"%(value)s\"" +msgstr "Змінено перевизначення ідентифікатора «%(value)s»" + +msgid "ID override" +msgstr "Перевизначення ідентифікатора" + +msgid "ID overrides cannot be renamed" +msgstr "Перевизначення ідентифікаторів не можна перейменовувати" + +msgid "Search for an ID override." +msgstr "Шукати перевизначення ідентифікатора." + +#, python-format +msgid "%(count)d ID override matched" +msgid_plural "%(count)d ID overrides matched" +msgstr[0] "встановлено відповідність %(count)d перевизначення ідентифікатора" +msgstr[1] "встановлено відповідність %(count)d перевизначень ідентифікаторів" +msgstr[2] "встановлено відповідність %(count)d перевизначень ідентифікаторів" + +msgid "Display information about an ID override." +msgstr "Показати дані щодо перевизначення ідентифікатора." + +msgid "User ID override" +msgstr "Перевизначення ідентифікатора користувача" + +msgid "User ID overrides" +msgstr "Перевизначення ідентифікатора користувача" + +msgid "Base-64 encoded user certificate" +msgstr "Сертифікат користувача у кодуванні Base-64" + +msgid "Group ID override" +msgstr "Перевизначення ідентифікатора групи" + +msgid "Group ID overrides" +msgstr "Перевизначення ідентифікатора групи" + +msgid "Add one or more certificates to the idoverrideuser entry" +msgstr "Додати один або декілька сертифікатів запису idoverrideuser" + +#, python-format +msgid "Added certificates to idoverrideuser \"%(value)s\"" +msgstr "Додано сертифікати до запису idoverrideuser «%(value)s»" + +msgid "Remove one or more certificates to the idoverrideuser entry" +msgstr "Вилучити один або декілька сертифікатів запису idoverrideuser" + +#, python-format +msgid "Removed certificates from idoverrideuser \"%(value)s\"" +msgstr "Вилучено сертифікати із запису idoverrideuser «%(value)s»" + +#, python-format +msgid "Added User ID override \"%(value)s\"" +msgstr "Додано перевизначення ідентифікатора користувача «%(value)s»" + +#, python-format +msgid "Deleted User ID override \"%(value)s\"" +msgstr "Вилучено перевизначення ідентифікатора користувача «%(value)s»" + +#, python-format +msgid "Modified an User ID override \"%(value)s\"" +msgstr "Змінено перевизначення ідентифікатора користувача «%(value)s»" + +#, python-format +msgid "%(count)d User ID override matched" +msgid_plural "%(count)d User ID overrides matched" +msgstr[0] "" +"встановлено відповідність %(count)d перевизначення ідентифікатора користувача" +msgstr[1] "" +"встановлено відповідність %(count)d перевизначень ідентифікаторів " +"користувачів" +msgstr[2] "" +"встановлено відповідність %(count)d перевизначень ідентифікаторів " +"користувачів" + +#, python-format +msgid "Added Group ID override \"%(value)s\"" +msgstr "Додано перевизначення ідентифікаторів групи «%(value)s»" + +#, python-format +msgid "Deleted Group ID override \"%(value)s\"" +msgstr "Вилучено перевизначення ідентифікаторів групи «%(value)s»" + +#, python-format +msgid "Modified an Group ID override \"%(value)s\"" +msgstr "Змінено перевизначення ідентифікаторів групи «%(value)s»" + +#, python-format +msgid "%(count)d Group ID override matched" +msgid_plural "%(count)d Group ID overrides matched" +msgstr[0] "" +"встановлено відповідність %(count)d перевизначення ідентифікаторів групи" +msgstr[1] "" +"встановлено відповідність %(count)d перевизначень ідентифікаторів групи" +msgstr[2] "" +"встановлено відповідність %(count)d перевизначень ідентифікаторів групи" + +msgid "OTP configuration options" +msgstr "Параметри налаштування OTP" + +msgid "OTP Configuration" +msgstr "Налаштування OTP" + +#, python-format +msgid "" +"Insufficient 'write' privilege to the 'krbLastPwdChange' attribute of entry " +"'%s'." +msgstr "" +"Недостатні привілеї «write» до атрибута «krbLastPwdChange» запису «%s»." + +msgid "" +"\n" +"Kerberos PKINIT feature status reporting tools.\n" +"\n" +"Report IPA masters on which Kerberos PKINIT is enabled or disabled\n" +"\n" +"EXAMPLES:\n" +" List PKINIT status on all masters:\n" +" ipa pkinit-status\n" +"\n" +" Check PKINIT status on `ipa.example.com`:\n" +" ipa pkinit-status --server ipa.example.com\n" +"\n" +" List all IPA masters with disabled PKINIT:\n" +" ipa pkinit-status --status='disabled'\n" +"\n" +"For more info about PKINIT support see:\n" +"\n" +"https://www.freeipa.org/page/V4/Kerberos_PKINIT\n" +msgstr "" +"\n" +"Засоби звітування щодо стану можливості PKINIT Kerberos\n" +"\n" +"Звітування щодо того, увімкнено чи вимкнено PKINIT у Kerberos на основних " +"елементах IPA\n" +"\n" +"ПРИКЛАДИ:\n" +" Вивести список станів PKINIT для усіх основних елементів:\n" +" ipa pkinit-status\n" +"\n" +" Перевірити стан PKINIT на «ipa.example.com»:\n" +" ipa pkinit-status --server ipa.example.com\n" +"\n" +" Вивести список усіх основних елементів IPA із вимкненим PKINIT:\n" +" ipa pkinit-status --status='disabled'\n" +"\n" +"Докладніші дані щодо підтримки PKINIT:\n" +"\n" +"https://www.freeipa.org/page/V4/Kerberos_PKINIT\n" + +msgid "pkinit" +msgstr "pkinit" + +msgid "PKINIT" +msgstr "PKINIT" + +msgid "PKINIT status" +msgstr "стан PKINIT" + +msgid "Whether PKINIT is enabled or disabled" +msgstr "Визначає, увімкнено чи вимкнено PKINIT" + +msgid "Report PKINIT status on the IPA masters" +msgstr "Звіт щодо стану PKINIT на основних елементах IPA" + +#, python-format +msgid "%(count)s server matched" +msgid_plural "%(count)s servers matched" +msgstr[0] "Встановлено відповідність %(count)s сервера" +msgstr[1] "Встановлено відповідність %(count)s серверів" +msgstr[2] "Встановлено відповідність %(count)s серверів" + +msgid "operation not defined" +msgstr "дію не визначено" + +#, python-format +msgid "not allowed to perform operation: %s" +msgstr "виконувати цю дію заборонено: %s" + +msgid "No such virtual command" +msgstr "Такої віртуальної команди не передбачено" + +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +msgstr "" +"пріоритет повинен мати унікальне значення (%(prio)d вже використано для " +"%(gname)s)" + +msgid "password policy" +msgstr "правила для паролів" + +msgid "password policies" +msgstr "правила щодо паролів" + +msgid "Password Policies" +msgstr "Правила щодо паролів" + +msgid "Password Policy" +msgstr "Правила для паролів" + +msgid "Maximum password life must be greater than minimum." +msgstr "" +"Максимальний строк дії пароля має перевищувати мінімальний строк його дії." + +msgid "cannot delete global password policy" +msgstr "неможливо вилучити загальні правила паролів" + +msgid "priority cannot be set on global policy" +msgstr "для загальних правил не може встановлювати пріоритети" + +msgid "" +"\n" +"Sudo Rules\n" +msgstr "" +"\n" +"Правила sudo\n" + +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" +msgstr "" +"\n" +"Sudo (su \"do\") надає системному адміністратору змогу делегувати\n" +"повноваження певним користувачам (або групам користувачів) на виконання\n" +"деяких (або усіх) команд від імені адміністратора (root) або іншого\n" +"користувача, зберігаючи водночас журнал виконання команд та\n" +"аргументів.\n" + +msgid "" +"\n" +"FreeIPA provides a means to configure the various aspects of Sudo:\n" +" Users: The user(s)/group(s) allowed to invoke Sudo.\n" +" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke " +"Sudo.\n" +" Allow Command: The specific command(s) permitted to be run via Sudo.\n" +" Deny Command: The specific command(s) prohibited to be run via Sudo.\n" +" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be " +"invoked with.\n" +" 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" +msgstr "" +"\n" +"У FreeIPA передбачено декілька параметрів налаштовування роботи sudo:\n" +" Users: користувачі або групи, які можуть викликати sudo.\n" +" Hosts: вузли або групи вузлів, користувачі якого можуть викликати sudo.\n" +" Allow Command: специфічні команди, які можна виконувати за допомогою " +"sudo.\n" +" Deny Command: специфічні команди, які не можна виконувати за допомогою " +"sudo.\n" +" RunAsUser: користувачі або групи, від імені яких sudo виконуватиме " +"команди.\n" +" RunAsGroup: групи, ідентифікатори яких буде використано sudo для " +"виконання команд.\n" +" Options: різноманітні параметри sudoers, які можуть змінити поведінку " +"sudo.\n" + +msgid "" +"\n" +"An order can be added to a sudorule to control the order in which they\n" +"are evaluated (if the client supports it). This order is an integer and\n" +"must be unique.\n" +msgstr "" +"\n" +"До правила sudo можна додати порядок, який керуватиме порядком\n" +"обробки записів (якщо такий порядок передбачено на клієнтському боці).\n" +"Порядок визначається числовим індексом, який не повинен повторюватися.\n" + +msgid "" +"\n" +"FreeIPA provides a designated binddn to use with Sudo located at:\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" +msgstr "" +"\n" +"У FreeIPA передбачено визначений binddn для використання з sudo, який " +"розташовано у\n" +"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" + +msgid "" +"\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" +msgstr "" +"\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" + +msgid "" +"\n" +" Create a new rule:\n" +" ipa sudorule-add readfiles\n" +msgstr "" +"\n" +" Створити правило:\n" +" ipa sudorule-add readfiles\n" + +msgid "" +"\n" +" Add sudo command object and add it as allowed command in the rule:\n" +" ipa sudocmd-add /usr/bin/less\n" +" ipa sudorule-add-allow-command readfiles --sudocmds /usr/bin/less\n" +msgstr "" +"\n" +" Додати об’єкт команди sudo і записати його як дозволену команду до " +"правила:\n" +" ipa sudocmd-add /usr/bin/less\n" +" ipa sudorule-add-allow-command readfiles --sudocmds /usr/bin/less\n" + +msgid "" +"\n" +" Add a host to the rule:\n" +" ipa sudorule-add-host readfiles --hosts server.example.com\n" +msgstr "" +"\n" +" Додати запис вузла до правила:\n" +" ipa sudorule-add-host readfiles --hosts server.example.com\n" + +msgid "" +"\n" +" Add a user to the rule:\n" +" ipa sudorule-add-user readfiles --users jsmith\n" +msgstr "" +"\n" +" Додати запис користувача до правила:\n" +" ipa sudorule-add-user readfiles --users jsmith\n" + +msgid "" +"\n" +" Add a special Sudo rule for default Sudo server configuration:\n" +" ipa sudorule-add defaults\n" +msgstr "" +"\n" +" Додати особливе правило sudo для типового налаштовування сервера sudo:\n" +" ipa sudorule-add defaults\n" + +msgid "" +"\n" +" Set a default Sudo option:\n" +" ipa sudorule-add-option defaults --sudooption '!authenticate'\n" +msgstr "" +"\n" +" Встановити типовий варіант дій для sudo:\n" +" ipa sudorule-add-option defaults --sudooption '!authenticate'\n" + +msgid "" +"\n" +" Set SELinux type and role transitions on a rule:\n" +" ipa sudorule-add-option sysadmin_sudo --sudooption type=unconfined_t\n" +" ipa sudorule-add-option sysadmin_sudo --sudooption role=unconfined_r\n" +msgstr "" +"\n" +" Встановити переходи типу і ролі SELinux на правило:\n" +" ipa sudorule-add-option sysadmin_sudo --sudooption type=unconfined_t\n" +" ipa sudorule-add-option sysadmin_sudo --sudooption role=unconfined_r\n" + +msgid "this option has been deprecated." +msgstr "цей параметр вважається застарілим." + +msgid "sudo rules" +msgstr "правила sudo" + +msgid "Sudo Rules" +msgstr "Правила Sudo" + +msgid "Sudo Rule" +msgstr "Правило sudo" + +#, python-format +msgid "order must be a unique value (%(order)d already used by %(rule)s)" +msgstr "" +"порядковий номер повинен мати унікальне значення (%(order)d вже використано " +"для %(rule)s)" + +#, python-format +msgid "Added Sudo Rule \"%(value)s\"" +msgstr "Додано правило sudo «%(value)s»" + +#, python-format +msgid "Deleted Sudo Rule \"%(value)s\"" +msgstr "Вилучено правило sudo «%(value)s»" + +#, python-format +msgid "Modified Sudo Rule \"%(value)s\"" +msgstr "Змінено правило sudo «%(value)s»" + +#, python-format +msgid "" +"%(type)s category cannot be set to 'all' while there are allowed %(objects)s" +msgstr "" +"Значенням категорії %(type)s не можна встановлювати «all», якщо існують " +"дозволені %(objects)s" + +msgid "users" +msgstr "користувачі" + +msgid "command" +msgstr "команда" + +msgid "commands" +msgstr "команди" + +msgid "runAs user" +msgstr "користувач, від імені якого виконуватиметься" + +msgid "runAs users" +msgstr "користувачі, від імені яких виконуватиметься" + +msgid "group runAs" +msgstr "група, від імені якої виконуватиметься" + +msgid "runAs groups" +msgstr "групи, від імені яких виконуватиметься" + +#, python-format +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" + +msgid "commands cannot be added when command category='all'" +msgstr "не можна додавати команди, якщо категорія команд=«all»" + +msgid "users cannot be added when user category='all'" +msgstr "" +"не можна додавати записи користувачів, якщо категорія користувачів=«all»" + +msgid "hosts cannot be added when host category='all'" +msgstr "не можна додавати записи вузлів, якщо категорія вузлів=«all»" + +msgid "users cannot be added when runAs user or runAs group category='all'" +msgstr "" +"не можна додавати записи користувачів, якщо категорія запуску від імені " +"користувачів або запуску від імені груп=«all»" + +#, python-format +msgid "RunAsUser does not accept '%(name)s' as a user name" +msgstr "Не можна вказувати «%(name)s» як ім’я користувача у записі RunAsUser" + +#, python-format +msgid "RunAsUser does not accept '%(name)s' as a group name" +msgstr "Назва групи «%(name)s» є неприйнятною для RunAsUser" + +#, python-format +msgid "RunAsGroup does not accept '%(name)s' as a group name" +msgstr "Назва групи «%(name)s» є неприйнятною для RunAsGroup" + +msgid "Role" +msgstr "Роль" + +#, python-format +msgid "Added role \"%(value)s\"" +msgstr "Додано роль «%(value)s»" + +#, python-format +msgid "Deleted role \"%(value)s\"" +msgstr "Вилучено роль «%(value)s»" + +#, python-format +msgid "Modified role \"%(value)s\"" +msgstr "Змінено роль «%(value)s»" + +#, 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 ролей" + +msgid "" +"\n" +"Manage Certificate Authorities\n" +msgstr "" +"\n" +"Керування службами сертифікації\n" + +msgid "" +"\n" +"Subordinate Certificate Authorities (Sub-CAs) can be added for scoped " +"issuance\n" +"of X.509 certificates.\n" +msgstr "" +"\n" +"Підлеглі служби сертифікації (Sub-CA) можна додавати для обмежених під час " +"видання областю\n" +"сертифікатів X.509.\n" + +msgid "" +"\n" +"CAs are enabled on creation, but their use is subject to CA ACLs unless the\n" +"operator has permission to bypass CA ACLs.\n" +msgstr "" +"\n" +"Служби сертифікації увімкнено при створенні, але їхнє використання " +"регулюється ACL служб сертифікації,\n" +"якщо у оператора немає дозволу обходити ACL служб сертифікації (CA).\n" + +msgid "" +"\n" +"All CAs except the 'IPA' CA can be disabled or re-enabled. Disabling a CA\n" +"prevents it from issuing certificates but does not affect the validity of " +"its\n" +"certificate.\n" +msgstr "" +"\n" +"Усі слжуби сертифікації, окрім служби сертифікації «IPA», можна вимикати і " +"повторно вмикати. Вимикання\n" +"служби сертифікації призводить до заборони для неї видавати сертифікати, але " +"не впливає на\n" +"чинність її сертифіката.\n" + +msgid "" +"\n" +"CAs (all except the 'IPA' CA) can be deleted. Deleting a CA causes its " +"signing\n" +"certificate to be revoked and its private key deleted.\n" +msgstr "" +"\n" +"Усі записи служб сертифікації (окрім служби «IPA») можна вилучати. Вилучення " +"запису служби сертифікації\n" +"призводить до відкликання її підписувального сертифіката і вилучення " +"закритого ключа.\n" + +msgid "" +"\n" +" Create new CA, subordinate to the IPA CA.\n" +"\n" +" ipa ca-add puppet --desc \"Puppet\" \\\n" +" --subject \"CN=Puppet CA,O=EXAMPLE.COM\"\n" +msgstr "" +"\n" +" Створити новий запис служби сертифікації, підлеглий щодо служби " +"сертифікації IPA.\n" +"\n" +" ipa ca-add puppet --desc \"Puppet\" \\\n" +" --subject \"CN=Puppet CA,O=EXAMPLE.COM\"\n" + +msgid "" +"\n" +" Disable a CA.\n" +"\n" +" ipa ca-disable puppet\n" +msgstr "" +"\n" +" Вимкнути службу сертифікації.\n" +"\n" +" ipa ca-disable puppet\n" + +msgid "" +"\n" +" Re-enable a CA.\n" +"\n" +" ipa ca-enable puppet\n" +msgstr "" +"\n" +" Повторно увімкнути службу сертифікації.\n" +"\n" +" ipa ca-enable puppet\n" + +msgid "" +"\n" +" Delete a CA.\n" +"\n" +" ipa ca-del puppet\n" +msgstr "" +"\n" +" Вилучити запис служби сертифікації.\n" +"\n" +" ipa ca-del puppet\n" + +msgid "Certificate Authority" +msgstr "Центр сертифікації" + +msgid "Certificate Authorities" +msgstr "Центри сертифікації" + +msgid "Name" +msgstr "Назва" + +msgid "Name for referencing the CA" +msgstr "Назва до посилання на CA" + +msgid "Description of the purpose of the CA" +msgstr "Опис призначення CA" + +msgid "Authority ID" +msgstr "Ід. центру" + +msgid "Dogtag Authority ID" +msgstr "Ід. Dogtag центру" + +msgid "Subject DN" +msgstr "DN призначення" + +msgid "Subject Distinguished Name" +msgstr "Унікальна назва призначення" + +msgid "Issuer DN" +msgstr "DN видавця" + +msgid "Issuer Distinguished Name" +msgstr "Унікальна назва видавця" + +msgid "Base-64 encoded certificate." +msgstr "Сертифікат у кодуванні Base-64." + +msgid "Certificate chain" +msgstr "Ланцюжок сертифікації" + +msgid "X.509 certificate chain" +msgstr "Ланцюжок сертифікації X.509" + +msgid "Search for CAs." +msgstr "Шукати CA." + +#, python-format +msgid "%(count)d CA matched" +msgid_plural "%(count)d CAs matched" +msgstr[0] "встановлено відповідність %(count)d CA" +msgstr[1] "встановлено відповідність %(count)d CA" +msgstr[2] "встановлено відповідність %(count)d CA" + +msgid "Include certificate chain in output" +msgstr "Включити ланцюжок сертифікації до виведення" + +msgid "Display the properties of a CA." +msgstr "Показати властивості CA." + +msgid "Create a CA." +msgstr "Створити запис CA." + +#, python-format +msgid "Created CA \"%(value)s\"" +msgstr "Створено запис CA «%(value)s»" + +#, python-format +msgid "Insufficient 'add' privilege for entry '%s'." +msgstr "Недостатні привілеї «add» для запису «%s»." + +#, python-format +msgid "Unrecognized attributes: %(attrs)s" +msgstr "Нерозпізнані атрибути: %(attrs)s" + +#, python-format +msgid "Subject DN is already used by CA '%s'" +msgstr "DN призначення вже використано CA «%s»" + +msgid "Delete a CA." +msgstr "Вилучити запис CA." + +#, python-format +msgid "Deleted CA \"%(value)s\"" +msgstr "Вилучено запис CA «%(value)s»" + +msgid "Insufficient privilege to delete a CA." +msgstr "Недостатні права доступу для вилучення запису CA." + +msgid "CA" +msgstr "CA" + +msgid "IPA CA cannot be deleted" +msgstr "CA IPA не може бути вилучено" + +msgid "Modify CA configuration." +msgstr "Змінити налаштування CA." + +#, python-format +msgid "Modified CA \"%(value)s\"" +msgstr "Змінено CA «%(value)s»" + +msgid "Insufficient privilege to modify a CA." +msgstr "Недостатні права доступу для внесення змін до запису CA." + +msgid "Disable a CA." +msgstr "Вимкнути службу сертифікації." + +#, python-format +msgid "Disabled CA \"%(value)s\"" +msgstr "Вимкнено службу сертифікації «%(value)s»" + +msgid "IPA CA cannot be disabled" +msgstr "Службу сертифікації IPA не можна вимикати" + +msgid "Enable a CA." +msgstr "Увімкнути службу сертифікації" + +#, python-format +msgid "Enabled CA \"%(value)s\"" +msgstr "Увімкнено службу сертифікації «%(value)s»" + +msgid "netgroups" +msgstr "мережеві групи" + +msgid "Netgroups" +msgstr "Мережеві групи" + +msgid "Netgroup" +msgstr "Мережева група" + +#, python-format +msgid "Added netgroup \"%(value)s\"" +msgstr "Додано групу мережеву групу «%(value)s»" + +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" +msgstr "" +"Група вузлів з назвою «%s» вже створено. Групи вузлів і мережеві групи мають " +"спільний простір назв." + +#, python-format +msgid "Deleted netgroup \"%(value)s\"" +msgstr "Вилучено мережеву групу «%(value)s»" + +#, python-format +msgid "Modified netgroup \"%(value)s\"" +msgstr "Змінено мережеву групу «%(value)s»" + +msgid "user category cannot be set to 'all' while there are allowed users" +msgstr "" +"не можна встановлювати для категорії користувачів значення «all», доки є " +"записи дозволених користувачів" + +msgid "host category cannot be set to 'all' while there are allowed hosts" +msgstr "" +"не можна встановлювати для категорії вузлів значення «all», доки є записи " +"дозволених вузлів" + +#, 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 груп" + +msgid "delegation" +msgstr "уповноваження" + +msgid "delegations" +msgstr "уповноваження" + +msgid "Delegations" +msgstr "Уповноваження" + +msgid "Delegation" +msgstr "Уповноваження" + +msgid "ACI" +msgstr "ACI" + +#, python-format +msgid "Added delegation \"%(value)s\"" +msgstr "Додано уповноваження «%(value)s»" + +#, python-format +msgid "Deleted delegation \"%(value)s\"" +msgstr "Вилучено уповноваження «%(value)s»" + +#, python-format +msgid "Modified delegation \"%(value)s\"" +msgstr "Змінено уповноваження «%(value)s»" + +#, 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 уповноважень" + +#, python-brace-format +msgid "" +"\n" +"ID ranges\n" +"\n" +"Manage ID ranges used to map Posix IDs to SIDs and back.\n" +"\n" +"There are two type of ID ranges which are both handled by this utility:\n" +"\n" +" - the ID ranges of the local domain\n" +" - the ID ranges of trusted remote domains\n" +"\n" +"Both types have the following attributes in common:\n" +"\n" +" - base-id: the first ID of the Posix ID range\n" +" - range-size: the size of the range\n" +"\n" +"With those two attributes a range object can reserve the Posix IDs starting\n" +"with base-id up to but not including base-id+range-size exclusively.\n" +"\n" +"Additionally an ID range of the local domain may set\n" +" - rid-base: the first RID(*) of the corresponding RID range\n" +" - secondary-rid-base: first RID of the secondary RID range\n" +"\n" +"and an ID range of a trusted domain must set\n" +" - rid-base: the first RID of the corresponding RID range\n" +" - sid: domain SID of the trusted domain\n" +"\n" +"\n" +"\n" +"EXAMPLE: Add a new ID range for a trusted domain\n" +"\n" +"Since there might be more than one trusted domain the domain SID must be " +"given\n" +"while creating the ID range.\n" +"\n" +" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-base=0 \\\n" +" --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" +"\n" +"This ID range is then used by the IPA server and the SSSD IPA provider to\n" +"assign Posix UIDs to users from the trusted domain.\n" +"\n" +"If e.g. a range for a trusted domain is configured with the following " +"values:\n" +" base-id = 1200000\n" +" range-size = 200000\n" +" rid-base = 0\n" +"the RIDs 0 to 199999 are mapped to the Posix ID from 1200000 to 13999999. " +"So\n" +"RID 1000 <-> Posix ID 1201000\n" +"\n" +"\n" +"\n" +"EXAMPLE: Add a new ID range for the local domain\n" +"\n" +"To create an ID range for the local domain it is not necessary to specify a\n" +"domain SID. But since it is possible that a user and a group can have the " +"same\n" +"value as Posix ID a second RID interval is needed to handle conflicts.\n" +"\n" +" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-base=1000 \\\n" +" --secondary-rid-base=1000000 local_range\n" +"\n" +"The data from the ID ranges of the local domain are used by the IPA server\n" +"internally to assign SIDs to IPA users and groups. The SID will then be " +"stored\n" +"in the user or group objects.\n" +"\n" +"If e.g. the ID range for the local domain is configured with the values " +"from\n" +"the example above then a new user with the UID 1200007 will get the RID " +"1007.\n" +"If this RID is already used by a group the RID will be 1000007. This can " +"only\n" +"happen if a user or a group object was created with a fixed ID because the\n" +"automatic assignment will not assign the same ID twice. Since there are " +"only\n" +"users and groups sharing the same ID namespace it is sufficient to have " +"only\n" +"one fallback range to handle conflicts.\n" +"\n" +"To find the Posix ID for a given RID from the local domain it has to be\n" +"checked first if the RID falls in the primary or secondary RID range and\n" +"the rid-base or the secondary-rid-base has to be subtracted, respectively,\n" +"and the base-id has to be added to get the Posix ID.\n" +"\n" +"Typically the creation of ID ranges happens behind the scenes and this CLI\n" +"must not be used at all. The ID range for the local domain will be created\n" +"during installation or upgrade from an older version. The ID range for a\n" +"trusted domain will be created together with the trust by 'ipa trust-" +"add ...'.\n" +"\n" +"USE CASES:\n" +"\n" +" Add an ID range from a transitively trusted domain\n" +"\n" +" If the trusted domain (A) trusts another domain (B) as well and this " +"trust\n" +" is transitive 'ipa trust-add domain-A' will only create a range for\n" +" domain A. The ID range for domain B must be added manually.\n" +"\n" +" Add an additional ID range for the local domain\n" +"\n" +" If the ID range of the local domain is exhausted, i.e. no new IDs can " +"be\n" +" assigned to Posix users or groups by the DNA plugin, a new range has to " +"be\n" +" created to allow new users and groups to be added. (Currently there is " +"no\n" +" connection between this range CLI and the DNA plugin, but a future " +"version\n" +" might be able to modify the configuration of the DNS plugin as well)\n" +"\n" +"In general it is not necessary to modify or delete ID ranges. If there is " +"no\n" +"other way to achieve a certain configuration than to modify or delete an ID\n" +"range it should be done with great care. Because UIDs are stored in the " +"file\n" +"system and are used for access control it might be possible that users are\n" +"allowed to access files of other users if an ID range got deleted and " +"reused\n" +"for a different domain.\n" +"\n" +"(*) The RID is typically the last integer of a user or group SID which " +"follows\n" +"the domain SID. E.g. if the domain SID is S-1-5-21-123-456-789 and a user " +"from\n" +"this domain has the SID S-1-5-21-123-456-789-1010 then 1010 id the RID of " +"the\n" +"user. RIDs are unique in a domain, 32bit values and are used for users and\n" +"groups.\n" +"\n" +"{0}\n" +msgstr "" +"\n" +"Діапазони ідентифікаторів\n" +"\n" +"Керування діапазонами ідентифікаторів, використаних для відображення\n" +"ідентифікаторів POSIX на SID, і навпаки.\n" +"\n" +"За допомогою цієї програми можна керувати обома типами діапазонів " +"ідентифікаторів:\n" +"\n" +" - діапазони ідентифікаторів локального домену\n" +" - діапазони ідентифікаторів довірених віддалених доменів\n" +"\n" +"Обидва типи мають такі спільні атрибути:\n" +"\n" +" - base-id: перший ідентифікатор діапазону ідентифікаторів POSIX\n" +" - range-size: розмір діапазону\n" +"\n" +"На основі цих двох атрибутів об’єкт діапазону може зарезервувати " +"ідентифікатори\n" +"POSIX, починаючи з base-id аж до, але не включно, base-id+range-size.\n" +"\n" +"Крім того, можна встановити діапазон ідентифікаторів локального домену\n" +" - rid-base: перший RID(*) відповідного діапазону RID\n" +" - secondary-rid-base: перший RID вторинного діапазону RID\n" +"\n" +"а діапазон ідентифікаторів довіреного домену слід задавати за допомогою\n" +" - rid-base: перший RID відповідного діапазону RID\n" +" - dom_sid: SID довіреного домену\n" +"\n" +"\n" +"\n" +"ПРИКЛАД: додавання нового діапазону ідентифікаторів для довіреного домену\n" +"\n" +"Оскільки може бути декілька довірених доменів, під час створення діапазону\n" +"ідентифікаторів слід вказати SID домену.\n" +"\n" +" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-base=0 \\\n" +" --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" +"\n" +"Цей діапазон ідентифікаторів потім використовуватиметься сервером IPA\n" +"та надавачем даних IPA SSSD для призначення UID Posix користувачам з\n" +"довіреного домену.\n" +"\n" +"Якщо, наприклад, налаштовано діапазон для довіреного домену з такими\n" +"значеннями:\n" +" base-id = 1200000\n" +" range-size = 200000\n" +" rid-base = 0\n" +"RID від 0 до 199999 прив’язуються до ідентифікаторів Posix від 1200000 до\n" +"13999999. Отже RID 1000 <-> Posix ID 1201000\n" +"\n" +"\n" +"\n" +"ПРИКЛАД: додавання нового діапазону ідентифікаторів до локального домену\n" +"\n" +"Щоб створити діапазон ідентифікаторів для локального домену не потрібно\n" +"вказувати SID домену. Але оскільки можливий конфлікт між ідентифікаторами\n" +"користувача і групи та ідентифікаторами POSIX, потрібен вторинний інтервал\n" +"RID.\n" +"\n" +" ipa range-add --base-id=1200000 --range-size=200000 --rid-base=1000 \\\n" +" --secondary-rid-base=1000000 local_range\n" +"\n" +"Дані з діапазонів ідентифікаторів локального домену використовуються\n" +"сервером IPA на внутрішньому рівні для призначення SID користувачам і " +"групам\n" +"IPA. SID буде збережено у об’єктах користувача або групи.\n" +"\n" +"Якщо, наприклад, для діапазону ідентифікаторів локального домену визначено\n" +"значення з наведеного вище прикладу, новий користувач з UID 1200007 отримає\n" +"RID 1007. Якщо цей RID вже буде використано групою, його буде змінено на " +"1000007.\n" +"Таке може трапитися лише, якщо об’єкт користувача або групи було створено з\n" +"фіксованим ідентифікатором, оскільки у разі автоматичного призначення один\n" +"ідентифікатор не може бути призначено двічі. Оскільки спільний простір назв\n" +"є лише у користувачів і груп, достатньо одного резервного діапазону для\n" +"того, щоб повністю позбутися конфліктів.\n" +"\n" +"Для визначення ідентифікатора POSIX за вказаним RID з локального домену " +"слід\n" +"спочатку перевірити, чи потрапляє RID у основний або вторинний діапазон " +"RID,\n" +"також, щоб отримати ідентифікатор POSIX, слід відняти від ідентифікатор rid-" +"base\n" +"або secondary-rid-base, відповідно, і додати base-id.\n" +"\n" +"Типово, створення діапазонів ідентифікаторів є зовні непомітним і потреби у\n" +"цьому інтерфейсі командного рядка не виникає. Діапазон ідентифікаторів\n" +"для локального домену буде створено під час встановлення або оновлення\n" +"попередньої версії. Діапазон ідентифікаторів для довіреного домену буде\n" +"створено разом з записом довіри командою «ipa trust-add ...».\n" +"Нижче наведено можливі випадки використання цього командного інтерфейсу.\n" +"\n" +"ВИПАДКИ ВИКОРИСТАННЯ:\n" +"\n" +" Додавання діапазону ідентифікаторів з перехідного довіреного домену\n" +"\n" +" Якщо довірений домен (A) довіряється іншому домену (B) і цей запис\n" +" довіри є перехідним, «ipa trust-add домен-A» створить лише діапазон\n" +" для домену A. Діапазон ідентифікаторів домену B має бути додано вручну.\n" +"\n" +" Додавання додаткового діапазону ідентифікаторів для локального домену\n" +"\n" +" Якщо діапазон ідентифікаторів локального домену вичерпано, тобто " +"додатком\n" +" DNA не може бути призначено нові ідентифікатори користувачам або групам\n" +" POSIX, має бути створено новий діапазон для додавання нових " +"користувачів\n" +" та груп. (У поточній версії між цим командним інтерфейсом і додатком " +"DNA\n" +" немає безпосереднього зв’язку, але у майбутній версії може бути " +"передбачено\n" +" можливість внесення змін і до налаштувань додатка DNS.)\n" +"\n" +"Загалом, потреби у зміні або вилученні діапазонів ідентифікаторів немає.\n" +"Якщо немає іншого виходу, окрім внесення змін або вилучення діапазону\n" +"ідентифікаторів, робити це слід дуже обережно. Оскільки UID зберігаються у\n" +"файловій системі і використовуються для керування доступом, можлива " +"ситуація,\n" +"коли одні користувачі отримуватимуть доступ до файлів інших користувачів\n" +"у разі вилучення діапазону ідентифікаторів і повторного його використання\n" +"у іншому домені.\n" +"\n" +"(*) RID типово є останнім цілим числом SID користувача або групи, перед " +"якими\n" +"має бути вказано SID домену. Наприклад, якщо SID домену " +"S-1-5-21-123-456-789, а\n" +"користувач з цього домену має SID S-1-5-21-123-456-789-1010, RID " +"користувача\n" +"буде 1010. RID є унікальними в межах домену, є 32-бітовими значенням і\n" +"використовуються для користувачів і груп.\n" +"\n" +"{0}\n" + +msgid "ID Ranges" +msgstr "Діапазони ідентифікаторів" + +msgid "ID Range" +msgstr "Діапазон ідентифікаторів" + +msgid "local domain range" +msgstr "локальний діапазон доменів" + +msgid "Active Directory domain range" +msgstr "Діапазон доменів Active Directory" + +msgid "Active Directory trust range with POSIX attributes" +msgstr "Діапазон довіри Active Directory з атрибутами POSIX" + +#, python-brace-format +msgid "ID range type, one of {vals}" +msgstr "Тип діапазону ідентифікаторів, одне з таких значень: {vals}" + +msgid "" +"range modification leaving objects with ID out of the defined range is not " +"allowed" +msgstr "" +"не можна виконувати зміни діапазону, у результаті яких виникають об’єкти з " +"ідентифікаторами поза визначеним діапазоном" + +msgid "" +"Cannot perform SID validation without Samba 4 support installed. Make sure " +"you have installed server-trust-ad sub-package of IPA on the server" +msgstr "" +"Виконати дію з перевірки SID без встановленої підтримки Samba 4 неможливо. " +"Переконайтеся, що вами встановлено на сервері підпакунок IPA server-trust-ad." + +msgid "" +"Cross-realm trusts are not configured. Make sure you have run ipa-adtrust-" +"install on the IPA server first" +msgstr "" +"Зв’язки довіри між областями не налаштовано. Спочатку запустіть ipa-adtrust-" +"install на сервері IPA." + +msgid "SID is not recognized as a valid SID for a trusted domain" +msgstr "SID не розпізнано як чинний SID для довіреного домену" + +#, python-brace-format +msgid "" +"\n" +" Add new ID range.\n" +"\n" +" To add a new ID range you always have to specify\n" +"\n" +" --base-id\n" +" --range-size\n" +"\n" +" Additionally\n" +"\n" +" --rid-base\n" +" --secondary-rid-base\n" +"\n" +" may be given for a new ID range for the local domain while\n" +"\n" +" --rid-base\n" +" --dom-sid\n" +"\n" +" must be given to add a new range for a trusted AD domain.\n" +"\n" +"{0}\n" +msgstr "" +"\n" +" Додати новий діапазон ідентифікаторів.\n" +"\n" +" Щоб додати новий діапазон ідентифікаторів, вам слід завжди вказати\n" +"\n" +" --base-id\n" +" --range-size\n" +"\n" +" Крім того, можна вказати\n" +"\n" +" --rid-base\n" +" --secondary-rid-base\n" +"\n" +" для нового діапазону ідентифікаторів для локального домену, а\n" +"\n" +" --rid-base\n" +" --dom-sid\n" +"\n" +" слід вказати для додавання нового діапазону для довіреного домену AD.\n" +"\n" +"{0}\n" + +#, python-format +msgid "Added ID range \"%(value)s\"" +msgstr "Додано діапазон ідентифікаторів «%(value)s»" + +msgid "Options dom-sid and dom-name cannot be used together" +msgstr "Параметри dom-sid і dom-name не можна використовувати разом" + +msgid "" +"SID for the specified trusted domain name could not be found. Please specify " +"the SID directly using dom-sid option." +msgstr "" +"Не вдалося знайти SID для вказаного довіреного домену. Будь ласка, вкажіть " +"SID безпосередньо за допомогою параметра dom-sid." + +msgid "Options dom-sid/dom-name and rid-base must be used together" +msgstr "Параметри dom-sid/dom-name і rid-base слід використовувати разом" + +msgid "" +"Option rid-base must not be used when IPA range type is ipa-ad-trust-posix" +msgstr "" +"Параметр rid-base не слід використовувати, якщо типом діапазону IPA є ipa-ad-" +"trust-posix" + +msgid "" +"IPA Range type must be one of ipa-ad-trust or ipa-ad-trust-posix when SID of " +"the trusted domain is specified" +msgstr "" +"Якщо вказано SID довіреного домену, типом діапазону IPA має бути ipa-ad-" +"trust або ipa-ad-trust-posix" + +msgid "Options dom-sid/dom-name and secondary-rid-base cannot be used together" +msgstr "" +"Параметри dom-sid/dom-name і secondary-rid-base не можна використовувати " +"разом" + +msgid "" +"IPA Range type must not be one of ipa-ad-trust or ipa-ad-trust-posix when " +"SID of the trusted domain is not specified." +msgstr "" +"Якщо не вказано SID довіреного домену, типом діапазону IPA не може бути ipa-" +"ad-trust або ipa-ad-trust-posix." + +msgid "Options secondary-rid-base and rid-base must be used together" +msgstr "Параметри secondary-rid-base і rid-base слід використовувати разом" + +msgid "Primary RID range and secondary RID range cannot overlap" +msgstr "" +"Основний діапазон RID і вторинний діапазон RID не повинні перекриватися" + +msgid "" +"You must specify both rid-base and secondary-rid-base options, because ipa-" +"adtrust-install has already been run." +msgstr "" +"Вам слід вказати обидва параметри, rid-base і secondary-rid-base, оскільки " +"вже запущено ipa-adtrust-install." + +#, python-format +msgid "Deleted ID range \"%(value)s\"" +msgstr "Вилучено діапазон ідентифікаторів «%(value)s»" + +#, python-format +msgid "%(count)d range matched" +msgid_plural "%(count)d ranges matched" +msgstr[0] "встановлено відповідність %(count)d діапазону" +msgstr[1] "встановлено відповідність %(count)d діапазонів" +msgstr[2] "встановлено відповідність %(count)d діапазонів" + +#, python-brace-format +msgid "" +"Modify ID range.\n" +"\n" +"{0}\n" +msgstr "" +"Змінити діапазон ідентифікаторів.\n" +"\n" +"{0}\n" + +#, python-format +msgid "Modified ID range \"%(value)s\"" +msgstr "Змінено діапазон ідентифікаторів «%(value)s»" + +msgid "" +"This command can not be used to change ID allocation for local IPA domain. " +"Run `ipa help idrange` for more information" +msgstr "" +"Цією командою не можна скористатися для зміни розподілу ідентифікаторів для " +"локального домену IPA. Щоб дізнатися більше, скористайтеся командою «ipa " +"help idrange»." + +msgid "Options dom-sid and secondary-rid-base cannot be used together" +msgstr "Параметри dom-sid і secondary-rid-base не можна використовувати разом" + +msgid "Options dom-sid and rid-base must be used together" +msgstr "Параметри dom-sid і rid-base слід використовувати разом" + +msgid "" +"\n" +"Services\n" +"\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" +"\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" +"\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" +"\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" +"\n" +" Override a default list of supported PAC types for the service:\n" +" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n" +"\n" +" A typical use case where overriding the PAC type is needed is NFS.\n" +" Currently the related code in the Linux kernel can only handle Kerberos\n" +" tickets up to a maximal size. Since the PAC data can become quite large " +"it\n" +" is recommended to set --pac-type=NONE for NFS services.\n" +"\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" +"\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" +"\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" +"\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" +msgstr "" +"\n" +"Служби\n" +"\n" +"Служба IPA — це служба, що працює на вузлі системи. У записі служби\n" +"IPA можуть зберігатися дані реєстраційного запису Kerberos, сертифікат\n" +"SSL або обидва набори даних.\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" +"\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" +" Перевизначити типовий список підтримуваних типів PAC для служби:\n" +" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n" +"\n" +" Типовим випадком, коли потрібне перевизначення типу PAC є NFS.\n" +" У поточній версії ядра Linux відповідний код може працювати лише з\n" +" квитками Kerberos, розмір яких не перевищує максимально заданого.\n" +" Оскільки дані PAC можуть бути доволі об’ємними, для служб NFS\n" +" рекомендуємо встановити --pac-type=NONE.\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" + +msgid "" +"\n" +" Allow user to create a keytab:\n" +" ipa service-allow-create-keytab HTTP/web.example.com --users=tuser1\n" +msgstr "" +"\n" +" Дозволити користувачеві створювати таблицю ключів:\n" +" ipa service-allow-create-keytab HTTP/web.example.com --users=tuser1\n" + +msgid "" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/" +"httpd.keytab\n" +"\n" +msgstr "" +"\n" +" Створити і отримати таблицю ключів служби IPA:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/" +"httpd.keytab\n" +"\n" + +msgid "Trusted to authenticate as user" +msgstr "Довіра до розпізнавання як користувача" + +msgid "The service is allowed to authenticate on behalf of a client" +msgstr "Службі дозволено проходити розпізнавання від імені клієнта" + +msgid "Malformed principal" +msgstr "Помилкове форматування реєстраційного запису" + +msgid "This principal is required by the IPA master" +msgstr "Цей реєстраційний запис потрібен основному серверу IPA" + +msgid "service" +msgstr "служба" + +msgid "services" +msgstr "служби" + +msgid "Principal alias" +msgstr "Псевдонім реєстраційного запису" + +msgid "Service principal alias" +msgstr "Альтернативна назва реєстраційного запису служби" + +msgid "Base-64 encoded service certificate" +msgstr "Сертифікат служби у кодуванні Base-64" + +msgid "Serial Number" +msgstr "Серійний номер" + +msgid "Serial Number (hex)" +msgstr "Серійний номер (шістнадцятковий)" + +msgid "Issuer" +msgstr "Видавець" + +msgid "Not Before" +msgstr "Не раніше" + +msgid "Not After" +msgstr "Не пізніше" + +msgid "Fingerprint (SHA1)" +msgstr "Відбиток (SHA1)" + +msgid "Fingerprint (SHA256)" +msgstr "Відбиток (SHA256)" + +msgid "Revocation reason" +msgstr "Причина відкликання" + +msgid "Authentication Indicators" +msgstr "Індикатори розпізнавання" + +msgid "" +"Defines a whitelist for Authentication Indicators. Use 'otp' to allow OTP-" +"based 2FA authentications. Use 'radius' to allow RADIUS-based 2FA " +"authentications. Other values may be used for custom configurations." +msgstr "" +"Визначає «білий» список для індикаторів розпізнавання. Скористайтеся " +"значенням «otp», щоб дозволити розпізнавання 2FA на основі OTP. " +"Скористайтеся значенням «radius», щоб дозволити розпізнавання 2FA на основі " +"RADIUS. Іншими значеннями можна скористатися для нетипових конфігурацій." + +msgid "NONE value cannot be combined with other PAC types" +msgstr "Значення NONE не можна поєднувати з іншими типами PAC" + +msgid "Add a new IPA service." +msgstr "Додати нову службу IPA." + +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "Додано службу «%(value)s»" + +#, python-format +msgid "The host '%s' does not exist to add a service to." +msgstr "Не існує вузла «%s», до якого слід було додати службу." + +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "Вилучено службу «%(value)s»" + +#, python-format +msgid "Modified service \"%(value)s\"" +msgstr "Змінено службу «%(value)s»" + +#, 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 служб" + +#, python-format +msgid "Disabled service \"%(value)s\"" +msgstr "Вимкнено службу «%(value)s»" + +#, python-format +msgid "Added certificates to service principal \"%(value)s\"" +msgstr "Додано сертифікати до реєстраційного запис служби «%(value)s»" + +#, python-format +msgid "Removed certificates from service principal \"%(value)s\"" +msgstr "Вилучено сертифікати із реєстраційного запису служби «%(value)s»" + +msgid "Add new principal alias to a service" +msgstr "Додати нову альтернативну назву реєстраційного запису до служби" + +#, python-format +msgid "Added new aliases to the service principal \"%(value)s\"" +msgstr "Додано нові псевдоніми реєстраційного запису служби «%(value)s»" + +msgid "Remove principal alias from a service" +msgstr "Вилучити альтернативну назву реєстраційного запису зі служби" + +#, python-format +msgid "Removed aliases to the service principal \"%(value)s\"" +msgstr "Вилучено псевдоніми реєстраційного запису служби «%(value)s»" + +#, python-brace-format +msgid "" +"Domain Level cannot be raised to {0}, existing replication conflicts have to " +"be resolved." +msgstr "" +"Рівень домену не може бути піднято до {0}, слід розв’язати наявні конфлікти " +"реплікації." + +msgid "Domain Level cannot be lowered." +msgstr "Не можна знижувати рівень домену." + +#, python-brace-format +msgid "Domain Level cannot be raised to {0}, server {1} does not support it." +msgstr "" +"Не можна підняти рівень домену до {0}, оскільки на сервері {1} не " +"передбачено підтримки такого рівня." + +msgid "" +"\n" +"DNS server configuration\n" +msgstr "" +"\n" +"Налаштування сервера DNS\n" + +msgid "" +"\n" +"Manipulate DNS server configuration\n" +msgstr "" +"\n" +"Керування налаштуваннями сервера DNS\n" + +msgid "" +"\n" +" Show configuration of a specific DNS server:\n" +" ipa dnsserver-show\n" +msgstr "" +"\n" +" Показати налаштування певного сервера DNS:\n" +" ipa dnsserver-show\n" + +msgid "" +"\n" +" Update configuration of a specific DNS server:\n" +" ipa dnsserver-mod\n" +msgstr "" +"\n" +" Оновити налаштування для вказаного сервера DNS:\n" +" ipa dnsserver-mod\n" + +msgid "DNS server" +msgstr "Сервер DNS" + +msgid "DNS servers" +msgstr "Сервери DNS" + +msgid "DNS Servers" +msgstr "Сервери DNS" + +msgid "DNS Server" +msgstr "Сервер DNS" + +msgid "DNS Server name" +msgstr "Назва сервера DNS" + +msgid "SOA mname override" +msgstr "Перевизначення mname SOA" + +msgid "SOA mname (authoritative server) override" +msgstr "Перевизначити mname SOA (довірений сервер)" + +msgid "Forwarders" +msgstr "Переспрямовувачі" + +msgid "" +"Per-server forwarders. A custom port can be specified for each forwarder " +"using a standard format \"IP_ADDRESS port PORT\"" +msgstr "" +"Окремі переспрямовувачі для серверів. Нетиповий порт можна вказати для " +"кожного переспрямовувача за допомогою стандартної конструкції «IP_АДРЕСА " +"port ПОРТ»" + +msgid "" +"Per-server conditional forwarding policy. Set to \"none\" to disable " +"forwarding to global forwarder for this zone. In that case, conditional zone " +"forwarders are disregarded." +msgstr "" +"Умовні правила переспрямування для окремого сервера. Встановіть значення " +"«none» для вимикання переспрямовувача загального рівня для цієї зони. Якщо " +"ви встановите це значення, умовні переспрямовувачі зони не братимуться до " +"уваги." + +msgid "DNS is not configured" +msgstr "DNS не налаштовано" + +msgid "Modify DNS server configuration" +msgstr "Змінити налаштування сервера DNS" + +#, python-format +msgid "Modified DNS server \"%(value)s\"" +msgstr "Змінено запис сервера DNS «%(value)s»" + +msgid "Search for DNS servers." +msgstr "Шукати сервери DNS." + +#, python-format +msgid "%(count)d DNS server matched" +msgid_plural "%(count)d DNS servers matched" +msgstr[0] "встановлено відповідність %(count)d сервера DNS" +msgstr[1] "встановлено відповідність %(count)d серверів DNS" +msgstr[2] "встановлено відповідність %(count)d серверів DNS" + +msgid "IPA DNS Server is not installed" +msgstr "Сервер DNS IPA не встановлено" + +msgid "Display configuration of a DNS server." +msgstr "Показати налаштування сервера DNS." + +msgid "Add a new DNS server." +msgstr "Додати новий запис сервера DNS." + +#, python-format +msgid "Added new DNS server \"%(value)s\"" +msgstr "Додано новий запис сервера DNS «%(value)s»" + +msgid "Delete a DNS server" +msgstr "Вилучити запис сервера DNS" + +#, python-format +msgid "Deleted DNS server \"%(value)s\"" +msgstr "Вилучено сервер DNS «%(value)s»" + +msgid "The deny type has been deprecated." +msgstr "Тип «deny» вважається застарілим." + +msgid "HBAC rules" +msgstr "правила HBAC" + +msgid "HBAC Rules" +msgstr "Правила HBAC" + +#, python-format +msgid "Added HBAC rule \"%(value)s\"" +msgstr "Додано правило HBAC «%(value)s»" + +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" +msgstr "Вилучено правило HBAC «%(value)s»" + +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" +msgstr "Змінено правило HBAC «%(value)s»" + +msgid "" +"service category cannot be set to 'all' while there are allowed services" +msgstr "" +"не можна встановлювати для категорії служб значення «all», доки є дозволені " +"служби" + +#, 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" + +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" +msgstr "Увімкнено правило HBAC «%(value)s»" + +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" +msgstr "Вимкнено правило HBAC «%(value)s»" + +msgid "Access time" +msgstr "Час доступу" + +msgid "services cannot be added when service category='all'" +msgstr "не можна додавати записи служб, якщо категорія служб=«all»" + +msgid "" +"\n" +"Certificate Identity Mapping\n" +msgstr "" +"\n" +"Прив’язка сертифікатів до профілів\n" + +msgid "" +"\n" +"Manage Certificate Identity Mapping configuration and rules.\n" +msgstr "" +"\n" +"Керування налаштуваннями і правилами прив’язки сертифікатів до профілів.\n" + +msgid "" +"\n" +"IPA supports the use of certificates for authentication. Certificates can\n" +"either be stored in the user entry (full certificate in the usercertificate\n" +"attribute), or simply linked to the user entry through a mapping.\n" +"This code enables the management of the rules allowing to link a\n" +"certificate to a user entry.\n" +msgstr "" +"\n" +"У IPA передбачено підтримку використання сертифікатів для розпізнавання. " +"Сертифікати\n" +"можуть зберігатися або у записі користувача (весь сертифікат у атрибуті\n" +"usercertificate), або просто прив’язуватися до запису користувача.\n" +"Цей код уможливлює керування правилами доступу до прив’язування сертифіката " +"до\n" +"запису користувача.\n" + +msgid "" +"\n" +" Display the Certificate Identity Mapping global configuration:\n" +" ipa certmapconfig-show\n" +msgstr "" +"\n" +" Вивести загальні налаштування прив’язки сертифікатів до профілів:\n" +" ipa certmapconfig-show\n" + +msgid "" +"\n" +" Modify Certificate Identity Mapping global configuration:\n" +" ipa certmapconfig-mod --promptusername=TRUE\n" +msgstr "" +"\n" +" Змінити загальні налаштування прив’язки сертифікатів до профілів:\n" +" ipa certmapconfig-mod --promptusername=TRUE\n" + +msgid "" +"\n" +" Create a new Certificate Identity Mapping Rule:\n" +" ipa certmaprule-add rule1 --desc=\"Link certificate with subject and " +"issuer\"\n" +msgstr "" +"\n" +" Створити правило прив’язування сертифікатів до профілів:\n" +" ipa certmaprule-add rule1 --desc=\"Link certificate with subject and " +"issuer\"\n" + +msgid "" +"\n" +" Modify a Certificate Identity Mapping Rule:\n" +" ipa certmaprule-mod rule1 --maprule=\"\"\n" +msgstr "" +"\n" +" Змінити правило прив’язування сертифікатів до профілів:\n" +" ipa certmaprule-mod rule1 --maprule=\"\"\n" + +msgid "" +"\n" +" Disable a Certificate Identity Mapping Rule:\n" +" ipa certmaprule-disable rule1\n" +msgstr "" +"\n" +" Вимкнути правило прив’язування сертифікатів до профілів:\n" +" ipa certmaprule-disable rule1\n" + +msgid "" +"\n" +" Enable a Certificate Identity Mapping Rule:\n" +" ipa certmaprule-enable rule1\n" +msgstr "" +"\n" +" Увімкнути правило прив’язування сертифікатів до профілів:\n" +" ipa certmaprule-enable rule1\n" + +msgid "" +"\n" +" Display information about a Certificate Identity Mapping Rule:\n" +" ipa certmaprule-show rule1\n" +msgstr "" +"\n" +" Вивести дані щодо правила прив’язування сертифікатів до профілів:\n" +" ipa certmaprule-show rule1\n" + +msgid "" +"\n" +" Find all Certificate Identity Mapping Rules with the specified domain:\n" +" ipa certmaprule-find --domain example.com\n" +msgstr "" +"\n" +" Знайти усі правила прив’язування сертифікатів до профілів із вказаним " +"доменом:\n" +" ipa certmaprule-find --domain example.com\n" + +msgid "" +"\n" +" Delete a Certificate Identity Mapping Rule:\n" +" ipa certmaprule-del rule1\n" +msgstr "" +"\n" +" Вилучити правило прив’язування сертифікатів до профілів:\n" +" ipa certmaprule-del rule1\n" + +msgid "domain" +msgstr "домен" + +#, python-format +msgid "The domain %s is neither IPA domain nor a trusteddomain." +msgstr "Домен %s не є ні доменом IPA, ні довіреним доменом." + +msgid "Certificate Identity Mapping configuration options" +msgstr "Параметри налаштування прив’язки сертифікатів до профілів" + +msgid "Certificate Identity Mapping Global Configuration" +msgstr "Загальні налаштування прив’язки сертифікатів до профілів" + +msgid "Prompt for the username" +msgstr "Запит щодо імені користувача" + +msgid "" +"Prompt for the username when multiple identities are mapped to a certificate" +msgstr "" +"Запитувати ім’я користувача, якщо із сертифікатом пов’язано декілька профілів" + +msgid "Modify Certificate Identity Mapping configuration." +msgstr "Змінити налаштування прив’язки сертифікатів до профілів." + +msgid "Show the current Certificate Identity Mapping configuration." +msgstr "Показати поточні налаштування прив’язки сертифікатів до профілів." + +msgid "Certificate Identity Mapping Rules" +msgstr "Правила прив’язування сертифікатів до профілів" + +msgid "Certificate Identity Mapping Rule" +msgstr "Правило прив’язування сертифікатів до профілів" + +msgid "Certificate Identity Mapping Rule name" +msgstr "Назва правила прив’язування сертифікатів до профілів" + +msgid "Certificate Identity Mapping Rule description" +msgstr "Опис правила прив’язування сертифікатів до профілів" + +msgid "Mapping rule" +msgstr "Правило прив’язування" + +msgid "Rule used to map the certificate with a user entry" +msgstr "" +"Правило, яке використовується для прив’язування сертифіката до запису " +"користувача" + +msgid "Matching rule" +msgstr "Правило відповідності" + +msgid "Rule used to check if a certificate can be used for authentication" +msgstr "" +"Правило, яке використовується для визначення того, чи придатний сертифікат " +"для розпізнавання" + +msgid "Domain where the user entry will be searched" +msgstr "Домен, у якому слід шукати запис користувача" + +msgid "Priority of the rule (higher number means lower priority" +msgstr "Пріоритет правила (більше число — нижчий пріоритет)" + +msgid "Create a new Certificate Identity Mapping Rule." +msgstr "Створити правило прив’язування сертифіката до профілів." + +#, python-format +msgid "Added Certificate Identity Mapping Rule \"%(value)s\"" +msgstr "Додано правило прив’язування сертифікатів до профілів «%(value)s»" + +msgid "Modify a Certificate Identity Mapping Rule." +msgstr "Змінити правило прив’язування сертифікатів до профілів." + +#, python-format +msgid "Modified Certificate Identity Mapping Rule \"%(value)s\"" +msgstr "Змінено правило прив’язування сертифікатів до профілів «%(value)s»" + +msgid "Search for Certificate Identity Mapping Rules." +msgstr "Шукати правила прив’язування сертифікатів до профілів." + +#, python-format +msgid "%(count)d Certificate Identity Mapping Rule matched" +msgid_plural "%(count)d Certificate Identity Mapping Rules matched" +msgstr[0] "" +"Встановлено відповідність %(count)d правила прив’язування сертифікатів до " +"профілів" +msgstr[1] "" +"Встановлено відповідність %(count)d правил прив’язування сертифікатів до " +"профілів" +msgstr[2] "" +"Встановлено відповідність %(count)d правил прив’язування сертифікатів до " +"профілів" + +msgid "Display information about a Certificate Identity Mapping Rule." +msgstr "Вивести дані щодо правила прив’язування сертифікатів до профілів." + +msgid "Delete a Certificate Identity Mapping Rule." +msgstr "Вилучити правило прив’язування сертифікатів до профілів." + +#, python-format +msgid "Deleted Certificate Identity Mapping Rule \"%(value)s\"" +msgstr "Вилучено правило прив’язування сертифікатів до профілів «%(value)s»" + +msgid "Enable a Certificate Identity Mapping Rule." +msgstr "Увімкнути правило прив’язування сертифікатів до профілів." + +#, python-format +msgid "Enabled Certificate Identity Mapping Rule \"%(value)s\"" +msgstr "Увімкнено правило прив’язування сертифікатів до профілів «%(value)s»" + +msgid "Disable a Certificate Identity Mapping Rule." +msgstr "Вимкнути правило прив’язування сертифікатів до профілів." + +#, python-format +msgid "Disabled Certificate Identity Mapping Rule \"%(value)s\"" +msgstr "Вимкнено правило прив’язування сертифікатів до профілів «%(value)s»" + +msgid "Failed to connect to sssd over SystemBus. See details in the error_log" +msgstr "" +"Не вдалося встановити з’єднання із sssd за допомогою SystemBus. Докладніший " +"опис — у файлі error_log" + +msgid "Failed to find users over SystemBus. See details in the error_log" +msgstr "" +"Не вдалося знайти користувачів за допомогою SystemBus. Докладніший опис — у " +"файлі error_log" + +msgid "User logins" +msgstr "Користувачі" + +msgid "" +"\n" +" Search for users matching the provided certificate.\n" +"\n" +" This command relies on SSSD to retrieve the list of matching users and\n" +" may return cached data. For more information on purging SSSD cache,\n" +" please refer to sss_cache documentation.\n" +" " +msgstr "" +"\n" +" Шукати користувачів, яких пов’язано із наданим сертифікатом.\n" +"\n" +" Для отримання списку відповідних користувачів ця команда покладається\n" +" на дані SSSD, отже, вона може повертати кешовані дані. Докладніше про\n" +" очищення кешу SSSD можна дізнатися із документації до sss_cache.\n" +" " + +#, python-format +msgid "%(count)s user matched" +msgid_plural "%(count)s users matched" +msgstr[0] "Встановлено відповідність %(count)s користувача" +msgstr[1] "Встановлено відповідність %(count)s користувачів" +msgstr[2] "Встановлено відповідність %(count)s користувачів" + +#, python-format +msgid "" +"cannot add permission \"%(perm)s\" with bindtype \"%(bindtype)s\" to a " +"privilege" +msgstr "" +"неможливо додати права доступу «%(perm)s» з типом прив’язки «%(bindtype)s» " +"до привілею" + +msgid "Privilege" +msgstr "Привілей" + +#, python-format +msgid "Added privilege \"%(value)s\"" +msgstr "Додано привілей «%(value)s»" + +#, python-format +msgid "Deleted privilege \"%(value)s\"" +msgstr "Вилучено привілей «%(value)s»" + +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "Змінено привілей «%(value)s»" + +#, 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 привілеїв" + +msgid "Realm domains" +msgstr "Домени області" + +msgid "Realm Domains" +msgstr "Домени області" + +#, python-format +msgid "" +"DNS zone for each realmdomain must contain SOA or NS records. No records " +"found for: %s" +msgstr "" +"Запис зони DNS для кожного realmdomain має містити записи SOA або NS. Для %s " +"таких записів не виявлено" + +#, python-format +msgid "The following domains do not belong to this realm: %(domains)s" +msgstr "Вказані нижче домени не належать до цієї області: %(domains)s" + +#, python-format +msgid "" +"The realm of the following domains could not be detected: %(domains)s. If " +"these are domains that belong to the this realm, please create a _kerberos " +"TXT record containing \"%(realm)s\" in each of them." +msgstr "" +"Не вдалося виявити область таких доменів: %(domains)s. Якщо ці домени " +"належать до цієї області, будь ласка, створіть запис TXT _kerberos, що " +"міститиме «%(realm)s», на кожному з них." + +msgid "" +"The --domain option cannot be used together with --add-domain or --del-" +"domain. Use --domain to specify the whole realm domain list explicitly, to " +"add/remove individual domains, use --add-domain/del-domain." +msgstr "" +"Параметр --domain не можна використовувати разом із параметрами --add-domain " +"і --del-domain. Скористайтеся параметром --domain для визначення усього " +"списку доменів області явним чином. Щоб додати або вилучити окремі домени, " +"скористайтеся параметрами --add-domain/del-domain." + +msgid "IPA server domain cannot be omitted" +msgstr "Домен сервера IPA не можна пропускати" + +msgid "IPA server domain cannot be deleted" +msgstr "Домен сервера IPA не можна вилучати" + +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" + +msgid "HBAC services" +msgstr "Служби HBAC" + +msgid "HBAC Services" +msgstr "Служби HBAC" + +msgid "HBAC Service" +msgstr "Служба HBAC" + +#, python-format +msgid "Added HBAC service \"%(value)s\"" +msgstr "Додано службу HBAC «%(value)s»" + +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" +msgstr "Вилучено службу HBAC «%(value)s»" + +#, python-format +msgid "Modified HBAC service \"%(value)s\"" +msgstr "Змінено службу HBAC «%(value)s»" + +#, 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" + +msgid "" +"\n" +"Stageusers\n" +"\n" +"Manage stage user entries.\n" +"\n" +"Stage user entries are directly under the container: \"cn=stage users,\n" +"cn=accounts, cn=provisioning, SUFFIX\".\n" +"Users can not authenticate with those entries (even if the entries\n" +"contain credentials). Those entries are only candidate to become Active " +"entries.\n" +"\n" +"Active user entries are Posix users directly under the container: " +"\"cn=accounts, SUFFIX\".\n" +"Users can authenticate with Active entries, at the condition they have\n" +"credentials.\n" +"\n" +"Deleted user entries are Posix users directly under the container: " +"\"cn=deleted users,\n" +"cn=accounts, cn=provisioning, SUFFIX\".\n" +"Users can not authenticate with those entries, even if the entries contain " +"credentials.\n" +"\n" +"The stage user container contains entries:\n" +" - created by 'stageuser-add' commands that are Posix users,\n" +" - created by external provisioning system.\n" +"\n" +"A valid stage user entry MUST have:\n" +" - entry RDN is 'uid',\n" +" - ipaUniqueID is 'autogenerate'.\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" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new stageuser:\n" +" ipa stageuser-add --first=Tim --last=User --password tuser1\n" +"\n" +" Add a stageuser from the deleted users container:\n" +" ipa stageuser-add --first=Tim --last=User --from-delete tuser1\n" +"\n" +msgstr "" +"\n" +"Користувачі етапу\n" +"\n" +"Керування записами користувачів етапу.\n" +"\n" +"Записи користувачів етапу перебувають безпосередньо у контейнері:\n" +"\"cn=stage users, cn=accounts, cn=provisioning, SUFFIX\".\n" +"Користувач не може пройти розпізнавання за допомогою цих записів\n" +"(навіть якщо записи містять реєстраційні дані) і є кандидатами на\n" +"перетворення на активні записи.\n" +"\n" +"Записи активних користувачів є користувачами Posix, що перебувають\n" +"безпосередньо у контейнері: \"cn=accounts, SUFFIX\".\n" +"Користувач може пройти розпізнавання за допомогою активних записів,\n" +"якщо для них передбачено реєстраційні дані\n" +"\n" +"Вилучені записи користувачів є записами користувачів Posix, що\n" +"перебувають безпосередньо у контейнері: \"cn=deleted users,\n" +"cn=accounts, cn=provisioning, SUFFIX\".\n" +"Користувачі не можуть проходити розпізнавання за допомогою цих\n" +"записів (навіть якщо записи містять реєстраційні дані)\n" +"\n" +"Контейнер користувачів етапу містить записи\n" +" - створені командами 'stageuser-add', які є користувачами Posix\n" +" - створені зовнішньою системою забезпечення\n" +"\n" +"Коректний запис користувача етапу МАЄ відповідати таким вимогам:\n" +" - RDN запису має значення 'uid'\n" +" - ipaUniqueID має значення 'autogenerate'\n" +"\n" +"У IPA передбачено підтримку широкого діапазону форматів імен користувачів,\n" +"але слід зважати на різноманітні обмеження, які можуть стосуватися " +"середовища,\n" +"у якому ви працюєте. Наприклад, імена користувачів, що починаються з цифри,\n" +"або імена користувачів, довжина яких перевищує певну довжину, можуть\n" +"призвести до проблем у деяких системах UNIX.\n" +"Для зміни формату, який дозволено інструментами IPA, скористайтеся командою\n" +"'ipa config-mod'.\n" +"\n" +"\n" +"ПРИКЛАДИ:\n" +"\n" +" Додати нового користувача етапу:\n" +" ipa stageuser-add --first=Tim --last=User --password tuser1\n" +"\n" +" Додати користувача етапу з контейнера вилучених користувачів\n" +" ipa stageuser-add --first=Tim --last=User --from-delete tuser1\n" +"\n" + +msgid "Stage Users" +msgstr "Користувачі етапу" + +msgid "Stage User" +msgstr "Користувач етапу" + +msgid "stage user" +msgstr "користувач етапу" + +msgid "stage users" +msgstr "користувачі етапу" + +#, python-format +msgid "Added stage user \"%(value)s\"" +msgstr "Додано користувача етапу «%(value)s»" + +msgid "givenname is required" +msgstr "слід вказати ім’я" + +msgid "sn is required" +msgstr "слід вказати sn" + +#, python-format +msgid "can be at most %(len)d characters" +msgstr "не повинне перевищувати %(len)d символів у довжину" + +#, python-format +msgid "Deleted stage user \"%(value)s\"" +msgstr "Вилучено запис користувача етапу «%(value)s»" + +#, python-format +msgid "Modified stage user \"%(value)s\"" +msgstr "Змінено запис користувача етапу «%(value)s»" + +#, python-format +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "встановлено відповідність %(count)d користувача" +msgstr[1] "встановлено відповідність %(count)d користувачів" +msgstr[2] "встановлено відповідність %(count)d користувачів" + +#, python-format +msgid "Activate a stage user \"%(value)s\"" +msgstr "Активувати користувача етапу «%(value)s»" + +msgid "Entry RDN is not 'uid'" +msgstr "RDN запису не належить до «uid»" + +#, python-format +msgid "Entry has no '%(attribute)s'" +msgstr "У запису немає атрибута «%(attribute)s»" + +#, python-format +msgid "active user with name \"%(user)s\" already exists" +msgstr "запис активного користувача із іменем «%(user)s» вже існує" + +#, python-format +msgid "Stage user %s activated" +msgstr "Активовано користувача етапу %s" + +msgid "Add one or more certificates to the stageuser entry" +msgstr "Додати один або декілька сертифікатів запису користувача етапу" + +#, python-format +msgid "Added certificates to stageuser \"%(value)s\"" +msgstr "Додано сертифікати до запису користувача етапу «%(value)s»" + +msgid "Remove one or more certificates to the stageuser entry" +msgstr "Вилучити один або декілька сертифікатів запису користувача етапу" + +#, python-format +msgid "Removed certificates from stageuser \"%(value)s\"" +msgstr "Вилучено сертифікати із запису користувача етапу «%(value)s»" + +msgid "Add new principal alias to the stageuser entry" +msgstr "" +"Додати новий псевдонім реєстраційного запису до запису користувача етапу" + +#, python-format +msgid "Added new aliases to stageuser \"%(value)s\"" +msgstr "Додано нові псевдоніми до запису користувача етапу «%(value)s»" + +msgid "Remove principal alias from the stageuser entry" +msgstr "Вилучити псевдонім реєстраційного запису із запису користувача етапу" + +#, python-format +msgid "Removed aliases from stageuser \"%(value)s\"" +msgstr "Вилучено псевдоніми із запису користувача етапу «%(value)s»" + +msgid "Add one or more certificate mappings to the stage user entry." +msgstr "" +"Додати одну або декілька прив’язок сертифікатів до запису користувача етапу." + +msgid "Remove one or more certificate mappings from the stage user entry." +msgstr "" +"Вилучити одну або декілька прив’язок сертифікатів із запису користувача " +"етапу." + +msgid "" +"\n" +"RADIUS Proxy Servers\n" +msgstr "" +"\n" +"Проксі-сервери RADIUS\n" + +msgid "" +"\n" +"Manage RADIUS Proxy Servers.\n" +msgstr "" +"\n" +"Керування проксі-серверами RADIUS.\n" + +msgid "" +"\n" +"IPA supports the use of an external RADIUS proxy server for krb5 OTP\n" +"authentications. This permits a great deal of flexibility when\n" +"integrating with third-party authentication services.\n" +msgstr "" +"\n" +"У IPA передбачено підтримку зовнішнього проксі-сервера RADIUS для\n" +"виконання розпізнавання OTP krb5. Це надає системі значної гнучкості\n" +"з метою інтеграції зі сторонніми службами розпізнавання.\n" + +msgid "" +"\n" +" Add a new server:\n" +" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" +msgstr "" +"\n" +" Додати новий сервер:\n" +" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" + +msgid "" +"\n" +" Find all servers whose entries include the string \"example.com\":\n" +" ipa radiusproxy-find example.com\n" +msgstr "" +"\n" +" Знайти усі сервери, чиї запис містять рядок «example.com»:\n" +" ipa radiusproxy-find example.com\n" + +msgid "" +"\n" +" Examine the configuration:\n" +" ipa radiusproxy-show MyRADIUS\n" +msgstr "" +"\n" +" Перевірити налаштування:\n" +" ipa radiusproxy-show MyRADIUS\n" + +msgid "" +"\n" +" Change the secret:\n" +" ipa radiusproxy-mod MyRADIUS --secret\n" +msgstr "" +"\n" +" Змінити реєстраційні дані:\n" +" ipa radiusproxy-mod MyRADIUS --secret\n" + +msgid "" +"\n" +" Delete a configuration:\n" +" ipa radiusproxy-del MyRADIUS\n" +msgstr "" +"\n" +" Вилучити налаштування:\n" +" ipa radiusproxy-del MyRADIUS\n" + +msgid "invalid attribute name" +msgstr "некоректна назва атрибута" + +msgid "invalid port number" +msgstr "некоректний номер порту" + +msgid "RADIUS proxy server" +msgstr "Проксі-сервер RADIUS" + +msgid "RADIUS proxy servers" +msgstr "Проксі-сервери RADIUS" + +msgid "RADIUS Servers" +msgstr "Сервери RADIUS" + +msgid "RADIUS Server" +msgstr "Сервер RADIUS" + +#, python-format +msgid "Added RADIUS proxy server \"%(value)s\"" +msgstr "Додано проксі-сервер RADIUS «%(value)s»" + +#, python-format +msgid "Deleted RADIUS proxy server \"%(value)s\"" +msgstr "Вилучити проксі-сервер RADIUS «%(value)s»" + +#, python-format +msgid "Modified RADIUS proxy server \"%(value)s\"" +msgstr "Змінено запис проксі-сервера RADIUS «%(value)s»" + +#, python-format +msgid "%(count)d RADIUS proxy server matched" +msgid_plural "%(count)d RADIUS proxy servers matched" +msgstr[0] "Встановлено відповідність %(count)d проксі-сервера RADIUS" +msgstr[1] "Встановлено відповідність %(count)d проксі-серверів RADIUS" +msgstr[2] "Встановлено відповідність %(count)d проксі-серверів RADIUS" + +msgid "" +"\n" +"Manage Certificate Profiles\n" +"\n" +"Certificate Profiles are used by Certificate Authority (CA) in the signing " +"of\n" +"certificates to determine if a Certificate Signing Request (CSR) is " +"acceptable,\n" +"and if so what features and extensions will be present on the certificate.\n" +"\n" +"The Certificate Profile format is the property-list format understood by " +"the\n" +"Dogtag or Red Hat Certificate System CA.\n" +"\n" +"PROFILE ID SYNTAX:\n" +"\n" +"A Profile ID is a string without spaces or punctuation starting with a " +"letter\n" +"and followed by a sequence of letters, digits or underscore (\"_\").\n" +"\n" +"EXAMPLES:\n" +"\n" +" Import a profile that will not store issued certificates:\n" +" ipa certprofile-import ShortLivedUserCert \\\n" +" --file UserCert.profile --desc \"User Certificates\" \\\n" +" --store=false\n" +"\n" +" Delete a certificate profile:\n" +" ipa certprofile-del ShortLivedUserCert\n" +"\n" +" Show information about a profile:\n" +" ipa certprofile-show ShortLivedUserCert\n" +"\n" +" Save profile configuration to a file:\n" +" ipa certprofile-show caIPAserviceCert --out caIPAserviceCert.cfg\n" +"\n" +" Search for profiles that do not store certificates:\n" +" ipa certprofile-find --store=false\n" +"\n" +"PROFILE CONFIGURATION FORMAT:\n" +"\n" +"The profile configuration format is the raw property-list format\n" +"used by Dogtag Certificate System. The XML format is not supported.\n" +"\n" +"The following restrictions apply to profiles managed by FreeIPA:\n" +"\n" +"- When importing a profile the \"profileId\" field, if present, must\n" +" match the ID given on the command line.\n" +"\n" +"- The \"classId\" field must be set to \"caEnrollImpl\"\n" +"\n" +"- The \"auth.instance_id\" field must be set to \"raCertAuth\"\n" +"\n" +"- The \"certReqInputImpl\" input class and \"certOutputImpl\" output\n" +" class must be used.\n" +"\n" +msgstr "" +"\n" +"Керування профілями сертифікатів\n" +"\n" +"Профілі сертифікатів використовуються службами сертифікації (CA) під час\n" +"підписування сертифікатів для визначення того, чи є прийнятним запит на\n" +"підписування сертифіката (CSR), і, якщо це так, визначення можливостей\n" +"і розширень, які буде надано сертифікатом.\n" +"\n" +"Форматом профілю сертифікатів є список значень, які може обробляти\n" +"Dogtag або система сертифікації служби сертифікації Red Hat.\n" +"\n" +"СИНТАКСИС ІДЕНТИФІКАТОРА ПРОФІЛЮ:\n" +"\n" +"Ідентифікатор профілю — рядок без пробілів і символів пунктуації,\n" +"що починається з літери і складається з послідовності літер, цифр, та " +"символів підкреслювання («_»).\n" +"\n" +"ПРИКЛАДИ:\n" +"\n" +" Імпортувати профіль, у якому не зберігатимуться видані сертифікати:\n" +" ipa certprofile-import ShortLivedUserCert \\\n" +" --file UserCert.profile --summary \"User Certificates\" \\\n" +" --store=false\n" +"\n" +" Вилучити профіль сертифікатів:\n" +" ipa certprofile-del ShortLivedUserCert\n" +"\n" +" Показати дані щодо профілю:\n" +" ipa certprofile-show ShortLivedUserCert\n" +"\n" +" Зберегти налаштування профілю до файла:\n" +" ipa certprofile-show caIPAserviceCert --out caIPAserviceCert.cfg\n" +"\n" +" Шукати профілі, у яких не зберігаються сертифікати:\n" +" ipa certprofile-find --store=false\n" +"\n" +"ФОРМАТ НАЛАШТУВАНЬ ПРОФІЛЮ:\n" +"\n" +"Налаштування профілю зберігаються у вигляді простого списку\n" +"властивостей, що використовується системою сертифікації Dogtag.\n" +"Підтримки формату XML не передбачено.\n" +"\n" +"Профілів, які керуються FreeIPA, стосуються такі обмеження:\n" +"\n" +"- Під час імпортування профілю поле «profileId», якщо таке є, має\n" +" містити значення, що збігається з ідентифікатором, вказаним у рядку " +"команди.\n" +"\n" +"- Значенням поля «classId» має бути «caEnrollImpl»\n" +"\n" +"- Значенням поля «auth.instance_id» має бути «raCertAuth»\n" +"\n" +"- Має бути використано вхідний клас «certReqInputImpl» і вихідний\n" +" клас «certOutputImpl».\n" +"\n" + +msgid "CA is not configured" +msgstr "CA не налаштовано" + +msgid "invalid Profile ID" +msgstr "некоректний ідентифікатор профілю" + +msgid "Certificate Profile" +msgstr "Профіль сертифікатів" + +msgid "Certificate Profiles" +msgstr "Профілі сертифікатів" + +msgid "Profile configuration" +msgstr "Налаштування профілю" + +#, python-format +msgid "%(count)d profile matched" +msgid_plural "%(count)d profiles matched" +msgstr[0] "встановлено відповідність %(count)d профілю" +msgstr[1] "встановлено відповідність %(count)d профілів" +msgstr[2] "встановлено відповідність %(count)d профілів" + +#, python-format +msgid "Imported profile \"%(value)s\"" +msgstr "Імпортовано профіль «%(value)s»" + +#, python-format +msgid "Profile ID '%(cli_value)s' does not match profile data '%(file_value)s'" +msgstr "" +"Ідентифікатор профілю, «%(cli_value)s», не збігається із вказаним у даних " +"профілю, «%(file_value)s»" + +#, python-format +msgid "Deleted profile \"%(value)s\"" +msgstr "Вилучено профіль «%(value)s»" + +#, python-format +msgid "Predefined profile '%(profile_id)s' cannot be deleted" +msgstr "Стандартний профіль «%(profile_id)s» не може бути вилучено" + +#, python-format +msgid "Modified Certificate Profile \"%(value)s\"" +msgstr "Змінено профіль сертифікатів «%(value)s»" + +msgid "Certificate profiles cannot be renamed" +msgstr "Профілі сертифікатів не можна перейменовувати" + +msgid "Insufficient privilege to modify a certificate profile." +msgstr "Недостатні права доступу для внесення змін до профілю сертифікації." + +msgid "" +"\n" +"OTP Tokens\n" +msgstr "" +"\n" +"Жетони OTP\n" + +msgid "" +"\n" +"Manage OTP tokens.\n" +msgstr "" +"\n" +"Керування жетонами OTP.\n" + +msgid "" +"\n" +"IPA supports the use of OTP tokens for multi-factor authentication. This\n" +"code enables the management of OTP tokens.\n" +msgstr "" +"\n" +"У IPA передбачено підтримку використання жетонів OTP для багатофакторного " +"розпізнавання.\n" +"За допомогою цього коду уможливлюється керування жетонами OTP.\n" + +msgid "" +"\n" +" Add a new token:\n" +" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" +msgstr "" +"\n" +" Додати новий жетон:\n" +" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" + +msgid "" +"\n" +" Examine the token:\n" +" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" +msgstr "" +"\n" +" Перевірити жетон:\n" +" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" + +msgid "" +"\n" +" Change the vendor:\n" +" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" +"\"\n" +msgstr "" +"\n" +" Змінити постачальника:\n" +" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" +"\"\n" + +msgid "" +"\n" +" Delete a token:\n" +" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" +msgstr "" +"\n" +" Вилучити жетон:\n" +" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" + +msgid "OTP token" +msgstr "Жетон OTP" + +msgid "OTP tokens" +msgstr "Жетони OTP" + +msgid "OTP Tokens" +msgstr "Жетони OTP" + +msgid "OTP Token" +msgstr "Жетон OTP" + +msgid "URI" +msgstr "URI" + +#, python-format +msgid "Added OTP token \"%(value)s\"" +msgstr "Додано жетон OTP «%(value)s»" + +msgid "cannot be empty" +msgstr "не може бути порожнім" + +#, python-format +msgid "Deleted OTP token \"%(value)s\"" +msgstr "Вилучено жетон OTP «%(value)s»" + +#, python-format +msgid "Modified OTP token \"%(value)s\"" +msgstr "Змінено жетон OTP «%(value)s»" + +#, python-format +msgid "%(count)d OTP token matched" +msgid_plural "%(count)d OTP tokens matched" +msgstr[0] "встановлено відповідність %(count)d жетона OTP" +msgstr[1] "встановлено відповідність %(count)d жетони OTP" +msgstr[2] "встановлено відповідність %(count)d жетонів OTP" + +msgid "commands for controlling sudo configuration" +msgstr "команди керування налаштуванням sudo" + msgid "Your session has expired. Please re-login." msgstr "" "Строк роботи у вашому сеансі вичерпано. Будь ласка, увійдіть до системи ще " @@ -18308,9 +20402,6 @@ msgstr "Додати реєстраційний запис" msgid "Affiliation Changed" msgstr "Змінено місце роботи" -msgid "CA" -msgstr "CA" - msgid "CA Compromise" msgstr "Компрометація CA" @@ -18344,9 +20435,6 @@ msgstr "Максимальний серійний номер" msgid "Minimum serial number" msgstr "Мінімальний серійний номер" -msgid "Revocation reason" -msgstr "Причина відкликання" - msgid "Revoked on from" msgstr "Відкликано з" @@ -18483,12 +20571,6 @@ msgstr "Сертифікат відкликано" msgid "REVOKED" msgstr "ВІДКЛИКАНО" -msgid "Serial Number" -msgstr "Серійний номер" - -msgid "Serial Number (hex)" -msgstr "Серійний номер (шістнадцятковий)" - msgid "SHA1 Fingerprint" msgstr "Відбиток SHA1" @@ -18554,9 +20636,6 @@ msgstr "Хочете вилучити дані прив’язки до серт msgid "Remove Certificate Mapping Data" msgstr "Вилучити дані прив’язки до сертифікатів" -msgid "Issuer" -msgstr "Видавець" - msgid "Issuer and subject" msgstr "Видавець і призначення" @@ -18923,18 +21002,12 @@ msgid "Un-apply ID View ${primary_key} from hosts" msgstr "" "Скасувати застосування перегляду ідентифікаторів ${primary_key} до вузлів" -msgid "Kerberos Ticket Policy" -msgstr "Правила квитків Kerberos" - msgid "Host" msgstr "Вузол" msgid "Netgroup Settings" msgstr "Параметри мережевої групи" -msgid "Netgroups" -msgstr "Мережеві групи" - msgid "Add OTP Token" msgstr "Додати жетон OTP" @@ -19011,9 +21084,6 @@ msgstr "Новий: ключ не встановлено" msgid "New: key set" msgstr "Новий: ключ встановлено" -msgid "Password Policy" -msgstr "Правила для паролів" - msgid "Range Settings" msgstr "Параметри діапазону" @@ -19032,9 +21102,6 @@ msgstr "Домен SID" msgid "Secondary RID base" msgstr "Вторинна основа RID" -msgid "Active Directory domain" -msgstr "Домен Active Directory" - msgid "Active Directory domain with POSIX attributes" msgstr "Домен Active Directory з атрибутами POSIX" @@ -19053,9 +21120,6 @@ msgstr "winsync Active Directory" msgid "RADIUS Proxy Server Settings" msgstr "Параметри проксі-сервера RADIUS" -msgid "Realm Domains" -msgstr "Домени області" - msgid "Check DNS" msgstr "Перевірка DNS" @@ -19474,6 +21538,9 @@ msgstr "Автоматичне монтування" msgid "DNS" msgstr "DNS" +msgid "Host-Based Access Control" +msgstr "Керування доступом на основі вузлів" + msgid "Identity" msgstr "Профіль" @@ -19486,6 +21553,9 @@ msgstr "Мережеві служби" msgid "Policy" msgstr "Правила" +msgid "Role-Based Access Control" +msgstr "Керування доступом на основі ролей" + msgid "Sudo" msgstr "Sudo" @@ -19570,6 +21640,9 @@ msgstr "" msgid "Parse error" msgstr "Помилка обробки" +msgid "Must be a positive number" +msgstr "Має бути додатним числом" + #, python-brace-format msgid "'${port}' is not a valid port" msgstr "«${port}» не є коректним визначенням порту" @@ -19580,1436 +21653,6 @@ msgstr "Обов’язкове поле" msgid "Unsupported value" msgstr "Непідтримуване значення" -msgid "kerberos ticket policy settings" -msgstr "параметри правил квитків kerberos" - -#, python-format -msgid "Ticket policy for %s could not be read" -msgstr "Не вдалося прочитати правила щодо квитків для %s" - -msgid "Default ticket policy could not be read" -msgstr "Не вдалося прочитати типові правила щодо квитків" - -#, python-brace-format -msgid "" -"\n" -"ID ranges\n" -"\n" -"Manage ID ranges used to map Posix IDs to SIDs and back.\n" -"\n" -"There are two type of ID ranges which are both handled by this utility:\n" -"\n" -" - the ID ranges of the local domain\n" -" - the ID ranges of trusted remote domains\n" -"\n" -"Both types have the following attributes in common:\n" -"\n" -" - base-id: the first ID of the Posix ID range\n" -" - range-size: the size of the range\n" -"\n" -"With those two attributes a range object can reserve the Posix IDs starting\n" -"with base-id up to but not including base-id+range-size exclusively.\n" -"\n" -"Additionally an ID range of the local domain may set\n" -" - rid-base: the first RID(*) of the corresponding RID range\n" -" - secondary-rid-base: first RID of the secondary RID range\n" -"\n" -"and an ID range of a trusted domain must set\n" -" - rid-base: the first RID of the corresponding RID range\n" -" - sid: domain SID of the trusted domain\n" -"\n" -"\n" -"\n" -"EXAMPLE: Add a new ID range for a trusted domain\n" -"\n" -"Since there might be more than one trusted domain the domain SID must be " -"given\n" -"while creating the ID range.\n" -"\n" -" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-base=0 \\\n" -" --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" -"\n" -"This ID range is then used by the IPA server and the SSSD IPA provider to\n" -"assign Posix UIDs to users from the trusted domain.\n" -"\n" -"If e.g. a range for a trusted domain is configured with the following " -"values:\n" -" base-id = 1200000\n" -" range-size = 200000\n" -" rid-base = 0\n" -"the RIDs 0 to 199999 are mapped to the Posix ID from 1200000 to 13999999. " -"So\n" -"RID 1000 <-> Posix ID 1201000\n" -"\n" -"\n" -"\n" -"EXAMPLE: Add a new ID range for the local domain\n" -"\n" -"To create an ID range for the local domain it is not necessary to specify a\n" -"domain SID. But since it is possible that a user and a group can have the " -"same\n" -"value as Posix ID a second RID interval is needed to handle conflicts.\n" -"\n" -" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-base=1000 \\\n" -" --secondary-rid-base=1000000 local_range\n" -"\n" -"The data from the ID ranges of the local domain are used by the IPA server\n" -"internally to assign SIDs to IPA users and groups. The SID will then be " -"stored\n" -"in the user or group objects.\n" -"\n" -"If e.g. the ID range for the local domain is configured with the values " -"from\n" -"the example above then a new user with the UID 1200007 will get the RID " -"1007.\n" -"If this RID is already used by a group the RID will be 1000007. This can " -"only\n" -"happen if a user or a group object was created with a fixed ID because the\n" -"automatic assignment will not assign the same ID twice. Since there are " -"only\n" -"users and groups sharing the same ID namespace it is sufficient to have " -"only\n" -"one fallback range to handle conflicts.\n" -"\n" -"To find the Posix ID for a given RID from the local domain it has to be\n" -"checked first if the RID falls in the primary or secondary RID range and\n" -"the rid-base or the secondary-rid-base has to be subtracted, respectively,\n" -"and the base-id has to be added to get the Posix ID.\n" -"\n" -"Typically the creation of ID ranges happens behind the scenes and this CLI\n" -"must not be used at all. The ID range for the local domain will be created\n" -"during installation or upgrade from an older version. The ID range for a\n" -"trusted domain will be created together with the trust by 'ipa trust-" -"add ...'.\n" -"\n" -"USE CASES:\n" -"\n" -" Add an ID range from a transitively trusted domain\n" -"\n" -" If the trusted domain (A) trusts another domain (B) as well and this " -"trust\n" -" is transitive 'ipa trust-add domain-A' will only create a range for\n" -" domain A. The ID range for domain B must be added manually.\n" -"\n" -" Add an additional ID range for the local domain\n" -"\n" -" If the ID range of the local domain is exhausted, i.e. no new IDs can " -"be\n" -" assigned to Posix users or groups by the DNA plugin, a new range has to " -"be\n" -" created to allow new users and groups to be added. (Currently there is " -"no\n" -" connection between this range CLI and the DNA plugin, but a future " -"version\n" -" might be able to modify the configuration of the DNS plugin as well)\n" -"\n" -"In general it is not necessary to modify or delete ID ranges. If there is " -"no\n" -"other way to achieve a certain configuration than to modify or delete an ID\n" -"range it should be done with great care. Because UIDs are stored in the " -"file\n" -"system and are used for access control it might be possible that users are\n" -"allowed to access files of other users if an ID range got deleted and " -"reused\n" -"for a different domain.\n" -"\n" -"(*) The RID is typically the last integer of a user or group SID which " -"follows\n" -"the domain SID. E.g. if the domain SID is S-1-5-21-123-456-789 and a user " -"from\n" -"this domain has the SID S-1-5-21-123-456-789-1010 then 1010 id the RID of " -"the\n" -"user. RIDs are unique in a domain, 32bit values and are used for users and\n" -"groups.\n" -"\n" -"{0}\n" -msgstr "" -"\n" -"Діапазони ідентифікаторів\n" -"\n" -"Керування діапазонами ідентифікаторів, використаних для відображення\n" -"ідентифікаторів POSIX на SID, і навпаки.\n" -"\n" -"За допомогою цієї програми можна керувати обома типами діапазонів " -"ідентифікаторів:\n" -"\n" -" - діапазони ідентифікаторів локального домену\n" -" - діапазони ідентифікаторів довірених віддалених доменів\n" -"\n" -"Обидва типи мають такі спільні атрибути:\n" -"\n" -" - base-id: перший ідентифікатор діапазону ідентифікаторів POSIX\n" -" - range-size: розмір діапазону\n" -"\n" -"На основі цих двох атрибутів об’єкт діапазону може зарезервувати " -"ідентифікатори\n" -"POSIX, починаючи з base-id аж до, але не включно, base-id+range-size.\n" -"\n" -"Крім того, можна встановити діапазон ідентифікаторів локального домену\n" -" - rid-base: перший RID(*) відповідного діапазону RID\n" -" - secondary-rid-base: перший RID вторинного діапазону RID\n" -"\n" -"а діапазон ідентифікаторів довіреного домену слід задавати за допомогою\n" -" - rid-base: перший RID відповідного діапазону RID\n" -" - dom_sid: SID довіреного домену\n" -"\n" -"\n" -"\n" -"ПРИКЛАД: додавання нового діапазону ідентифікаторів для довіреного домену\n" -"\n" -"Оскільки може бути декілька довірених доменів, під час створення діапазону\n" -"ідентифікаторів слід вказати SID домену.\n" -"\n" -" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-base=0 \\\n" -" --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" -"\n" -"Цей діапазон ідентифікаторів потім використовуватиметься сервером IPA\n" -"та надавачем даних IPA SSSD для призначення UID Posix користувачам з\n" -"довіреного домену.\n" -"\n" -"Якщо, наприклад, налаштовано діапазон для довіреного домену з такими\n" -"значеннями:\n" -" base-id = 1200000\n" -" range-size = 200000\n" -" rid-base = 0\n" -"RID від 0 до 199999 прив’язуються до ідентифікаторів Posix від 1200000 до\n" -"13999999. Отже RID 1000 <-> Posix ID 1201000\n" -"\n" -"\n" -"\n" -"ПРИКЛАД: додавання нового діапазону ідентифікаторів до локального домену\n" -"\n" -"Щоб створити діапазон ідентифікаторів для локального домену не потрібно\n" -"вказувати SID домену. Але оскільки можливий конфлікт між ідентифікаторами\n" -"користувача і групи та ідентифікаторами POSIX, потрібен вторинний інтервал\n" -"RID.\n" -"\n" -" ipa range-add --base-id=1200000 --range-size=200000 --rid-base=1000 \\\n" -" --secondary-rid-base=1000000 local_range\n" -"\n" -"Дані з діапазонів ідентифікаторів локального домену використовуються\n" -"сервером IPA на внутрішньому рівні для призначення SID користувачам і " -"групам\n" -"IPA. SID буде збережено у об’єктах користувача або групи.\n" -"\n" -"Якщо, наприклад, для діапазону ідентифікаторів локального домену визначено\n" -"значення з наведеного вище прикладу, новий користувач з UID 1200007 отримає\n" -"RID 1007. Якщо цей RID вже буде використано групою, його буде змінено на " -"1000007.\n" -"Таке може трапитися лише, якщо об’єкт користувача або групи було створено з\n" -"фіксованим ідентифікатором, оскільки у разі автоматичного призначення один\n" -"ідентифікатор не може бути призначено двічі. Оскільки спільний простір назв\n" -"є лише у користувачів і груп, достатньо одного резервного діапазону для\n" -"того, щоб повністю позбутися конфліктів.\n" -"\n" -"Для визначення ідентифікатора POSIX за вказаним RID з локального домену " -"слід\n" -"спочатку перевірити, чи потрапляє RID у основний або вторинний діапазон " -"RID,\n" -"також, щоб отримати ідентифікатор POSIX, слід відняти від ідентифікатор rid-" -"base\n" -"або secondary-rid-base, відповідно, і додати base-id.\n" -"\n" -"Типово, створення діапазонів ідентифікаторів є зовні непомітним і потреби у\n" -"цьому інтерфейсі командного рядка не виникає. Діапазон ідентифікаторів\n" -"для локального домену буде створено під час встановлення або оновлення\n" -"попередньої версії. Діапазон ідентифікаторів для довіреного домену буде\n" -"створено разом з записом довіри командою «ipa trust-add ...».\n" -"Нижче наведено можливі випадки використання цього командного інтерфейсу.\n" -"\n" -"ВИПАДКИ ВИКОРИСТАННЯ:\n" -"\n" -" Додавання діапазону ідентифікаторів з перехідного довіреного домену\n" -"\n" -" Якщо довірений домен (A) довіряється іншому домену (B) і цей запис\n" -" довіри є перехідним, «ipa trust-add домен-A» створить лише діапазон\n" -" для домену A. Діапазон ідентифікаторів домену B має бути додано вручну.\n" -"\n" -" Додавання додаткового діапазону ідентифікаторів для локального домену\n" -"\n" -" Якщо діапазон ідентифікаторів локального домену вичерпано, тобто " -"додатком\n" -" DNA не може бути призначено нові ідентифікатори користувачам або групам\n" -" POSIX, має бути створено новий діапазон для додавання нових " -"користувачів\n" -" та груп. (У поточній версії між цим командним інтерфейсом і додатком " -"DNA\n" -" немає безпосереднього зв’язку, але у майбутній версії може бути " -"передбачено\n" -" можливість внесення змін і до налаштувань додатка DNS.)\n" -"\n" -"Загалом, потреби у зміні або вилученні діапазонів ідентифікаторів немає.\n" -"Якщо немає іншого виходу, окрім внесення змін або вилучення діапазону\n" -"ідентифікаторів, робити це слід дуже обережно. Оскільки UID зберігаються у\n" -"файловій системі і використовуються для керування доступом, можлива " -"ситуація,\n" -"коли одні користувачі отримуватимуть доступ до файлів інших користувачів\n" -"у разі вилучення діапазону ідентифікаторів і повторного його використання\n" -"у іншому домені.\n" -"\n" -"(*) RID типово є останнім цілим числом SID користувача або групи, перед " -"якими\n" -"має бути вказано SID домену. Наприклад, якщо SID домену " -"S-1-5-21-123-456-789, а\n" -"користувач з цього домену має SID S-1-5-21-123-456-789-1010, RID " -"користувача\n" -"буде 1010. RID є унікальними в межах домену, є 32-бітовими значенням і\n" -"використовуються для користувачів і груп.\n" -"\n" -"{0}\n" - -msgid "ID Ranges" -msgstr "Діапазони ідентифікаторів" - -msgid "ID Range" -msgstr "Діапазон ідентифікаторів" - -msgid "local domain range" -msgstr "локальний діапазон доменів" - -msgid "Active Directory domain range" -msgstr "Діапазон доменів Active Directory" - -msgid "Active Directory trust range with POSIX attributes" -msgstr "Діапазон довіри Active Directory з атрибутами POSIX" - -#, python-brace-format -msgid "ID range type, one of {vals}" -msgstr "Тип діапазону ідентифікаторів, одне з таких значень: {vals}" - -msgid "" -"range modification leaving objects with ID out of the defined range is not " -"allowed" -msgstr "" -"не можна виконувати зміни діапазону, у результаті яких виникають об’єкти з " -"ідентифікаторами поза визначеним діапазоном" - -msgid "" -"Cannot perform SID validation without Samba 4 support installed. Make sure " -"you have installed server-trust-ad sub-package of IPA on the server" -msgstr "" -"Виконати дію з перевірки SID без встановленої підтримки Samba 4 неможливо. " -"Переконайтеся, що вами встановлено на сервері підпакунок IPA server-trust-ad." - -msgid "" -"Cross-realm trusts are not configured. Make sure you have run ipa-adtrust-" -"install on the IPA server first" -msgstr "" -"Зв’язки довіри між областями не налаштовано. Спочатку запустіть ipa-adtrust-" -"install на сервері IPA." - -msgid "SID is not recognized as a valid SID for a trusted domain" -msgstr "SID не розпізнано як чинний SID для довіреного домену" - -#, python-brace-format -msgid "" -"\n" -" Add new ID range.\n" -"\n" -" To add a new ID range you always have to specify\n" -"\n" -" --base-id\n" -" --range-size\n" -"\n" -" Additionally\n" -"\n" -" --rid-base\n" -" --secondary-rid-base\n" -"\n" -" may be given for a new ID range for the local domain while\n" -"\n" -" --rid-base\n" -" --dom-sid\n" -"\n" -" must be given to add a new range for a trusted AD domain.\n" -"\n" -"{0}\n" -msgstr "" -"\n" -" Додати новий діапазон ідентифікаторів.\n" -"\n" -" Щоб додати новий діапазон ідентифікаторів, вам слід завжди вказати\n" -"\n" -" --base-id\n" -" --range-size\n" -"\n" -" Крім того, можна вказати\n" -"\n" -" --rid-base\n" -" --secondary-rid-base\n" -"\n" -" для нового діапазону ідентифікаторів для локального домену, а\n" -"\n" -" --rid-base\n" -" --dom-sid\n" -"\n" -" слід вказати для додавання нового діапазону для довіреного домену AD.\n" -"\n" -"{0}\n" - -#, python-format -msgid "Added ID range \"%(value)s\"" -msgstr "Додано діапазон ідентифікаторів «%(value)s»" - -msgid "Options dom-sid and dom-name cannot be used together" -msgstr "Параметри dom-sid і dom-name не можна використовувати разом" - -msgid "" -"SID for the specified trusted domain name could not be found. Please specify " -"the SID directly using dom-sid option." -msgstr "" -"Не вдалося знайти SID для вказаного довіреного домену. Будь ласка, вкажіть " -"SID безпосередньо за допомогою параметра dom-sid." - -msgid "Options dom-sid/dom-name and rid-base must be used together" -msgstr "Параметри dom-sid/dom-name і rid-base слід використовувати разом" - -msgid "" -"Option rid-base must not be used when IPA range type is ipa-ad-trust-posix" -msgstr "" -"Параметр rid-base не слід використовувати, якщо типом діапазону IPA є ipa-ad-" -"trust-posix" - -msgid "" -"IPA Range type must be one of ipa-ad-trust or ipa-ad-trust-posix when SID of " -"the trusted domain is specified" -msgstr "" -"Якщо вказано SID довіреного домену, типом діапазону IPA має бути ipa-ad-" -"trust або ipa-ad-trust-posix" - -msgid "Options dom-sid/dom-name and secondary-rid-base cannot be used together" -msgstr "" -"Параметри dom-sid/dom-name і secondary-rid-base не можна використовувати " -"разом" - -msgid "" -"IPA Range type must not be one of ipa-ad-trust or ipa-ad-trust-posix when " -"SID of the trusted domain is not specified." -msgstr "" -"Якщо не вказано SID довіреного домену, типом діапазону IPA не може бути ipa-" -"ad-trust або ipa-ad-trust-posix." - -msgid "Options secondary-rid-base and rid-base must be used together" -msgstr "Параметри secondary-rid-base і rid-base слід використовувати разом" - -msgid "Primary RID range and secondary RID range cannot overlap" -msgstr "" -"Основний діапазон RID і вторинний діапазон RID не повинні перекриватися" - -msgid "" -"You must specify both rid-base and secondary-rid-base options, because ipa-" -"adtrust-install has already been run." -msgstr "" -"Вам слід вказати обидва параметри, rid-base і secondary-rid-base, оскільки " -"вже запущено ipa-adtrust-install." - -#, python-format -msgid "Deleted ID range \"%(value)s\"" -msgstr "Вилучено діапазон ідентифікаторів «%(value)s»" - -#, python-format -msgid "%(count)d range matched" -msgid_plural "%(count)d ranges matched" -msgstr[0] "встановлено відповідність %(count)d діапазону" -msgstr[1] "встановлено відповідність %(count)d діапазонів" -msgstr[2] "встановлено відповідність %(count)d діапазонів" - -#, python-brace-format -msgid "" -"Modify ID range.\n" -"\n" -"{0}\n" -msgstr "" -"Змінити діапазон ідентифікаторів.\n" -"\n" -"{0}\n" - -#, python-format -msgid "Modified ID range \"%(value)s\"" -msgstr "Змінено діапазон ідентифікаторів «%(value)s»" - -msgid "" -"This command can not be used to change ID allocation for local IPA domain. " -"Run `ipa help idrange` for more information" -msgstr "" -"Цією командою не можна скористатися для зміни розподілу ідентифікаторів для " -"локального домену IPA. Щоб дізнатися більше, скористайтеся командою «ipa " -"help idrange»." - -msgid "Options dom-sid and secondary-rid-base cannot be used together" -msgstr "Параметри dom-sid і secondary-rid-base не можна використовувати разом" - -msgid "Options dom-sid and rid-base must be used together" -msgstr "Параметри dom-sid і rid-base слід використовувати разом" - -msgid "" -"\n" -"IPA server roles\n" -msgstr "" -"\n" -"Ролі сервера IPA\n" - -msgid "" -"\n" -"Get status of roles (DNS server, CA, etc.) provided by IPA masters.\n" -msgstr "" -"\n" -"Отримати стан ролей (сервер DNS, CA тощо), що надається основними серверами " -"IPA.\n" - -msgid "" -"\n" -" Show status of 'DNS server' role on a server:\n" -" ipa server-role-show ipa.example.com \"DNS server\"\n" -msgstr "" -"\n" -" Показати стан ролі «DNS server» на сервері:\n" -" ipa server-role-show ipa.example.com \"DNS server\"\n" - -msgid "" -"\n" -" Show status of all roles containing 'AD' on a server:\n" -" ipa server-role-find --server ipa.example.com --role='AD'\n" -msgstr "" -"\n" -" Показати стан усіх ролей, назва яких містить «AD», на сервері:\n" -" ipa server-role-find --server ipa.example.com --role='AD'\n" - -msgid "" -"\n" -" Show status of all configured roles on a server:\n" -" ipa server-role-find ipa.example.com\n" -msgstr "" -"\n" -" Показати стан усіх налаштованих ролей на сервері:\n" -" ipa server-role-find ipa.example.com\n" - -msgid "server role" -msgstr "роль сервера" - -msgid "server roles" -msgstr "ролі сервера" - -msgid "IPA Server Roles" -msgstr "Ролі сервера IPA" - -msgid "IPA Server Role" -msgstr "Роль сервера IPA" - -msgid "IPA server role name" -msgstr "Назва ролі сервера IPA" - -msgid "Role status" -msgstr "Стан ролі" - -msgid "Status of the role" -msgstr "Стан ролі" - -msgid "Show role status on a server" -msgstr "Показати стан ролі на сервері" - -msgid "Find a server role on a server(s)" -msgstr "Знайти роль сервера на серверах" - -#, python-format -msgid "%(count)s server role matched" -msgid_plural "%(count)s server roles matched" -msgstr[0] "встановлено відповідність %(count)s ролі сервера" -msgstr[1] "встановлено відповідність %(count)s ролей сервера" -msgstr[2] "встановлено відповідність %(count)s ролей сервера" - -msgid "roles" -msgstr "ролі" - -msgid "IPA role name" -msgstr "Назва ролі IPA" - -msgid "Member service groups" -msgstr "Групи служб учасника" - -msgid "Member HBAC service groups" -msgstr "Групи служб HBAC учасника" - -msgid "Indirect Member permissions" -msgstr "Опосередковані права доступу учасника" - -msgid "Indirect Member HBAC service" -msgstr "Опосередкована служба HBAC учасника" - -msgid "Indirect Member HBAC service group" -msgstr "Опосередкована група служб HBAC учасника" - -msgid "Invalid format. Should be name=value" -msgstr "Некоректний формат. Правильний формат: назва=значення" - -msgid "An IPA master host cannot be deleted or disabled" -msgstr "Основний вузол IPA не можна вилучати або вимикати" - -msgid "entry" -msgstr "запис" - -msgid "entries" -msgstr "записи" - -msgid "Entry" -msgstr "Запис" - -#, python-format -msgid "container entry (%(container)s) not found" -msgstr "не знайдено запис контейнера (%(container)s)" - -#, python-format -msgid "%(parent)s: %(oname)s not found" -msgstr "%(parent)s: не знайдено %(oname)s" - -#, python-format -msgid "%(pkey)s: %(oname)s not found" -msgstr "%(pkey)s: не знайдено %(oname)s" - -#, python-format -msgid "%(oname)s with name \"%(pkey)s\" already exists" -msgstr "%(oname)s з назвою «%(pkey)s» вже існує" - -#, python-format -msgid "attribute \"%(attribute)s\" not allowed" -msgstr "не можна використовувати атрибут «%(attribute)s»" - -msgid "attribute is not configurable" -msgstr "атрибут не можна налаштовувати" - -msgid "No such attribute on this entry" -msgstr "У цього запису немає такого атрибута" - -#, python-format -msgid "Rename the %(ldap_obj_name)s object" -msgstr "Перейменувати об’єкт %(ldap_obj_name)s" - -msgid "the entry was deleted while being modified" -msgstr "запис було вилучено під час внесення змін" - -#, python-format -msgid "%s" -msgstr "%s" - -#, python-format -msgid "member %s" -msgstr "%s учасника" - -#, python-format -msgid "%s to add" -msgstr "%s для додавання" - -#, python-format -msgid "%s to remove" -msgstr "%s для вилучення" - -#, python-format -msgid "Results should contain primary key attribute only (\"%s\")" -msgstr "Результати мають містити лише атрибут основного ключа («%s»)" - -#, python-format -msgid "" -"Search for %(searched_object)s with these %(relationship)s %(ldap_object)s." -msgstr "Шукати %(searched_object)s у цих %(relationship)s %(ldap_object)s." - -#, python-format -msgid "" -"Search for %(searched_object)s without these %(relationship)s " -"%(ldap_object)s." -msgstr "Шукати %(searched_object)s не у цих %(relationship)s %(ldap_object)s." - -#, python-format -msgid "'%(attr)s' already contains one or more values" -msgstr "«%(attr)s» вже містить одне або декілька значень" - -msgid "one or more values to remove" -msgstr "одне або декілька значень для вилучення" - -msgid "Could not read UPG Definition originfilter. Check your permissions." -msgstr "" -"Не вдалося прочитати фільтр походження (originfilter) UPG Definition. " -"Переконайтеся, що у вас є відповідні права доступу." - -msgid "" -"\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" -"\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Override a default list of supported PAC types for the service:\n" -" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n" -"\n" -" A typical use case where overriding the PAC type is needed is NFS.\n" -" Currently the related code in the Linux kernel can only handle Kerberos\n" -" tickets up to a maximal size. Since the PAC data can become quite large " -"it\n" -" is recommended to set --pac-type=NONE for NFS services.\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" -"\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" -"\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" -"\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" -msgstr "" -"\n" -"Служби\n" -"\n" -"Служба IPA — це служба, що працює на вузлі системи. У записі служби\n" -"IPA можуть зберігатися дані реєстраційного запису Kerberos, сертифікат\n" -"SSL або обидва набори даних.\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" -"\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" -" Перевизначити типовий список підтримуваних типів PAC для служби:\n" -" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n" -"\n" -" Типовим випадком, коли потрібне перевизначення типу PAC є NFS.\n" -" У поточній версії ядра Linux відповідний код може працювати лише з\n" -" квитками Kerberos, розмір яких не перевищує максимально заданого.\n" -" Оскільки дані PAC можуть бути доволі об’ємними, для служб NFS\n" -" рекомендуємо встановити --pac-type=NONE.\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" - -msgid "" -"\n" -" Allow user to create a keytab:\n" -" ipa service-allow-create-keytab HTTP/web.example.com --users=tuser1\n" -msgstr "" -"\n" -" Дозволити користувачеві створювати таблицю ключів:\n" -" ipa service-allow-create-keytab HTTP/web.example.com --users=tuser1\n" - -msgid "" -"\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/" -"httpd.keytab\n" -"\n" -msgstr "" -"\n" -" Створити і отримати таблицю ключів служби IPA:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/" -"httpd.keytab\n" -"\n" - -msgid "Trusted to authenticate as user" -msgstr "Довіра до розпізнавання як користувача" - -msgid "The service is allowed to authenticate on behalf of a client" -msgstr "Службі дозволено проходити розпізнавання від імені клієнта" - -msgid "Malformed principal" -msgstr "Помилкове форматування реєстраційного запису" - -msgid "This principal is required by the IPA master" -msgstr "Цей реєстраційний запис потрібен основному серверу IPA" - -msgid "service" -msgstr "служба" - -msgid "services" -msgstr "служби" - -msgid "Principal alias" -msgstr "Псевдонім реєстраційного запису" - -msgid "Service principal alias" -msgstr "Альтернативна назва реєстраційного запису служби" - -msgid "Base-64 encoded service certificate" -msgstr "Сертифікат служби у кодуванні Base-64" - -msgid "Not Before" -msgstr "Не раніше" - -msgid "Not After" -msgstr "Не пізніше" - -msgid "Fingerprint (SHA1)" -msgstr "Відбиток (SHA1)" - -msgid "Fingerprint (SHA256)" -msgstr "Відбиток (SHA256)" - -msgid "Authentication Indicators" -msgstr "Індикатори розпізнавання" - -msgid "" -"Defines a whitelist for Authentication Indicators. Use 'otp' to allow OTP-" -"based 2FA authentications. Use 'radius' to allow RADIUS-based 2FA " -"authentications. Other values may be used for custom configurations." -msgstr "" -"Визначає «білий» список для індикаторів розпізнавання. Скористайтеся " -"значенням «otp», щоб дозволити розпізнавання 2FA на основі OTP. " -"Скористайтеся значенням «radius», щоб дозволити розпізнавання 2FA на основі " -"RADIUS. Іншими значеннями можна скористатися для нетипових конфігурацій." - -msgid "NONE value cannot be combined with other PAC types" -msgstr "Значення NONE не можна поєднувати з іншими типами PAC" - -msgid "Add a new IPA service." -msgstr "Додати нову службу IPA." - -#, python-format -msgid "Added service \"%(value)s\"" -msgstr "Додано службу «%(value)s»" - -#, python-format -msgid "The host '%s' does not exist to add a service to." -msgstr "Не існує вузла «%s», до якого слід було додати службу." - -#, python-format -msgid "Deleted service \"%(value)s\"" -msgstr "Вилучено службу «%(value)s»" - -#, python-format -msgid "Modified service \"%(value)s\"" -msgstr "Змінено службу «%(value)s»" - -#, 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 служб" - -#, python-format -msgid "Disabled service \"%(value)s\"" -msgstr "Вимкнено службу «%(value)s»" - -#, python-format -msgid "Added certificates to service principal \"%(value)s\"" -msgstr "Додано сертифікати до реєстраційного запис служби «%(value)s»" - -#, python-format -msgid "Removed certificates from service principal \"%(value)s\"" -msgstr "Вилучено сертифікати із реєстраційного запису служби «%(value)s»" - -msgid "Add new principal alias to a service" -msgstr "Додати нову альтернативну назву реєстраційного запису до служби" - -#, python-format -msgid "Added new aliases to the service principal \"%(value)s\"" -msgstr "Додано нові псевдоніми реєстраційного запису служби «%(value)s»" - -msgid "Remove principal alias from a service" -msgstr "Вилучити альтернативну назву реєстраційного запису зі служби" - -#, python-format -msgid "Removed aliases to the service principal \"%(value)s\"" -msgstr "Вилучено псевдоніми реєстраційного запису служби «%(value)s»" - -msgid "" -"\n" -"Sudo Rules\n" -msgstr "" -"\n" -"Правила sudo\n" - -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" -msgstr "" -"\n" -"Sudo (su \"do\") надає системному адміністратору змогу делегувати\n" -"повноваження певним користувачам (або групам користувачів) на виконання\n" -"деяких (або усіх) команд від імені адміністратора (root) або іншого\n" -"користувача, зберігаючи водночас журнал виконання команд та\n" -"аргументів.\n" - -msgid "" -"\n" -"FreeIPA provides a means to configure the various aspects of Sudo:\n" -" Users: The user(s)/group(s) allowed to invoke Sudo.\n" -" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke " -"Sudo.\n" -" Allow Command: The specific command(s) permitted to be run via Sudo.\n" -" Deny Command: The specific command(s) prohibited to be run via Sudo.\n" -" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be " -"invoked with.\n" -" 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" -msgstr "" -"\n" -"У FreeIPA передбачено декілька параметрів налаштовування роботи sudo:\n" -" Users: користувачі або групи, які можуть викликати sudo.\n" -" Hosts: вузли або групи вузлів, користувачі якого можуть викликати sudo.\n" -" Allow Command: специфічні команди, які можна виконувати за допомогою " -"sudo.\n" -" Deny Command: специфічні команди, які не можна виконувати за допомогою " -"sudo.\n" -" RunAsUser: користувачі або групи, від імені яких sudo виконуватиме " -"команди.\n" -" RunAsGroup: групи, ідентифікатори яких буде використано sudo для " -"виконання команд.\n" -" Options: різноманітні параметри sudoers, які можуть змінити поведінку " -"sudo.\n" - -msgid "" -"\n" -"An order can be added to a sudorule to control the order in which they\n" -"are evaluated (if the client supports it). This order is an integer and\n" -"must be unique.\n" -msgstr "" -"\n" -"До правила sudo можна додати порядок, який керуватиме порядком\n" -"обробки записів (якщо такий порядок передбачено на клієнтському боці).\n" -"Порядок визначається числовим індексом, який не повинен повторюватися.\n" - -msgid "" -"\n" -"FreeIPA provides a designated binddn to use with Sudo located at:\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" -msgstr "" -"\n" -"У FreeIPA передбачено визначений binddn для використання з sudo, який " -"розташовано у\n" -"uid=sudo,cn=sysaccounts,cn=etc,dc=example,dc=com\n" - -msgid "" -"\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" -msgstr "" -"\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" - -msgid "" -"\n" -" Create a new rule:\n" -" ipa sudorule-add readfiles\n" -msgstr "" -"\n" -" Створити правило:\n" -" ipa sudorule-add readfiles\n" - -msgid "" -"\n" -" Add sudo command object and add it as allowed command in the rule:\n" -" ipa sudocmd-add /usr/bin/less\n" -" ipa sudorule-add-allow-command readfiles --sudocmds /usr/bin/less\n" -msgstr "" -"\n" -" Додати об’єкт команди sudo і записати його як дозволену команду до " -"правила:\n" -" ipa sudocmd-add /usr/bin/less\n" -" ipa sudorule-add-allow-command readfiles --sudocmds /usr/bin/less\n" - -msgid "" -"\n" -" Add a host to the rule:\n" -" ipa sudorule-add-host readfiles --hosts server.example.com\n" -msgstr "" -"\n" -" Додати запис вузла до правила:\n" -" ipa sudorule-add-host readfiles --hosts server.example.com\n" - -msgid "" -"\n" -" Add a user to the rule:\n" -" ipa sudorule-add-user readfiles --users jsmith\n" -msgstr "" -"\n" -" Додати запис користувача до правила:\n" -" ipa sudorule-add-user readfiles --users jsmith\n" - -msgid "" -"\n" -" Add a special Sudo rule for default Sudo server configuration:\n" -" ipa sudorule-add defaults\n" -msgstr "" -"\n" -" Додати особливе правило sudo для типового налаштовування сервера sudo:\n" -" ipa sudorule-add defaults\n" - -msgid "" -"\n" -" Set a default Sudo option:\n" -" ipa sudorule-add-option defaults --sudooption '!authenticate'\n" -msgstr "" -"\n" -" Встановити типовий варіант дій для sudo:\n" -" ipa sudorule-add-option defaults --sudooption '!authenticate'\n" - -msgid "" -"\n" -" Set SELinux type and role transitions on a rule:\n" -" ipa sudorule-add-option sysadmin_sudo --sudooption type=unconfined_t\n" -" ipa sudorule-add-option sysadmin_sudo --sudooption role=unconfined_r\n" -msgstr "" -"\n" -" Встановити переходи типу і ролі SELinux на правило:\n" -" ipa sudorule-add-option sysadmin_sudo --sudooption type=unconfined_t\n" -" ipa sudorule-add-option sysadmin_sudo --sudooption role=unconfined_r\n" - -msgid "this option has been deprecated." -msgstr "цей параметр вважається застарілим." - -msgid "sudo rules" -msgstr "правила sudo" - -msgid "Sudo Rules" -msgstr "Правила Sudo" - -msgid "Sudo Rule" -msgstr "Правило sudo" - -#, python-format -msgid "order must be a unique value (%(order)d already used by %(rule)s)" -msgstr "" -"порядковий номер повинен мати унікальне значення (%(order)d вже використано " -"для %(rule)s)" - -#, python-format -msgid "Added Sudo Rule \"%(value)s\"" -msgstr "Додано правило sudo «%(value)s»" - -#, python-format -msgid "Deleted Sudo Rule \"%(value)s\"" -msgstr "Вилучено правило sudo «%(value)s»" - -#, python-format -msgid "Modified Sudo Rule \"%(value)s\"" -msgstr "Змінено правило sudo «%(value)s»" - -#, python-format -msgid "" -"%(type)s category cannot be set to 'all' while there are allowed %(objects)s" -msgstr "" -"Значенням категорії %(type)s не можна встановлювати «all», якщо існують " -"дозволені %(objects)s" - -msgid "users" -msgstr "користувачі" - -msgid "command" -msgstr "команда" - -msgid "commands" -msgstr "команди" - -msgid "runAs user" -msgstr "користувач, від імені якого виконуватиметься" - -msgid "runAs users" -msgstr "користувачі, від імені яких виконуватиметься" - -msgid "group runAs" -msgstr "група, від імені якої виконуватиметься" - -msgid "runAs groups" -msgstr "групи, від імені яких виконуватиметься" - -#, python-format -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" - -msgid "commands cannot be added when command category='all'" -msgstr "не можна додавати команди, якщо категорія команд=«all»" - -msgid "users cannot be added when user category='all'" -msgstr "" -"не можна додавати записи користувачів, якщо категорія користувачів=«all»" - -msgid "hosts cannot be added when host category='all'" -msgstr "не можна додавати записи вузлів, якщо категорія вузлів=«all»" - -msgid "users cannot be added when runAs user or runAs group category='all'" -msgstr "" -"не можна додавати записи користувачів, якщо категорія запуску від імені " -"користувачів або запуску від імені груп=«all»" - -#, python-format -msgid "RunAsUser does not accept '%(name)s' as a user name" -msgstr "Не можна вказувати «%(name)s» як ім’я користувача у записі RunAsUser" - -#, python-format -msgid "RunAsUser does not accept '%(name)s' as a group name" -msgstr "Назва групи «%(name)s» є неприйнятною для RunAsUser" - -#, python-format -msgid "RunAsGroup does not accept '%(name)s' as a group name" -msgstr "Назва групи «%(name)s» є неприйнятною для RunAsGroup" - -msgid "" -"\n" -"Groups of Sudo Commands\n" -"\n" -"Manage groups of Sudo Commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo Command Group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo Command Group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo Command Group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less --sudocmds=/usr/bin/" -"vim admincmds\n" -"\n" -" Manage Sudo Command Group membership, commands:\n" -" ipa sudocmdgroup-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo Command Group:\n" -" ipa sudocmdgroup-show admincmds\n" -msgstr "" -"\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 --sudocmds=/usr/bin/" -"vim admincmds\n" -"\n" -" Керування участю групи команд sudo, команди:\n" -" ipa sudocmdgroup-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Показ групи команд sudo:\n" -" ipa sudocmdgroup-show admincmds\n" - -msgid "sudo command group" -msgstr "група команд sudo" - -msgid "sudo command groups" -msgstr "групи команд sudo" - -#, python-format -msgid "Added Sudo Command Group \"%(value)s\"" -msgstr "Додано групу команд sudo «%(value)s»" - -#, python-format -msgid "Deleted Sudo Command Group \"%(value)s\"" -msgstr "Вилучено групу команд sudo «%(value)s»" - -#, python-format -msgid "Modified Sudo Command Group \"%(value)s\"" -msgstr "Змінено групу команд sudo «%(value)s»" - -#, 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" - -#, python-brace-format -msgid "{role}: role not found" -msgstr "{role}: такої ролі не знайдено" - -#, python-brace-format -msgid "{attr}: no such attribute" -msgstr "{attr}: немає такого атрибута" - -msgid "ID View" -msgstr "Перегляд ідентифікаторів" - -msgid "system ID View" -msgstr "системний перегляд ідентифікаторів" - -msgid "ID Views" -msgstr "Перегляди ідентифікаторів" - -msgid "User object overrides" -msgstr "Пріоритет об’єкта користувача" - -msgid "Group object overrides" -msgstr "Пріоритет об’єкта групи" - -msgid "Hosts the view applies to" -msgstr "Вузли, до яких застосовний перегляд" - -msgid "Domain resolution order" -msgstr "Порядок визначення доменів" - -msgid "colon-separated list of domains used for short name qualification" -msgstr "" -"список доменів, відокремлених двокрапками, які використовуються для обробки " -"коротких назв" - -#, python-format -msgid "Added ID View \"%(value)s\"" -msgstr "Додано перегляд ідентифікаторів «%(value)s»" - -#, python-format -msgid "Deleted ID View \"%(value)s\"" -msgstr "Вилучено перегляд ідентифікаторів «%(value)s»" - -#, python-format -msgid "Modified an ID View \"%(value)s\"" -msgstr "Змінено перегляд ідентифікаторів «%(value)s»" - -#, python-format -msgid "%(count)d ID View matched" -msgid_plural "%(count)d ID Views matched" -msgstr[0] "встановлено відповідність %(count)d перегляду ідентифікаторів" -msgstr[1] "встановлено відповідність %(count)d переглядів ідентифікаторів" -msgstr[2] "встановлено відповідність %(count)d переглядів ідентифікаторів" - -msgid "Default Trust View cannot be applied on hosts" -msgstr "Типовий перегляд довіри не може бути застосовано до вузлів" - -msgid "not found" -msgstr "не знайдено" - -msgid "ID View already applied" -msgstr "Перегляд ідентифікаторів уже застосовано" - -msgid "value" -msgstr "значення" - -#, python-format -msgid "ID View applied to %i host." -msgstr "Перегляд ідентифікаторів застосовано до %i вузла." - -#, python-format -msgid "ID View applied to %i hosts." -msgstr "Перегляд ідентифікаторів застосовано до %i вузлів." - -#, python-format -msgid "ID View cleared from %i host." -msgstr "Перегляд ідентифікаторів знято з %i вузла." - -#, python-format -msgid "ID View cleared from %i hosts." -msgstr "Перегляд ідентифікаторів знято з %i вузлів." - -msgid "" -"You are trying to reference a magic private group which is not allowed to be " -"overridden. Try overriding the GID attribute of the corresponding user " -"instead." -msgstr "" -"Ви намагаєтеся послатися на магічну приватну групу, яку не можна " -"перевизначати Спробуйте краще перевизначити атрибут GID запису відповідного " -"користувача." - -msgid "IPA object" -msgstr "Об’єкт IPA" - -msgid "" -"system IPA objects (e.g. system groups, user private groups) cannot be " -"overridden" -msgstr "" -"системні об’єкти IPA (наприклад системні групи, приватні групи користувачів) " -"не може бути перевизначено" - -#, python-format -msgid "Anchor '%(anchor)s' could not be resolved." -msgstr "Не вдалося визначити прив’язку «%(anchor)s»." - -msgid "Default Trust View cannot contain IPA users" -msgstr "Типовий перегляд довіри не може містити користувачів IPA" - -msgid "Add a new ID override." -msgstr "Додати нове перевизначення ідентифікаторів." - -#, python-format -msgid "Added ID override \"%(value)s\"" -msgstr "Додано перевизначення ідентифікаторів «%(value)s»" - -msgid "Delete an ID override." -msgstr "Вилучити перевизначення ідентифікаторів." - -#, python-format -msgid "Deleted ID override \"%(value)s\"" -msgstr "Вилучено перевизначення ідентифікатора «%(value)s»" - -msgid "Modify an ID override." -msgstr "Змінити перевизначення ідентифікатора." - -#, python-format -msgid "Modified an ID override \"%(value)s\"" -msgstr "Змінено перевизначення ідентифікатора «%(value)s»" - -msgid "ID override" -msgstr "Перевизначення ідентифікатора" - -msgid "ID overrides cannot be renamed" -msgstr "Перевизначення ідентифікаторів не можна перейменовувати" - -msgid "Search for an ID override." -msgstr "Шукати перевизначення ідентифікатора." - -#, python-format -msgid "%(count)d ID override matched" -msgid_plural "%(count)d ID overrides matched" -msgstr[0] "встановлено відповідність %(count)d перевизначення ідентифікатора" -msgstr[1] "встановлено відповідність %(count)d перевизначень ідентифікаторів" -msgstr[2] "встановлено відповідність %(count)d перевизначень ідентифікаторів" - -msgid "Display information about an ID override." -msgstr "Показати дані щодо перевизначення ідентифікатора." - -msgid "User ID override" -msgstr "Перевизначення ідентифікатора користувача" - -msgid "User ID overrides" -msgstr "Перевизначення ідентифікатора користувача" - -msgid "Base-64 encoded user certificate" -msgstr "Сертифікат користувача у кодуванні Base-64" - -msgid "Group ID override" -msgstr "Перевизначення ідентифікатора групи" - -msgid "Group ID overrides" -msgstr "Перевизначення ідентифікатора групи" - -msgid "Add one or more certificates to the idoverrideuser entry" -msgstr "Додати один або декілька сертифікатів запису idoverrideuser" - -#, python-format -msgid "Added certificates to idoverrideuser \"%(value)s\"" -msgstr "Додано сертифікати до запису idoverrideuser «%(value)s»" - -msgid "Remove one or more certificates to the idoverrideuser entry" -msgstr "Вилучити один або декілька сертифікатів запису idoverrideuser" - -#, python-format -msgid "Removed certificates from idoverrideuser \"%(value)s\"" -msgstr "Вилучено сертифікати із запису idoverrideuser «%(value)s»" - -#, python-format -msgid "Added User ID override \"%(value)s\"" -msgstr "Додано перевизначення ідентифікатора користувача «%(value)s»" - -#, python-format -msgid "Deleted User ID override \"%(value)s\"" -msgstr "Вилучено перевизначення ідентифікатора користувача «%(value)s»" - -#, python-format -msgid "Modified an User ID override \"%(value)s\"" -msgstr "Змінено перевизначення ідентифікатора користувача «%(value)s»" - -#, python-format -msgid "%(count)d User ID override matched" -msgid_plural "%(count)d User ID overrides matched" -msgstr[0] "" -"встановлено відповідність %(count)d перевизначення ідентифікатора користувача" -msgstr[1] "" -"встановлено відповідність %(count)d перевизначень ідентифікаторів " -"користувачів" -msgstr[2] "" -"встановлено відповідність %(count)d перевизначень ідентифікаторів " -"користувачів" - -#, python-format -msgid "Added Group ID override \"%(value)s\"" -msgstr "Додано перевизначення ідентифікаторів групи «%(value)s»" - -#, python-format -msgid "Deleted Group ID override \"%(value)s\"" -msgstr "Вилучено перевизначення ідентифікаторів групи «%(value)s»" - -#, python-format -msgid "Modified an Group ID override \"%(value)s\"" -msgstr "Змінено перевизначення ідентифікаторів групи «%(value)s»" - -#, python-format -msgid "%(count)d Group ID override matched" -msgid_plural "%(count)d Group ID overrides matched" -msgstr[0] "" -"встановлено відповідність %(count)d перевизначення ідентифікаторів групи" -msgstr[1] "" -"встановлено відповідність %(count)d перевизначень ідентифікаторів групи" -msgstr[2] "" -"встановлено відповідність %(count)d перевизначень ідентифікаторів групи" - msgid "Failed to authenticate to CA REST API" msgstr "" "Не вдалося пройти розпізнавання за допомогою програмного інтерфейсу CA REST" @@ -21029,28 +21672,481 @@ msgstr "Не вдалося обмінятися даними з CMS" msgid "Response from CA was not valid JSON" msgstr "Відповідь від CA не була коректним кодом JSON" -msgid "find not supported on CAs upgraded from 9 to 10" -msgstr "знайти непідтримувані у CA після оновлення з 9 до 10" - -msgid "One time password commands" -msgstr "Команди для одноразового пароля" - -#, python-brace-format msgid "" -"Domain Level cannot be raised to {0}, existing replication conflicts have to " -"be resolved." +"\n" +"Auto Membership Rule.\n" msgstr "" -"Рівень домену не може бути піднято до {0}, слід розв’язати наявні конфлікти " -"реплікації." +"\n" +"Правило автоматичної участі.\n" -msgid "Domain Level cannot be lowered." -msgstr "Не можна знижувати рівень домену." - -#, python-brace-format -msgid "Domain Level cannot be raised to {0}, server {1} does not support it." +msgid "" +"\n" +"Bring clarity to the membership of hosts and users by configuring inclusive\n" +"or exclusive regex patterns, you can automatically assign a new entries " +"into\n" +"a group or hostgroup based upon attribute information.\n" msgstr "" -"Не можна підняти рівень домену до {0}, оскільки на сервері {1} не " -"передбачено підтримки такого рівня." +"\n" +"Внесіть ясність у правила участі вузлів та користувачів налаштовуванням\n" +"формальних виразів шаблонів включення або виключення. Ви можете автоматично\n" +"пов’язувати нові записи з групою або групою вузлів на основі даних щодо " +"атрибутів.\n" + +msgid "" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup.\n" +msgstr "" +"\n" +"Правило безпосередньо пов’язується з групою за назвою, отже ви не можете\n" +"створити правило без визначення групи або групи вузлів.\n" + +msgid "" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +msgstr "" +"\n" +"Умова є формальним виразом, використовується 389-ds для встановлення\n" +"відповідності нового вхідного запису з правилом автоматичної участі.\n" +"Якщо умові відповідає правило включення, запис додається до відповідної\n" +"групи або групи вузлів.\n" + +msgid "" +"\n" +"A default group or hostgroup could be specified for entries that do not\n" +"match any rule. In case of user entries this group will be a fallback group\n" +"because all users are by default members of group specified in IPA config.\n" +msgstr "" +"\n" +"Можна визначити типову групу або групу вузлів, яку буде використано для\n" +"записів, які не відповідають жодному правилу. У випадку записів " +"користувачів\n" +"ця група буде резервною групою, оскільки усіх користувачі типово є " +"учасниками\n" +"групи, вказаної у налаштуваннях IPA.\n" + +msgid "" +"\n" +"The automember-rebuild command can be used to retroactively run automember " +"rules\n" +"against existing entries, thus rebuilding their membership.\n" +msgstr "" +"\n" +"За допомогою програми automember-rebuild ви можете повторно застосувати " +"правила\n" +"автоматичної участі до вже створених записів, тобто перебудувати схему " +"участі.\n" + +msgid "" +"\n" +" Add the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +msgstr "" +"\n" +" Додати початкову групу або групу вузлів:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" + +msgid "" +"\n" +" Add the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +msgstr "" +"\n" +" Додати початкове правило:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" + +msgid "" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-" +"regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-" +"regex=^uid=mscott devel\n" +msgstr "" +"\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" + +msgid "" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-" +"regex=^web5\\.example\\.com webservers\n" +msgstr "" +"\n" +" Додати умову виключення до правила для запобігання автоматичному " +"пов’язуванню:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-" +"regex=^web5\\.example\\.com webservers\n" + +msgid "" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +msgstr "" +"\n" +" Додати вузол:\n" +" ipa host-add web1.example.com\n" + +msgid "" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +msgstr "" +"\n" +" Додати запис користувача:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" + +msgid "" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +msgstr "" +"\n" +" Перевірити правила автоматичної участі:\n" +" ipa hostgroup-show webservers\n" +" Група вузлів: webservers\n" +" Опис: Web Servers\n" +" Вузли-учасники: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Назва групи: devel\n" +" Опис: Developers\n" +" GID: 1004200000\n" +" Користувачі-учасники: tuser\n" + +msgid "" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-" +"regex=^web[1-9]+\\.example\\.com webservers\n" +msgstr "" +"\n" +" Вилучити умову з правила:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-" +"regex=^web[1-9]+\\.example\\.com webservers\n" + +msgid "" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +msgstr "" +"\n" +" Змінити правило автоматичної участі:\n" +" ipa automember-mod\n" + +msgid "" +"\n" +" Set the default (fallback) target group:\n" +" ipa automember-default-group-set --default-group=webservers --" +"type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +msgstr "" +"\n" +" Встановити типову (резервну) групу призначення:\n" +" ipa automember-default-group-set --default-group=webservers --" +"type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" + +msgid "" +"\n" +" Remove the default (fallback) target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +msgstr "" +"\n" +" Вилучити типову (резервну) групу призначення:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" + +msgid "" +"\n" +" Show the default (fallback) target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +msgstr "" +"\n" +" Показати типову (резервну) групу призначення:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" + +msgid "" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +msgstr "" +"\n" +" Знайти усіх правила автоматичної участі:\n" +" ipa automember-find\n" + +msgid "" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +msgstr "" +"\n" +" Показати правило автоматичної участі:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" + +msgid "" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" +msgstr "" +"\n" +" Вилучити правило автоматичної участі:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" + +msgid "" +"\n" +" Rebuild membership for all users:\n" +" ipa automember-rebuild --type=group\n" +msgstr "" +"\n" +" Перебудувати записи участі для усіх користувачів:\n" +" ipa automember-rebuild --type=group\n" + +msgid "" +"\n" +" Rebuild membership for all hosts:\n" +" ipa automember-rebuild --type=hostgroup\n" +msgstr "" +"\n" +" Перебудувати записи участі для усіх вузлів:\n" +" ipa automember-rebuild --type=hostgroup\n" + +msgid "" +"\n" +" Rebuild membership for specified users:\n" +" ipa automember-rebuild --users=tuser1 --users=tuser2\n" +msgstr "" +"\n" +" Перебудувати записи участі для вказаних користувачів:\n" +" ipa automember-rebuild --users=tuser1 --users=tuser2\n" + +msgid "" +"\n" +" Rebuild membership for specified hosts:\n" +" ipa automember-rebuild --hosts=web1.example.com --hosts=web2.example." +"com\n" +msgstr "" +"\n" +" Перебудувати записи участі для вказаних вузлів:\n" +" ipa automember-rebuild --hosts=web1.example.com --hosts=web2.example." +"com\n" + +msgid "Auto Membership Rule" +msgstr "Правило автоматичної участі" + +#, python-format +msgid "%(otype)s \"%(oname)s\" not found" +msgstr "%(otype)s «%(oname)s» не знайдено" + +#, python-format +msgid "%s is not a valid attribute." +msgstr "%s не є коректним атрибутом." + +msgid "" +"\n" +" Add an automember rule.\n" +" " +msgstr "" +"\n" +" Додати правило автоматичної участі.\n" +" " + +#, python-format +msgid "Added automember rule \"%(value)s\"" +msgstr "Додано правило автоматичної участі «%(value)s»" + +msgid "Auto Membership is not configured" +msgstr "Автоматичну участь не налаштовано" + +msgid "" +"\n" +" Add conditions to an automember rule.\n" +" " +msgstr "" +"\n" +" Додати умови до правила автоматичної участі.\n" +" " + +#, python-format +msgid "Added condition(s) to \"%(value)s\"" +msgstr "Додано умови до «%(value)s»" + +#, python-format +msgid "Auto member rule: %s not found!" +msgstr "Правило автоматичної участі: %s не знайдено!" + +msgid "" +"\n" +" Override this so we can add completed and failed to the return " +"result.\n" +" " +msgstr "" +"\n" +" Перевизначення з метою додавання у повернуте повідомлення даних щодо " +"успіху чи невдачі.\n" +" " + +msgid "" +"\n" +" Remove conditions from an automember rule.\n" +" " +msgstr "" +"\n" +" Вилучити умови з правила автоматичної участі.\n" +" " + +#, python-format +msgid "Removed condition(s) from \"%(value)s\"" +msgstr "Вилучено умови з «%(value)s»" + +msgid "" +"\n" +" Override this so we can set completed and failed.\n" +" " +msgstr "" +"\n" +" Перевизначення з метою встановлення станів успіху та невдачі.\n" +" " + +msgid "" +"\n" +" Modify an automember rule.\n" +" " +msgstr "" +"\n" +" Змінити правило автоматичної участі.\n" +" " + +#, python-format +msgid "Modified automember rule \"%(value)s\"" +msgstr "Змінено правило автоматичної участі «%(value)s»" + +msgid "" +"\n" +" Delete an automember rule.\n" +" " +msgstr "" +"\n" +" Вилучити правило автоматичної участі.\n" +" " + +#, python-format +msgid "Deleted automember rule \"%(value)s\"" +msgstr "Вилучено правило автоматичної участі «%(value)s»" + +msgid "" +"\n" +" Search for automember rules.\n" +" " +msgstr "" +"\n" +" Шукати правила автоматичної участі.\n" +" " + +#, 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 правил" + +msgid "" +"\n" +" Display information about an automember rule.\n" +" " +msgstr "" +"\n" +" Показати дані щодо правила автоматичної участі.\n" +" " + +msgid "" +"\n" +" Set default (fallback) group for all unmatched entries.\n" +" " +msgstr "" +"\n" +" Встановити типову (резервну) групу для невідповідних записів.\n" +" " + +#, python-format +msgid "Set default (fallback) group for automember \"%(value)s\"" +msgstr "Встановити типову (резервну) групу для автоматичної участі «%(value)s»" + +msgid "" +"\n" +" Remove default (fallback) group for all unmatched entries.\n" +" " +msgstr "" +"\n" +" Вилучити типову (резервну) групу для невідповідних записів.\n" +" " + +#, python-format +msgid "Removed default (fallback) group for automember \"%(value)s\"" +msgstr "Вилучити типову (резервну) групу для автоматичної участі «%(value)s»" + +msgid "No default (fallback) group set" +msgstr "Не встановлено типової (резервної) групи" + +msgid "" +"\n" +" Display information about the default (fallback) automember groups.\n" +" " +msgstr "" +"\n" +" Показати дані щодо типових (резервних) груп автоматичної участі.\n" +" " + +msgid "Task DN" +msgstr "DN завдання" + +msgid "DN of the started task" +msgstr "DN запущеного завдання" + +msgid "at least one of options: type, users, hosts must be specified" +msgstr "має бути вказано принаймні один з варіантів: тип, користувачі чи вузли" + +msgid "users and hosts cannot both be set" +msgstr "не можна одночасно вказувати користувачів і вузли" + +msgid "hosts cannot be set when type is 'group'" +msgstr "не можна вказувати вузли, якщо типом є «group»" + +msgid "users cannot be set when type is 'hostgroup'" +msgstr "не можна вказувати користувачів, якщо типом є «hostgroup»" + +msgid "Automember rebuild membership task started" +msgstr "Виконується завдання з перебудови записів автоматичної участі" + +#, python-format +msgid "Task DN = '%s'" +msgstr "DN завдання = «%s»" msgid "" "\n" @@ -21250,9 +22346,6 @@ msgstr "«%s» не є коректним типом прав доступу" msgid "Deprecated; use %s" msgstr "Застаріло; користуйтеся %s" -msgid "ACI" -msgstr "ACI" - #, python-format msgid "Permission with unknown flag %s may not be modified or removed" msgstr "Не можна змінювати чи вилучати права доступу з невідомим прапорцем %s" @@ -21356,73 +22449,41 @@ msgstr[0] "встановлено відповідність %(count)d запи msgstr[1] "встановлено відповідність %(count)d записів" msgstr[2] "встановлено відповідність %(count)d записів" -msgid "" -"\n" -"Baseuser\n" -"\n" -"This contains common definitions for user/stageuser\n" +msgid "HBAC service group" +msgstr "група служб HBAC" + +msgid "HBAC service groups" +msgstr "Група служб HBAC" + +msgid "HBAC Service Groups" +msgstr "Група служб HBAC" + +msgid "HBAC Service Group" +msgstr "Група служб HBAC" + +#, python-format +msgid "Added HBAC service group \"%(value)s\"" +msgstr "Додано групу служб HBAC «%(value)s»" + +#, python-format +msgid "Deleted HBAC service group \"%(value)s\"" +msgstr "Вилучено групу служб HBAC «%(value)s»" + +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" +msgstr "Змінено групу служб HBAC «%(value)s»" + +#, 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" + +msgid "Could not read UPG Definition originfilter. Check your permissions." msgstr "" -"\n" -"Основний користувач\n" -"\n" -"Містить загальні визначення щодо користувача або користувача етапу.\n" - -msgid "must be TRUE or FALSE" -msgstr "має дорівнювати TRUE або FALSE" - -msgid "User password expiration" -msgstr "Вичерпання строку дії пароля користувача" - -msgid "SSH public key fingerprint" -msgstr "Відбиток відкритого ключа SSH" - -#, python-format -msgid "invalid e-mail format: %(email)s" -msgstr "некоректний формат адреси електронної пошти: %(email)s" - -#, python-format -msgid "manager %(manager)s not found" -msgstr "керування %(manager)s не знайдено" - -#, python-format -msgid "can be at most %(len)d characters" -msgstr "не повинне перевищувати %(len)d символів у довжину" - -msgid "Issuer of the certificate" -msgstr "Видавець сертифіката" - -msgid "Subject of the certificate" -msgstr "Призначення сертифіката" - -msgid "cannot have an empty subject" -msgstr "поле призначення не може бути порожнім" - -msgid "cannot specify both subject/issuer and certificate" -msgstr "не можна вказувати одночасно subject/issuer і certificate" - -msgid "cannot specify both subject/issuer and ipacertmapdata" -msgstr "не можна вказувати одночасно subject/issuer і ipacertmapdata" - -msgid "Add one or more certificate mappings to the user entry." -msgstr "Додати одну або декілька прив’язок сертифікатів до запису користувача." - -#, python-format -msgid "Added certificate mappings to user \"%(value)s\"" -msgstr "Додано прив’язки сертифікатів до запису користувача «%(value)s»" - -msgid "Remove one or more certificate mappings from the user entry." -msgstr "" -"Вилучити одну або декілька прив’язок сертифікатів із запису користувача." - -#, python-format -msgid "Removed certificate mappings from user \"%(value)s\"" -msgstr "Вилучено прив’язки сертифікатів до запису користувача «%(value)s»" - -msgid "pkinit" -msgstr "pkinit" - -msgid "PKINIT" -msgstr "PKINIT" +"Не вдалося прочитати фільтр походження (originfilter) UPG Definition. " +"Переконайтеся, що у вас є відповідні права доступу." msgid "self service permission" msgstr "права доступу автослужби" @@ -21455,75 +22516,616 @@ msgstr[0] "встановлено відповідність %(count)d само msgstr[1] "встановлено відповідність %(count)d самообслуговування" msgstr[2] "встановлено відповідність %(count)d самообслуговувань" -msgid "HBAC rule and local members cannot both be set" -msgstr "Не можна одночасно вказувати правило HBAC і локальних учасників" - -msgid "Invalid SELinux user name, only a-Z and _ are allowed" +msgid "" +"\n" +"IPA locations\n" msgstr "" -"Некоректне ім’я користувача SELinux, у імені можна використовувати лише " -"символи a-Z і _" - -msgid "Invalid MLS value, must match s[0-15](-s[0-15])" -msgstr "" -"Некоректне значення MLS. Значення має відповідати шаблону s[0-15](-s[0-15])" +"\n" +"Місця IPA\n" msgid "" -"Invalid MCS value, must match c[0-1023].c[0-1023] and/or c[0-1023]-c[0-c0123]" +"\n" +"Manipulate DNS locations\n" msgstr "" -"Некоректне значення MCS. Значення має відповідати шаблону c[0-1023]." -"c[0-1023] і/або шаблону c[0-1023]-c[0-c0123]" +"\n" +"Робота з місцями DNS\n" -msgid "SELinux user map list not found in configuration" -msgstr "Списку карт користувачів SELinux у налаштуваннях не виявлено" - -#, python-format -msgid "SELinux user %(user)s not found in ordering list (in config)" +msgid "" +"\n" +" Find all locations:\n" +" ipa location-find\n" msgstr "" -"Запису користувача SELinux %(user)s не виявлено у порядковому списку (у " -"налаштуваннях)" +"\n" +" Знайти усі місця:\n" +" ipa location-find\n" -msgid "SELinux User Map rule" -msgstr "Правило карти користувачів SELinux" +msgid "" +"\n" +" Show specific location:\n" +" ipa location-show location\n" +msgstr "" +"\n" +" Показати певне місце:\n" +" ipa location-show location\n" -msgid "SELinux User Map rules" -msgstr "Правила карти користувачів SELinux" +msgid "" +"\n" +" Add location:\n" +" ipa location-add location --description 'My location'\n" +msgstr "" +"\n" +" Додати запис місця:\n" +" ipa location-add location --description 'My location'\n" -msgid "SELinux User Maps" -msgstr "Карти користувачів SELinux" +msgid "" +"\n" +" Delete location:\n" +" ipa location-del location\n" +msgstr "" +"\n" +" Вилучити запис місця:\n" +" ipa location-del location\n" -msgid "SELinux User Map" -msgstr "Карта користувачів SELinux" +msgid "location" +msgstr "місце" + +msgid "locations" +msgstr "місця" + +msgid "IPA Locations" +msgstr "Місця IPA" + +msgid "IPA Location" +msgstr "Місце IPA" + +msgid "Location name" +msgstr "Назва місця" + +msgid "IPA location name" +msgstr "Назва місця IPA" + +msgid "IPA Location description" +msgstr "Опис місця IPA" + +msgid "Servers" +msgstr "Сервери" + +msgid "Servers that belongs to the IPA location" +msgstr "Сервери, що належать до запису місця IPA" + +msgid "Advertised by servers" +msgstr "Повідомлено серверами" + +msgid "List of servers which advertise the given location" +msgstr "Вивести список серверів, які повідомляють про вказане місце" + +msgid "Add a new IPA location." +msgstr "Додати новий запис місця IPA." #, python-format -msgid "HBAC rule %(rule)s not found" -msgstr "Не знайдено правила HBAC %(rule)s" +msgid "Added IPA location \"%(value)s\"" +msgstr "Додано запис місця IPA «%(value)s»" + +msgid "Delete an IPA location." +msgstr "Вилучити місце IPA." #, python-format -msgid "Added SELinux User Map \"%(value)s\"" -msgstr "Додано карту користувачів SELinux «%(value)s»" +msgid "Deleted IPA location \"%(value)s\"" +msgstr "Вилучено запис місця IPA «%(value)s»" + +msgid "Modify information about an IPA location." +msgstr "Змінити дані щодо місця IPA." #, python-format -msgid "Deleted SELinux User Map \"%(value)s\"" -msgstr "Вилучено карту користувачів SELinux «%(value)s»" +msgid "Modified IPA location \"%(value)s\"" +msgstr "Змінено запис місця IPA «%(value)s»" + +msgid "Search for IPA locations." +msgstr "Шукати місця IPA." #, python-format -msgid "Modified SELinux User Map \"%(value)s\"" -msgstr "Змінено карту користувачів SELinux «%(value)s»" +msgid "%(count)d IPA location matched" +msgid_plural "%(count)d IPA locations matched" +msgstr[0] "встановлено відповідність %(count)d місця IPA" +msgstr[1] "встановлено відповідність %(count)d місць IPA" +msgstr[2] "встановлено відповідність %(count)d місць IPA" + +msgid "Display information about an IPA location." +msgstr "Показати дані щодо місця IPA." + +msgid "Servers in location" +msgstr "Сервери у місці" + +msgid "A list of ACI values" +msgstr "Список значень ACI" + +msgid "type, filter, subtree and targetgroup are mutually exclusive" +msgstr "type, filter, subtree і targetgroup є взаємовиключними" + +msgid "ACI prefix is required" +msgstr "Слід вказати префікс ACI" + +msgid "" +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" +msgstr "" +"слід вказати хоча б одне з: type, filter, subtree, targetgroup, attrs або " +"memberof" + +msgid "filter and memberof are mutually exclusive" +msgstr "filter і memberof не можна використовувати разом" + +msgid "group, permission and self are mutually exclusive" +msgstr "group, permission і self не можна використовувати разом" + +msgid "One of group, permission or self is required" +msgstr "Слід вказати одне зі значень, group, permission або self" #, python-format -msgid "%(count)d SELinux User Map matched" -msgid_plural "%(count)d SELinux User Maps matched" -msgstr[0] "встановлено відповідність %(count)d карти користувачів SELinux" -msgstr[1] "встановлено відповідність %(count)d карт користувачів SELinux" -msgstr[2] "встановлено відповідність %(count)d карт користувачів SELinux" +msgid "Group '%s' does not exist" +msgstr "Групи з назвою «%s» не існує" + +msgid "empty filter" +msgstr "порожній фільтр" #, python-format -msgid "Enabled SELinux User Map \"%(value)s\"" -msgstr "Увімкнено карту користувачів SELinux «%(value)s»" +msgid "Syntax Error: %(error)s" +msgstr "Синтаксична помилка: %(error)s" #, python-format -msgid "Disabled SELinux User Map \"%(value)s\"" -msgstr "Вимкнено карту користувачів SELinux «%(value)s»" +msgid "invalid DN (%s)" +msgstr "некоректне DN (%s)" + +#, python-format +msgid "ACI with name \"%s\" not found" +msgstr "Не знайдено ACI з назвою «%s»" + +msgid "ACIs" +msgstr "ACI" + +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "Створено ACI «%(value)s»" + +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "Вилучено ACI «%(value)s»" + +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "Змінено ACI «%(value)s»" + +#, 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" + +#, python-format +msgid "Renamed ACI to \"%(value)s\"" +msgstr "ACI перейменовано на «%(value)s»" + +msgid "" +"\n" +"IPA servers\n" +msgstr "" +"\n" +"Сервери IPA\n" + +msgid "" +"\n" +"Get information about installed IPA servers.\n" +msgstr "" +"\n" +"Отримати дані щодо встановлених серверів IPA.\n" + +msgid "" +"\n" +" Find all servers:\n" +" ipa server-find\n" +msgstr "" +"\n" +" Знайти усі сервери:\n" +" ipa server-find\n" + +msgid "" +"\n" +" Show specific server:\n" +" ipa server-show ipa.example.com\n" +msgstr "" +"\n" +" Показати вказаний сервер:\n" +" ipa server-show ipa.example.com\n" + +msgid "server" +msgstr "сервер" + +msgid "servers" +msgstr "сервери" + +msgid "IPA Servers" +msgstr "Сервери IPA" + +msgid "Server location" +msgstr "Місце сервера" + +msgid "Service weight" +msgstr "Вага служб" + +msgid "Weight for server services" +msgstr "Вага служб сервера" + +msgid "Service relative weight" +msgstr "Відносна вага служб" + +msgid "Relative weight for server services (counts per location)" +msgstr "Відносна вага служб для сервера (обчислюється для окремого місця)" + +msgid "Enabled server roles" +msgstr "Увімкнені ролі сервера" + +msgid "List of enabled roles" +msgstr "Список усіх увімкнених ролей" + +msgid "Modify information about an IPA server." +msgstr "Змінити дані щодо сервера IPA." + +#, python-format +msgid "Modified IPA server \"%(value)s\"" +msgstr "Змінено запис сервера IPA «%(value)s»" + +#, python-format +msgid "%(count)d IPA server matched" +msgid_plural "%(count)d IPA servers matched" +msgstr[0] "встановлено відповідність %(count)d сервера IPA" +msgstr[1] "встановлено відповідність %(count)d серверів IPA" +msgstr[2] "встановлено відповідність %(count)d серверів IPA" + +#, python-format +msgid "Deleted IPA server \"%(value)s\"" +msgstr "Вилучено сервер IPA «%(value)s»" + +msgid "Ignore topology errors" +msgstr "Ігнорувати помилки топології" + +msgid "Ignore topology connectivity problems after removal" +msgstr "Ігнорувати проблеми із з’єднуваністю топології після вилучення" + +msgid "Ignore check for last remaining CA or DNS server" +msgstr "" +"Ігнорувати перевірку на те, чи є сервер, який вилучають, останнім сервером " +"CA або DNS" + +msgid "Skip a check whether the last CA master or DNS server is removed" +msgstr "" +"Пропустити перевірку того, чи вилучено останній основний сервер CA або " +"сервер DNS" + +msgid "Force server removal" +msgstr "Примусове вилучення сервера" + +msgid "Force server removal even if it does not exist" +msgstr "Примусове вилучення сервера, навіть якщо його не існує" + +msgid "" +"Replica is active DNSSEC key master. Uninstall could break your DNS system. " +"Please disable or replace DNSSEC key master first." +msgstr "" +"Репліка є активним основним сервером ключів DNSSEC. Вилучення може зашкодити " +"вашій системі DNS. Будь ласка, спочатку вимкніть або замініть основний " +"сервер ключів DNSSEC." + +msgid "Deleting this server will leave your installation without a DNS." +msgstr "" +"Вилучення цього запису сервера залишить вашу встановлену систему без DNS." + +msgid "" +"Deleting this server is not allowed as it would leave your installation " +"without a KRA." +msgstr "" +"Вилучення цього сервера заборонено, оскільки воно залишить вашу встановлену " +"систему без KRA." + +msgid "" +"Deleting this server is not allowed as it would leave your installation " +"without a CA." +msgstr "" +"Вилучення цього сервера заборонено, оскільки воно залишить вашу встановлену " +"систему без CA." + +msgid "Ignoring these warnings and proceeding with removal" +msgstr "Ігноруємо ці попередження і продовжуємо процедуру вилучення" + +#, python-format +msgid "" +"Failed to clean memberPrincipal %(principal)s from s4u2proxy entry %(dn)s: " +"%(err)s" +msgstr "" +"Не вдалося вилучити %(principal)s memberPrincipal із запису s4u2proxy " +"%(dn)s: %(err)s" + +#, python-format +msgid "Failed to clean up DNA hostname entries for %(master)s: %(err)s" +msgstr "Не вдалося вилучити записи назви вузла DNA для %(master)s: %(err)s" + +#, python-format +msgid "Failed to remove server %(master)s from server list: %(err)s" +msgstr "" +"Не вдалося вилучити запис сервера %(master)s зі списку серверів: %(err)s" + +#, python-format +msgid "Failed to clean up Custodia keys for %(master)s: %(err)s" +msgstr "Не вдалося вилучити ключі Custodia для %(master)s: %(err)s" + +#, python-format +msgid "Failed to cleanup server principals/keys: %(err)s" +msgstr "Не вдалося вилучити реєстраційні запис або ключі сервера: %(err)s" + +#, python-format +msgid "Failed to cleanup %(hostname)s DNS entries: %(err)s" +msgstr "Не вдалося вилучити записи DNS %(hostname)s: %(err)s" + +msgid "You may need to manually remove them from the tree" +msgstr "Ймовірно, вам доведеться вилучити їх із ієрархії вручну" + +#, python-format +msgid "Forcing removal of %(hostname)s" +msgstr "Примусово вилучаємо %(hostname)s" + +msgid "Ignoring topology connectivity errors." +msgstr "Ігноруємо помилки із з’єднуваністю топології." + +msgid "Server has already been deleted" +msgstr "Запис сервера вже вилучено" + +msgid "Agreements deleted" +msgstr "Угоди вилучено" + +msgid "Following segments were not deleted:" +msgstr "Вказані нижче сегменти не було вилучено:" + +#, python-format +msgid "must be \"%s\"" +msgstr "має бути «%s»" + +msgid "not allowed to perform server connection check" +msgstr "не дозволено виконувати перевірку з’єднання сервера" + +msgid "Member service groups" +msgstr "Групи служб учасника" + +msgid "Member HBAC service groups" +msgstr "Групи служб HBAC учасника" + +msgid "Indirect Member permissions" +msgstr "Опосередковані права доступу учасника" + +msgid "Indirect Member HBAC service" +msgstr "Опосередкована служба HBAC учасника" + +msgid "Indirect Member HBAC service group" +msgstr "Опосередкована група служб HBAC учасника" + +msgid "Invalid format. Should be name=value" +msgstr "Некоректний формат. Правильний формат: назва=значення" + +msgid "An IPA master host cannot be deleted or disabled" +msgstr "Основний вузол IPA не можна вилучати або вимикати" + +msgid "entry" +msgstr "запис" + +msgid "entries" +msgstr "записи" + +msgid "Entry" +msgstr "Запис" + +#, python-format +msgid "container entry (%(container)s) not found" +msgstr "не знайдено запис контейнера (%(container)s)" + +#, python-format +msgid "%(parent)s: %(oname)s not found" +msgstr "%(parent)s: не знайдено %(oname)s" + +#, python-format +msgid "%(pkey)s: %(oname)s not found" +msgstr "%(pkey)s: не знайдено %(oname)s" + +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" +msgstr "%(oname)s з назвою «%(pkey)s» вже існує" + +#, python-format +msgid "attribute \"%(attribute)s\" not allowed" +msgstr "не можна використовувати атрибут «%(attribute)s»" + +msgid "attribute is not configurable" +msgstr "атрибут не можна налаштовувати" + +msgid "No such attribute on this entry" +msgstr "У цього запису немає такого атрибута" + +#, python-format +msgid "Rename the %(ldap_obj_name)s object" +msgstr "Перейменувати об’єкт %(ldap_obj_name)s" + +msgid "the entry was deleted while being modified" +msgstr "запис було вилучено під час внесення змін" + +#, python-format +msgid "%s" +msgstr "%s" + +#, python-format +msgid "%s to add" +msgstr "%s для додавання" + +#, python-format +msgid "%s to remove" +msgstr "%s для вилучення" + +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" +msgstr "Результати мають містити лише атрибут основного ключа («%s»)" + +#, python-format +msgid "" +"Search for %(searched_object)s with these %(relationship)s %(ldap_object)s." +msgstr "Шукати %(searched_object)s у цих %(relationship)s %(ldap_object)s." + +#, python-format +msgid "" +"Search for %(searched_object)s without these %(relationship)s " +"%(ldap_object)s." +msgstr "Шукати %(searched_object)s не у цих %(relationship)s %(ldap_object)s." + +#, python-format +msgid "added attribute value to entry %(value)s" +msgstr "додано значення атрибута до запису %(value)s" + +#, python-format +msgid "'%(attr)s' already contains one or more values" +msgstr "«%(attr)s» вже містить одне або декілька значень" + +#, python-format +msgid "removed attribute values from entry %(value)s" +msgstr "вилучено значення атрибутів із запису %(value)s" + +msgid "one or more values to remove" +msgstr "одне або декілька значень для вилучення" + +msgid "" +"\n" +"Return information about currently authenticated identity\n" +"\n" +"Who am I command returns information on how to get\n" +"more details about the identity authenticated for this\n" +"request. The information includes:\n" +"\n" +" * type of object\n" +" * command to retrieve details of the object\n" +" * arguments and options to pass to the command\n" +"\n" +"The information is returned as a dictionary. Examples below use\n" +"'key: value' output for illustrative purposes.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Look up as IPA user:\n" +" kinit admin\n" +" ipa console\n" +" >> api.Command.whoami()\n" +" ------------------------------------------\n" +" object: user\n" +" command: user_show/1\n" +" arguments: admin\n" +" ------------------------------------------\n" +"\n" +" Look up as a user from a trusted domain:\n" +" kinit user@AD.DOMAIN\n" +" ipa console\n" +" >> api.Command.whoami()\n" +" ------------------------------------------\n" +" object: idoverrideuser\n" +" command: idoverrideuser_show/1\n" +" arguments: ('default trust view', 'user@ad.domain')\n" +" ------------------------------------------\n" +"\n" +" Look up as a host:\n" +" kinit -k\n" +" ipa console\n" +" >> api.Command.whoami()\n" +" ------------------------------------------\n" +" object: host\n" +" command: host_show/1\n" +" arguments: ipa.example.com\n" +" ------------------------------------------\n" +"\n" +" Look up as a Kerberos service:\n" +" kinit -k -t /path/to/keytab HTTP/ipa.example.com\n" +" ipa console\n" +" >> api.Command.whoami()\n" +" ------------------------------------------\n" +" object: service\n" +" command: service_show/1\n" +" arguments: HTTP/ipa.example.com\n" +" ------------------------------------------\n" +msgstr "" +"\n" +"Повернути дані щодо поточного розпізнаного профілю\n" +"\n" +"Команда визначення профілю повертає дані щодо того, як\n" +"отримати більше даних про профіль, розпізнаний для\n" +"цього запиту. Дані:\n" +"\n" +" * тип об’єкта\n" +" * команда для отримання подробиць щодо об’єкта\n" +" * аргументи та параметри, які слід передати команді\n" +"\n" +"Дані повертаються у форматі словника. Нижче, як приклад,\n" +"наведено виведення у форматі «ключ: значення».\n" +"\n" +"Приклади:\n" +"\n" +" Пошук від імені користувача IPA:\n" +" kinit admin\n" +" ipa console\n" +" >> api.Command.whoami()\n" +" ------------------------------------------\n" +" object: user\n" +" command: user_show/1\n" +" arguments: admin\n" +" ------------------------------------------\n" +"\n" +" Пошук від імені користувача довіреного домену:\n" +" kinit user@AD.DOMAIN\n" +" ipa console\n" +" >> api.Command.whoami()\n" +" ------------------------------------------\n" +" object: idoverrideuser\n" +" command: idoverrideuser_show/1\n" +" arguments: ('default trust view', 'user@ad.domain')\n" +" ------------------------------------------\n" +"\n" +" Пошук від імені вузла:\n" +" kinit -k\n" +" ipa console\n" +" >> api.Command.whoami()\n" +" ------------------------------------------\n" +" object: host\n" +" command: host_show/1\n" +" arguments: ipa.example.com\n" +" ------------------------------------------\n" +"\n" +" Пошук від імені служби Kerberos:\n" +" kinit -k -t /path/to/keytab HTTP/ipa.example.com\n" +" ipa console\n" +" >> api.Command.whoami()\n" +" ------------------------------------------\n" +" object: service\n" +" command: service_show/1\n" +" arguments: HTTP/ipa.example.com\n" +" ------------------------------------------\n" + +msgid "Describe currently authenticated identity." +msgstr "Описати поточний розпізнаний профіль." + +msgid "Object class name" +msgstr "Назва класу об’єктів" + +msgid "Function to get details" +msgstr "Функція, подробиці щодо якої слід отримати" + +msgid "Arguments to details function" +msgstr "Аргументи до функції details" + +msgid "Cannot query Directory Manager with API" +msgstr "" +"Не вдалося опитати засіб керування каталогом за допомогою програмного " +"інтерфейсу" msgid "" "\n" @@ -21688,6 +23290,9 @@ msgstr "" msgid "Base-64 encoded host certificate" msgstr "Сертифікат вузла у кодуванні Base-64" +msgid "SSH public key fingerprint" +msgstr "Відбиток відкритого ключа SSH" + #, python-format msgid "Added host \"%(value)s\"" msgstr "Додано вузол «%(value)s»" @@ -21750,779 +23355,855 @@ msgstr "Вилучити псевдонім реєстраційного зап msgid "Removed aliases from host \"%(value)s\"" msgstr "Вилучити псевдоніми із запису вузла «%(value)s»" -msgid "HBAC service group" -msgstr "група служб HBAC" +msgid "host groups" +msgstr "групи вузлів" -msgid "HBAC service groups" -msgstr "Група служб HBAC" - -msgid "HBAC Service Groups" -msgstr "Група служб HBAC" - -msgid "HBAC Service Group" -msgstr "Група служб HBAC" +msgid "Host Group" +msgstr "Група вузлів" #, python-format -msgid "Added HBAC service group \"%(value)s\"" -msgstr "Додано групу служб HBAC «%(value)s»" +msgid "Added hostgroup \"%(value)s\"" +msgstr "Додано групу вузлів «%(value)s»" #, python-format -msgid "Deleted HBAC service group \"%(value)s\"" -msgstr "Вилучено групу служб HBAC «%(value)s»" - -#, python-format -msgid "Modified HBAC service group \"%(value)s\"" -msgstr "Змінено групу служб HBAC «%(value)s»" - -#, 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" - -msgid "must contain a tuple (list, dict)" -msgstr "має містити кортеж (список, словник)" - -msgid "A list of ACI values" -msgstr "Список значень ACI" - -msgid "type, filter, subtree and targetgroup are mutually exclusive" -msgstr "type, filter, subtree і targetgroup є взаємовиключними" - -msgid "ACI prefix is required" -msgstr "Слід вказати префікс ACI" - msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -"слід вказати хоча б одне з: type, filter, subtree, targetgroup, attrs або " -"memberof" - -msgid "filter and memberof are mutually exclusive" -msgstr "filter і memberof не можна використовувати разом" - -msgid "group, permission and self are mutually exclusive" -msgstr "group, permission і self не можна використовувати разом" - -msgid "One of group, permission or self is required" -msgstr "Слід вказати одне зі значень, group, permission або self" +"Мережеву групу з назвою «%s» вже створено. Групи вузлів і мережеві групи " +"мають спільний простір назв." #, python-format -msgid "Group '%s' does not exist" -msgstr "Групи з назвою «%s» не існує" +msgid "Deleted hostgroup \"%(value)s\"" +msgstr "Вилучено групу вузлів «%(value)s»" -msgid "empty filter" -msgstr "порожній фільтр" +msgid "hostgroup" +msgstr "група вузлів" + +msgid "privileged hostgroup" +msgstr "привілейована група вузлів" #, python-format -msgid "Syntax Error: %(error)s" -msgstr "Синтаксична помилка: %(error)s" +msgid "Modified hostgroup \"%(value)s\"" +msgstr "Змінено групу вузлів «%(value)s»" #, python-format -msgid "invalid DN (%s)" -msgstr "некоректне DN (%s)" +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "встановлено відповідність %(count)d групи вузлів" +msgstr[1] "встановлено відповідність %(count)d груп вузлів" +msgstr[2] "встановлено відповідність %(count)d груп вузлів" + +msgid "configuration options" +msgstr "параметри налаштування" + +msgid "Configuration" +msgstr "Налаштування" + +msgid "IPA masters" +msgstr "Основні вузли IPA" + +msgid "List of all IPA masters" +msgstr "Список усіх основних вузлів IPA" + +msgid "IPA CA servers" +msgstr "Сервери CA IPA" + +msgid "IPA servers configured as certificate authority" +msgstr "Сервери IPA, які налаштовано як центри сертифікації" + +msgid "IPA NTP servers" +msgstr "Сервери NTP IPA" + +msgid "IPA servers with enabled NTP" +msgstr "Сервери IPA із увімкненим NTP" + +msgid "IPA CA renewal master" +msgstr "Основних вузол відновлення CA IPA" + +msgid "Renewal master for IPA certificate authority" +msgstr "Основний сервер відновлення для центру сертифікації IPA" + +msgid "IPA master capable of PKINIT" +msgstr "Основний IPA з можливістю PKINIT" + +msgid "IPA master which can process PKINIT requests" +msgstr "Основний IPA, який може обробляти запити PKINIT" + +msgid "Empty domain is not allowed" +msgstr "Не можна використовувати порожні домени" #, python-format -msgid "ACI with name \"%s\" not found" -msgstr "Не знайдено ACI з назвою «%s»" - -msgid "ACIs" -msgstr "ACI" +msgid "Invalid domain name '%(domain)s': %(e)s" +msgstr "Некоректна назва домену, «%(domain)s»: %(e)s" #, python-format -msgid "Created ACI \"%(value)s\"" -msgstr "Створено ACI «%(value)s»" +msgid "Server has no information about domain '%(domain)s'" +msgstr "На сервері немає інформації щодо домену «%(domain)s»" #, python-format -msgid "Deleted ACI \"%(value)s\"" -msgstr "Вилучено ACI «%(value)s»" +msgid "Disabled domain '%(domain)s' is not allowed" +msgstr "Вимкнений домен «%(domain)s» не можна використовувати" + +msgid "The group doesn't exist" +msgstr "Такої групи не існує" #, python-format -msgid "Modified ACI \"%(value)s\"" -msgstr "Змінено ACI «%(value)s»" +msgid "attribute \"%s\" not allowed" +msgstr "не можна використовувати атрибут «%s»" + +msgid "May not be empty" +msgstr "Не може бути порожнім" #, 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" +msgid "%(obj)s default attribute %(attr)s would not be allowed!" +msgstr "Типовий атрибут %(obj)s, %(attr)s, не буде дозволено!" -#, python-format -msgid "Renamed ACI to \"%(value)s\"" -msgstr "ACI перейменовано на «%(value)s»" - -msgid "Host-based access control commands" -msgstr "Команди керування доступом на основі вузлів" - -msgid "" -"\n" -"DNS server configuration\n" +msgid "A list of SELinux users delimited by $ expected" msgstr "" -"\n" -"Налаштування сервера DNS\n" - -msgid "" -"\n" -"Manipulate DNS server configuration\n" -msgstr "" -"\n" -"Керування налаштуваннями сервера DNS\n" - -msgid "" -"\n" -" Show configuration of a specific DNS server:\n" -" ipa dnsserver-show\n" -msgstr "" -"\n" -" Показати налаштування певного сервера DNS:\n" -" ipa dnsserver-show\n" - -msgid "" -"\n" -" Update configuration of a specific DNS server:\n" -" ipa dnsserver-mod\n" -msgstr "" -"\n" -" Оновити налаштування для вказаного сервера DNS:\n" -" ipa dnsserver-mod\n" - -msgid "DNS server" -msgstr "Сервер DNS" - -msgid "DNS servers" -msgstr "Сервери DNS" - -msgid "DNS Servers" -msgstr "Сервери DNS" - -msgid "DNS Server" -msgstr "Сервер DNS" - -msgid "DNS Server name" -msgstr "Назва сервера DNS" - -msgid "SOA mname override" -msgstr "Перевизначення mname SOA" - -msgid "SOA mname (authoritative server) override" -msgstr "Перевизначити mname SOA (довірений сервер)" - -msgid "Forwarders" -msgstr "Переспрямовувачі" - -msgid "" -"Per-server forwarders. A custom port can be specified for each forwarder " -"using a standard format \"IP_ADDRESS port PORT\"" -msgstr "" -"Окремі переспрямовувачі для серверів. Нетиповий порт можна вказати для " -"кожного переспрямовувача за допомогою стандартної конструкції «IP_АДРЕСА " -"port ПОРТ»" - -msgid "" -"Per-server conditional forwarding policy. Set to \"none\" to disable " -"forwarding to global forwarder for this zone. In that case, conditional zone " -"forwarders are disregarded." -msgstr "" -"Умовні правила переспрямування для окремого сервера. Встановіть значення " -"«none» для вимикання переспрямовувача загального рівня для цієї зони. Якщо " -"ви встановите це значення, умовні переспрямовувачі зони не братимуться до " -"уваги." - -msgid "DNS is not configured" -msgstr "DNS не налаштовано" - -msgid "Modify DNS server configuration" -msgstr "Змінити налаштування сервера DNS" +"Мало бути вказано список користувачів SELinux, записи якого відокремлено " +"символом $" #, python-format -msgid "Modified DNS server \"%(value)s\"" -msgstr "Змінено запис сервера DNS «%(value)s»" +msgid "SELinux user '%(user)s' is not valid: %(error)s" +msgstr "Користувач SELinux «%(user)s» є некоректним: %(error)s" -msgid "Search for DNS servers." -msgstr "Шукати сервери DNS." - -#, python-format -msgid "%(count)d DNS server matched" -msgid_plural "%(count)d DNS servers matched" -msgstr[0] "встановлено відповідність %(count)d сервера DNS" -msgstr[1] "встановлено відповідність %(count)d серверів DNS" -msgstr[2] "встановлено відповідність %(count)d серверів DNS" - -msgid "Display configuration of a DNS server." -msgstr "Показати налаштування сервера DNS." - -msgid "Add a new DNS server." -msgstr "Додати новий запис сервера DNS." - -#, python-format -msgid "Added new DNS server \"%(value)s\"" -msgstr "Додано новий запис сервера DNS «%(value)s»" - -msgid "Delete a DNS server" -msgstr "Вилучити запис сервера DNS" - -#, python-format -msgid "Deleted DNS server \"%(value)s\"" -msgstr "Вилучено сервер DNS «%(value)s»" +msgid "SELinux user map default user not in order list" +msgstr "" +"Типового користувача типової карти користувачів SELinux немає у порядковому " +"списку" msgid "" "\n" -"HBAC Services\n" +"Manage CA ACL rules.\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" +"This plugin is used to define rules governing which CAs and profiles\n" +"may be used to issue certificates to particular principals or groups\n" +"of principals.\n" +"\n" +"SUBJECT PRINCIPAL SCOPE:\n" +"\n" +"For a certificate request to be allowed, the principal(s) that are\n" +"the subject of a certificate request (not necessarily the principal\n" +"actually requesting the certificate) must be included in the scope\n" +"of a CA ACL that also includes the target CA and profile.\n" +"\n" +"Users can be included by name, group or the \"all users\" category.\n" +"Hosts can be included by name, hostgroup or the \"all hosts\"\n" +"category. Services can be included by service name or the \"all\n" +"services\" category. CA ACLs may be associated with a single type of\n" +"principal, or multiple types.\n" +"\n" +"CERTIFICATE AUTHORITY SCOPE:\n" +"\n" +"A CA ACL can be associated with one or more CAs by name, or by the\n" +"\"all CAs\" category. For compatibility reasons, a CA ACL with no CA\n" +"association implies an association with the 'ipa' CA (and only this\n" +"CA).\n" +"\n" +"PROFILE SCOPE:\n" +"\n" +"A CA ACL can be associated with one or more profiles by Profile ID.\n" +"The Profile ID is a string without spaces or punctuation starting\n" +"with a letter and followed by a sequence of letters, digits or\n" +"underscore (\"_\").\n" "\n" "EXAMPLES:\n" "\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" +" Create a CA ACL \"test\" that grants all users access to the\n" +" \"UserCert\" profile on all CAs:\n" +" ipa caacl-add test --usercat=all --cacat=all\n" +" ipa caacl-add-profile test --certprofiles UserCert\n" "\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +" Display the properties of a named CA ACL:\n" +" ipa caacl-show test\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" +" Create a CA ACL to let user \"alice\" use the \"DNP3\" profile on \"DNP3-CA" +"\":\n" +" ipa caacl-add alice_dnp3\n" +" ipa caacl-add-ca alice_dnp3 --cas DNP3-CA\n" +" ipa caacl-add-profile alice_dnp3 --certprofiles DNP3\n" +" ipa caacl-add-user alice_dnp3 --user=alice\n" "\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" +" Disable a CA ACL:\n" +" ipa caacl-disable test\n" "\n" +" Remove a CA ACL:\n" +" ipa caacl-del test\n" msgstr "" "\n" -"Служби HBAC\n" +"Керування правилами ACL CA.\n" "\n" -"Служби PAM, якими може керувати HBAC. Назва, використана тут, має\n" -"відповідати назві служби, з якою працює PAM.\n" +"Цим додатком можна скористатися для визначення правил керування тим,\n" +"які служби сертифікації та профілі можна використовувати для видавання\n" +"сертифікатів певним реєстраційним записам або група реєстраційних\n" +"записів.\n" +"\n" +"ОБЛАСТЬ ДІЇ РЕЄСТРАЦІЙНИХ ЗАПИСІВ ОБ’ЄКТА:\n" +"\n" +"Щоб запит щодо сертифікації було задоволено, реєстраційні записи,\n" +"які є об’єктом запиту щодо сертифікації (необов’язково ті самі,\n" +"що і реєстраційний запис, з якого надсилається запит щодо сертифікації)\n" +"має бути включено до області дії ACL служби сертифікації, що\n" +"також включає службу сертифікації та профіль призначення.\n" +"\n" +"Користувачів можна включати за іменем, групою або категорією\n" +"«усі користувачі». Вузли можна включати за назвою, групою вузлів\n" +"або категорією «усі вузли». Служби можна включати за назвою служби\n" +"або категорією «усі служби». ACL служб сертифікації може бути\n" +"пов’язано із одним типом реєстраційних записів або із декількома\n" +"типами.\n" +"\n" +"ОБЛАСТЬ ДІЇ СЛУЖБИ СЕРТИФІКАЦІЇ:\n" +"\n" +"ACL служби сертифікації може бути пов’язано із однією або\n" +"декількома службами сертифікації за назвою або за категорією\n" +"«усі CA». З міркувань сумісності ACL служби сертифікації без\n" +"прив’язки до служби сертифікації вважається таким, що пов’язано\n" +"із службою сертифікації «ipa» (і лише з цією службою сертифікації).\n" +"\n" +"ОБЛАСТЬ ДІЇ ПРОФІЛІВ:\n" +"\n" +"ACL служби сертифікації може бути пов’язано із одним або декількома\n" +"профілями за ідентифікатором профілю. Ідентифікатором профілю\n" +"вважається рядок без пробілів і символів пунктуації, що починається\n" +"із літери і є послідовністю літер, цифр та символів підкреслювання\n" +"(«_»).\n" "\n" "ПРИКЛАДИ:\n" "\n" -" Додати нову службу HBAC:\n" -" ipa hbacsvc-add tftp\n" +" Створити ACL служби сертифікації «test», який надає доступ усім\n" +" користувачам до профілю «UserCert» на усіх службах сертифікації:\n" +" ipa caacl-add test --usercat=all --cacat=all\n" +" ipa caacl-add-profile test --certprofiles UserCert\n" "\n" -" Змінити вже створену службу HBAC:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +" Вивести властивості вказаного за назвою ACL служби сертифікації:\n" +" ipa caacl-show test\n" "\n" -" Шукати служби HBAC. У нашому прикладі буде повернуто два результати\n" -" службу FTP і щойно додану службу tftp:\n" -" ipa hbacsvc-find ftp\n" +" Створити ACL служби сертифікації, який надаватиме змогу\n" +" користувачеві «alice» використовувати профіль «DNP3» на «DNP3-CA»:\n" +" ipa caacl-add alice_dnp3\n" +" ipa caacl-add-ca alice_dnp3 --cas DNP3-CA\n" +" ipa caacl-add-profile alice_dnp3 --certprofiles DNP3\n" +" ipa caacl-add-user alice_dnp3 --user=alice\n" "\n" -" Вилучення служби HBAC:\n" -" ipa hbacsvc-del tftp\n" +" Вимкнути ACL служби сертифікації:\n" +" ipa caacl-disable test\n" "\n" +" Вилучити ACL служби сертифікації:\n" +" ipa caacl-del test\n" -msgid "HBAC services" -msgstr "Служби HBAC" +msgid "CA ACL" +msgstr "CA ACL" -msgid "HBAC Services" -msgstr "Служби HBAC" +msgid "CA ACLs" +msgstr "CA ACL" -msgid "HBAC Service" -msgstr "Служба HBAC" +msgid "CA category" +msgstr "Категорія CA" + +msgid "CA category the ACL applies to" +msgstr "Категорія CA, до якої застосовується ACL" + +msgid "CAs" +msgstr "CA" #, python-format -msgid "Added HBAC service \"%(value)s\"" -msgstr "Додано службу HBAC «%(value)s»" +msgid "Added CA ACL \"%(value)s\"" +msgstr "Додано CA ACL «%(value)s»" #, python-format -msgid "Deleted HBAC service \"%(value)s\"" -msgstr "Вилучено службу HBAC «%(value)s»" +msgid "Deleted CA ACL \"%(value)s\"" +msgstr "Вилучено CA ACL «%(value)s»" + +msgid "default CA ACL can be only disabled" +msgstr "типовий ACL CA можна лише вимкнути" #, python-format -msgid "Modified HBAC service \"%(value)s\"" -msgstr "Змінено службу HBAC «%(value)s»" +msgid "Modified CA ACL \"%(value)s\"" +msgstr "Змінено CA ACL «%(value)s»" + +msgid "CA category cannot be set to 'all' while there are allowed CAs" +msgstr "" +"не можна встановлювати для категорії CA значення «all», доки є записи " +"дозволених CA" + +msgid "" +"profile category cannot be set to 'all' while there are allowed profiles" +msgstr "" +"не можна встановлювати для категорії профілів значення «all», доки є записи " +"дозволених профілів" #, 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" - -msgid "" -"\n" -"Certificate Identity Mapping\n" -msgstr "" -"\n" -"Прив’язка сертифікатів до профілів\n" - -msgid "" -"\n" -"Manage Certificate Identity Mapping configuration and rules.\n" -msgstr "" -"\n" -"Керування налаштуваннями і правилами прив’язки сертифікатів до профілів.\n" - -msgid "" -"\n" -"IPA supports the use of certificates for authentication. Certificates can\n" -"either be stored in the user entry (full certificate in the usercertificate\n" -"attribute), or simply linked to the user entry through a mapping.\n" -"This code enables the management of the rules allowing to link a\n" -"certificate to a user entry.\n" -msgstr "" -"\n" -"У IPA передбачено підтримку використання сертифікатів для розпізнавання. " -"Сертифікати\n" -"можуть зберігатися або у записі користувача (весь сертифікат у атрибуті\n" -"usercertificate), або просто прив’язуватися до запису користувача.\n" -"Цей код уможливлює керування правилами доступу до прив’язування сертифіката " -"до\n" -"запису користувача.\n" - -msgid "" -"\n" -" Display the Certificate Identity Mapping global configuration:\n" -" ipa certmapconfig-show\n" -msgstr "" -"\n" -" Вивести загальні налаштування прив’язки сертифікатів до профілів:\n" -" ipa certmapconfig-show\n" - -msgid "" -"\n" -" Modify Certificate Identity Mapping global configuration:\n" -" ipa certmapconfig-mod --promptusername=TRUE\n" -msgstr "" -"\n" -" Змінити загальні налаштування прив’язки сертифікатів до профілів:\n" -" ipa certmapconfig-mod --promptusername=TRUE\n" - -msgid "" -"\n" -" Create a new Certificate Identity Mapping Rule:\n" -" ipa certmaprule-add rule1 --desc=\"Link certificate with subject and " -"issuer\"\n" -msgstr "" -"\n" -" Створити правило прив’язування сертифікатів до профілів:\n" -" ipa certmaprule-add rule1 --desc=\"Link certificate with subject and " -"issuer\"\n" - -msgid "" -"\n" -" Modify a Certificate Identity Mapping Rule:\n" -" ipa certmaprule-mod rule1 --maprule=\"\"\n" -msgstr "" -"\n" -" Змінити правило прив’язування сертифікатів до профілів:\n" -" ipa certmaprule-mod rule1 --maprule=\"\"\n" - -msgid "" -"\n" -" Disable a Certificate Identity Mapping Rule:\n" -" ipa certmaprule-disable rule1\n" -msgstr "" -"\n" -" Вимкнути правило прив’язування сертифікатів до профілів:\n" -" ipa certmaprule-disable rule1\n" - -msgid "" -"\n" -" Enable a Certificate Identity Mapping Rule:\n" -" ipa certmaprule-enable rule1\n" -msgstr "" -"\n" -" Увімкнути правило прив’язування сертифікатів до профілів:\n" -" ipa certmaprule-enable rule1\n" - -msgid "" -"\n" -" Display information about a Certificate Identity Mapping Rule:\n" -" ipa certmaprule-show rule1\n" -msgstr "" -"\n" -" Вивести дані щодо правила прив’язування сертифікатів до профілів:\n" -" ipa certmaprule-show rule1\n" - -msgid "" -"\n" -" Find all Certificate Identity Mapping Rules with the specified domain:\n" -" ipa certmaprule-find --domain example.com\n" -msgstr "" -"\n" -" Знайти усі правила прив’язування сертифікатів до профілів із вказаним " -"доменом:\n" -" ipa certmaprule-find --domain example.com\n" - -msgid "" -"\n" -" Delete a Certificate Identity Mapping Rule:\n" -" ipa certmaprule-del rule1\n" -msgstr "" -"\n" -" Вилучити правило прив’язування сертифікатів до профілів:\n" -" ipa certmaprule-del rule1\n" - -msgid "domain" -msgstr "домен" +msgid "%(count)d CA ACL matched" +msgid_plural "%(count)d CA ACLs matched" +msgstr[0] "встановлено відповідність %(count)d CA ACL" +msgstr[1] "встановлено відповідність %(count)d CA ACL" +msgstr[2] "встановлено відповідність %(count)d CA ACL" #, python-format -msgid "The domain %s is neither IPA domain nor a trusteddomain." -msgstr "Домен %s не є ні доменом IPA, ні довіреним доменом." - -msgid "Certificate Identity Mapping configuration options" -msgstr "Параметри налаштування прив’язки сертифікатів до профілів" - -msgid "Certificate Identity Mapping Global Configuration" -msgstr "Загальні налаштування прив’язки сертифікатів до профілів" - -msgid "Prompt for the username" -msgstr "Запит щодо імені користувача" - -msgid "" -"Prompt for the username when multiple identities are mapped to a certificate" -msgstr "" -"Запитувати ім’я користувача, якщо із сертифікатом пов’язано декілька профілів" - -msgid "Modify Certificate Identity Mapping configuration." -msgstr "Змінити налаштування прив’язки сертифікатів до профілів." - -msgid "Show the current Certificate Identity Mapping configuration." -msgstr "Показати поточні налаштування прив’язки сертифікатів до профілів." - -msgid "Certificate Identity Mapping Rules" -msgstr "Правила прив’язування сертифікатів до профілів" - -msgid "Certificate Identity Mapping Rule" -msgstr "Правило прив’язування сертифікатів до профілів" - -msgid "Certificate Identity Mapping Rule name" -msgstr "Назва правила прив’язування сертифікатів до профілів" - -msgid "Certificate Identity Mapping Rule description" -msgstr "Опис правила прив’язування сертифікатів до профілів" - -msgid "Mapping rule" -msgstr "Правило прив’язування" - -msgid "Rule used to map the certificate with a user entry" -msgstr "" -"Правило, яке використовується для прив’язування сертифіката до запису " -"користувача" - -msgid "Matching rule" -msgstr "Правило відповідності" - -msgid "Rule used to check if a certificate can be used for authentication" -msgstr "" -"Правило, яке використовується для визначення того, чи придатний сертифікат " -"для розпізнавання" - -msgid "Domain where the user entry will be searched" -msgstr "Домен, у якому слід шукати запис користувача" - -msgid "Priority of the rule (higher number means lower priority" -msgstr "Пріоритет правила (більше число — нижчий пріоритет)" - -msgid "Create a new Certificate Identity Mapping Rule." -msgstr "Створити правило прив’язування сертифіката до профілів." +msgid "Enabled CA ACL \"%(value)s\"" +msgstr "Увімкнено CA ACL «%(value)s»" #, python-format -msgid "Added Certificate Identity Mapping Rule \"%(value)s\"" -msgstr "Додано правило прив’язування сертифікатів до профілів «%(value)s»" - -msgid "Modify a Certificate Identity Mapping Rule." -msgstr "Змінити правило прив’язування сертифікатів до профілів." +msgid "Disabled CA ACL \"%(value)s\"" +msgstr "Вимкнено CA ACL «%(value)s»" #, python-format -msgid "Modified Certificate Identity Mapping Rule \"%(value)s\"" -msgstr "Змінено правило прив’язування сертифікатів до профілів «%(value)s»" - -msgid "Search for Certificate Identity Mapping Rules." -msgstr "Шукати правила прив’язування сертифікатів до профілів." +msgid "%i user or group added." +msgstr "Додано %i користувача або групу." #, python-format -msgid "%(count)d Certificate Identity Mapping Rule matched" -msgid_plural "%(count)d Certificate Identity Mapping Rules matched" -msgstr[0] "" -"Встановлено відповідність %(count)d правила прив’язування сертифікатів до " -"профілів" -msgstr[1] "" -"Встановлено відповідність %(count)d правил прив’язування сертифікатів до " -"профілів" -msgstr[2] "" -"Встановлено відповідність %(count)d правил прив’язування сертифікатів до " -"профілів" - -msgid "Display information about a Certificate Identity Mapping Rule." -msgstr "Вивести дані щодо правила прив’язування сертифікатів до профілів." - -msgid "Delete a Certificate Identity Mapping Rule." -msgstr "Вилучити правило прив’язування сертифікатів до профілів." +msgid "%i users or groups added." +msgstr "Додано %i користувачів або груп." #, python-format -msgid "Deleted Certificate Identity Mapping Rule \"%(value)s\"" -msgstr "Вилучено правило прив’язування сертифікатів до профілів «%(value)s»" - -msgid "Enable a Certificate Identity Mapping Rule." -msgstr "Увімкнути правило прив’язування сертифікатів до профілів." +msgid "%i user or group removed." +msgstr "Вилучено %i користувача або групу." #, python-format -msgid "Enabled Certificate Identity Mapping Rule \"%(value)s\"" -msgstr "Увімкнено правило прив’язування сертифікатів до профілів «%(value)s»" - -msgid "Disable a Certificate Identity Mapping Rule." -msgstr "Вимкнути правило прив’язування сертифікатів до профілів." +msgid "%i users or groups removed." +msgstr "Вилучено %i користувачів або груп." #, python-format -msgid "Disabled Certificate Identity Mapping Rule \"%(value)s\"" -msgstr "Вимкнено правило прив’язування сертифікатів до профілів «%(value)s»" +msgid "%i host or hostgroup added." +msgstr "Додано %i вузол або групу вузлів." -msgid "Failed to connect to sssd over SystemBus. See details in the error_log" -msgstr "" -"Не вдалося встановити з’єднання із sssd за допомогою SystemBus. Докладніший " -"опис — у файлі error_log" +#, python-format +msgid "%i hosts or hostgroups added." +msgstr "Додано %i вузлів або груп вузлів." -msgid "Failed to find users over SystemBus. See details in the error_log" -msgstr "" -"Не вдалося знайти користувачів за допомогою SystemBus. Докладніший опис — у " -"файлі error_log" +#, python-format +msgid "%i host or hostgroup removed." +msgstr "Вилучено %i вузол або групу вузлів." -msgid "User logins" -msgstr "Користувачі" +#, python-format +msgid "%i hosts or hostgroups removed." +msgstr "Вилучено %i вузлів або груп вузлів." + +#, python-format +msgid "%i service added." +msgstr "Додано %i службу." + +#, python-format +msgid "%i services added." +msgstr "Додано %i служб." + +#, python-format +msgid "%i service removed." +msgstr "Вилучено %i службу." + +#, python-format +msgid "%i services removed." +msgstr "Вилучено %i служб." + +#, python-format +msgid "%i profile added." +msgstr "Додано %i профіль." + +#, python-format +msgid "%i profiles added." +msgstr "Додано %i профілів." + +msgid "profiles cannot be added when profile category='all'" +msgstr "профілі не можна додавати, якщо категорія профілів «all»" + +#, python-format +msgid "%i profile removed." +msgstr "Вилучено %i профіль." + +#, python-format +msgid "%i profiles removed." +msgstr "Вилучено %i профілів." + +msgid "Add CAs to a CA ACL." +msgstr "Додати CA до ACL CA." + +#, python-format +msgid "%i CA added." +msgstr "Додано %i CA." + +#, python-format +msgid "%i CAs added." +msgstr "Додано %i CA." + +msgid "CAs cannot be added when CA category='all'" +msgstr "Не можна додавати CA, якщо категорія CA='all'" + +msgid "Remove CAs from a CA ACL." +msgstr "Вилучити CA з ACL CA." + +#, python-format +msgid "%i CA removed." +msgstr "Вилучено %i." + +#, python-format +msgid "%i CAs removed." +msgstr "Вилучено %i CA." + +msgid "pyhbac is not installed." +msgstr "pyhbac не встановлено." msgid "" "\n" -" Search for users matching the provided certificate.\n" +"Simulate use of Host-based access controls\n" "\n" -" This command relies on SSSD to retrieve the list of matching users and\n" -" may return cached data. For more information on purging SSSD cache,\n" -" please refer to sss_cache documentation.\n" -" " +"HBAC rules control who can access what services on what hosts.\n" +"You can use HBAC to control which users or groups can access a service,\n" +"or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +" [--sizelimit= ]\n" +"\n" +" --user, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to " +"simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to " +"simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/" +"not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules " +"_and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +" By default there is a IPA-wide limit to number of entries fetched, you can " +"change it\n" +" with --sizelimit option.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +" Matched rules: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" +" --rules=myrule --rules=my-second-rule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified " +"rules:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" +" --rules=myrule --rules=my-second-rule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +" Matched rules: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" Not matched rules: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified " +"rules:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" +" --rules=myrule --rules=my-second-rule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" +" --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +" Not matched rules: new-rule\n" +" Matched rules: allow_all\n" +"\n" +"\n" +"HBACTEST AND TRUSTED DOMAINS\n" +"\n" +"When an external trusted domain is configured in IPA, HBAC rules are also " +"applied\n" +"on users accessing IPA resources from the trusted domain. Trusted domain " +"users and\n" +"groups (and their SIDs) can be then assigned to external groups which can " +"be\n" +"members of POSIX groups in IPA which can be used in HBAC rules and thus " +"allowing\n" +"access to resources protected by the HBAC system.\n" +"\n" +"hbactest plugin is capable of testing access for both local IPA users and " +"users\n" +"from the trusted domains, either by a fully qualified user name or by user " +"SID.\n" +"Such user names need to have a trusted domain specified as a short name\n" +"(DOMAIN\\Administrator) or with a user principal name (UPN), " +"Administrator@ad.test.\n" +"\n" +"Please note that hbactest executed with a trusted domain user as --user " +"parameter\n" +"can be only run by members of \"trust admins\" group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Test if a user from a trusted domain specified by its shortname " +"matches any\n" +" rule:\n" +"\n" +" $ ipa hbactest --user 'DOMAIN\\Administrator' --host `hostname` --" +"service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 2. Test if a user from a trusted domain specified by its domain name " +"matches\n" +" any rule:\n" +"\n" +" $ ipa hbactest --user 'Administrator@domain.com' --host `hostname` --" +"service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 3. Test if a user from a trusted domain specified by its SID matches any " +"rule:\n" +"\n" +" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n" +" --host `hostname` --service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 4. Test if other user from a trusted domain specified by its SID matches " +"any rule:\n" +"\n" +" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-1203 \\\n" +" --host `hostname` --service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Not matched rules: can_login\n" +"\n" +" 5. Test if other user from a trusted domain specified by its shortname " +"matches\n" +" any rule:\n" +"\n" +" $ ipa hbactest --user 'DOMAIN\\Otheruser' --host `hostname` --service " +"sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Not matched rules: can_login\n" msgstr "" "\n" -" Шукати користувачів, яких пов’язано із наданим сертифікатом.\n" +"Імітація використання керування доступом на основі вузлів (HBAC)\n" "\n" -" Для отримання списку відповідних користувачів ця команда покладається\n" -" на дані SSSD, отже, вона може повертати кешовані дані. Докладніше про\n" -" очищення кешу SSSD можна дізнатися із документації до sss_cache.\n" -" " +"Правила HBAC керують тим, хто може отримувати доступ до певних служб на\n" +"певних вузлах.\n" +"Ви можете скористатися HBAC для керування тим, які користувачі або групи\n" +"на початковому вузлі можуть отримувати доступ до служби або групи служб\n" +"на вузлі призначення\n" +"\n" +"Оскільки застосування правил HBAC передбачає використання робочого\n" +"середовища, це додаток призначено для імітації обробки правил HBAC без\n" +"доступу до реального середовища\n" +"\n" +" Перевірити відповідність користувача з початкового вузла до служби на " +"іменованому\n" +" вузлі правилам уможливлення доступу.\n" +"\n" +" ipa hbactest --user= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +" [--sizelimit= ]\n" +"\n" +" --user, --host і --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 --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Надано доступ: Так\n" +" --------------------\n" +"\n" +" 3. Перевірити явно вказані правила HBAC:\n" +" $ ipa hbactest --user=a1a --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 --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 --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Надано доступ: Ні\n" +" ---------------------\n" +" невідповідне: new-rule\n" +"\n" +" 6. Перевірка всіх вимкнених правил HBAC у базі даних IPA + явно вказані " +"правила:\n" +" $ ipa hbactest --user=a1a --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 --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" +"\n" +"HBACTEST І ДОВІРЕНІ ДОМЕНИ\n" +"\n" +"Якщо у IPA налаштовано зовнішній довірений домен, правила HBAC також\n" +"застосовуються до користувачів, що отримують доступ до ресурсів IPA з\n" +"з довіреного домену. Після цього користувачі і групи довіреного домену\n" +"(на їхні SID) може бути прив’язано до зовнішніх груп, які можуть бути\n" +"учасниками груп POSIX у IPA. Такі прив’язки може бути використано у\n" +"правилах HBAC, отже уможливлення доступу до ресурсів, захищених системою\n" +"HBAC.\n" +"\n" +"Додаток hbactest здатен тестувати доступ як для локальних користувачів\n" +"IPA, так і користувачів з довірених доменів, як за повним іменем\n" +"користувача, так і за SID користувачів. У таких іменах користувачів\n" +"має бути вказано скорочено довірений домен (ДОМЕН\\Administrator) або\n" +"назву реєстраційного запису користувача (UPN), Administrator@ad.test.\n" +"\n" +"Будь ласка, зауважте, що виконувати hbactest з аргументом користувача\n" +"довіреного домену у параметрі --user можуть виконувати лише учасники\n" +"групи «trust admins».\n" +"\n" +"ПРИКЛАД:\n" +"\n" +" 1. Перевірити, чи відповідає користувач з довіреного домену,\n" +" вказаний за коротким іменем, якомусь правилу:\n" +"\n" +" $ ipa hbactest --user 'DOMAIN\\Administrator' --host `hostname` --" +"service sshd\n" +" --------------------\n" +" Надано доступ: Так\n" +" --------------------\n" +" Відповідні правила: allow_all\n" +" Відповідні правила: can_login\n" +"\n" +" 2. Перевірити, чи відповідає користувач з довіреного домену,\n" +" вказаний за назвою його домену, якомусь правилу:\n" +"\n" +" $ ipa hbactest --user 'Administrator@domain.com' --host `hostname` --" +"service sshd\n" +" --------------------\n" +" Надано доступ: Так\n" +" --------------------\n" +" Відповідні правила: allow_all\n" +" Невідповідні правила: can_login\n" +"\n" +" 3. Перевірити, чи відповідає користувач з довіреного домену\n" +" вказаний за SID, якомусь правилу:\n" +"\n" +" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n" +" --host `hostname` --service sshd\n" +" --------------------\n" +" Надано доступ: Так\n" +" --------------------\n" +" Відповідні правила: allow_all\n" +" Відповідні правила: can_login\n" +"\n" +" 4. Перевірити, чи відповідає інший користувач з довіреного домену,\n" +" вказаний за SID, якомусь правилу:\n" +"\n" +" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n" +" --host `hostname` --service sshd\n" +" --------------------\n" +" Надано доступ: Так\n" +" --------------------\n" +" Відповідні правила: allow_all\n" +" Відповідні правила: can_login\n" +"\n" +" 5. Перевірити, чи відповідає інший користувач з довіреного домену,\n" +" вказаний за коротким ім’ям, якомусь правилу:\n" +"\n" +" $ ipa hbactest --user 'DOMAIN\\Otheruser' --host `hostname` --service " +"sshd\n" +" --------------------\n" +" Надано доступ: Так\n" +" --------------------\n" +" Відповідні правила: allow_all\n" +" Невідповідні правила: can_login\n" + +msgid "Unresolved rules in --rules" +msgstr "Непридатні до обробки правила у --rules" + +msgid "" +"Cannot perform external member validation without Samba 4 support installed. " +"Make sure you have installed server-trust-ad sub-package of IPA on the server" +msgstr "" +"Виконати дію з перевірки зовнішніх учасників без встановленої підтримки " +"Samba 4 неможливо. Переконайтеся, що вами встановлено на сервері підпакунок " +"IPA server-trust-ad." + +msgid "" +"Cannot search in trusted domains without own domain configured. Make sure " +"you have run ipa-adtrust-install on the IPA server first" +msgstr "" +"Без налаштовування власного домену не можна виконувати пошук у довірених " +"доменах. Спочатку запустіть ipa-adtrust-install на сервері IPA." #, python-format -msgid "%(count)s user matched" -msgid_plural "%(count)s users matched" -msgstr[0] "Встановлено відповідність %(count)s користувача" -msgstr[1] "Встановлено відповідність %(count)s користувачів" -msgstr[2] "Встановлено відповідність %(count)s користувачів" +msgid "Access granted: %s" +msgstr "Надано доступ: %s" msgid "" "\n" -"Manage Certificate Authorities\n" +"Baseuser\n" +"\n" +"This contains common definitions for user/stageuser\n" msgstr "" "\n" -"Керування службами сертифікації\n" +"Основний користувач\n" +"\n" +"Містить загальні визначення щодо користувача або користувача етапу.\n" -msgid "" -"\n" -"Subordinate Certificate Authorities (Sub-CAs) can be added for scoped " -"issuance\n" -"of X.509 certificates.\n" -msgstr "" -"\n" -"Підлеглі служби сертифікації (Sub-CA) можна додавати для обмежених під час " -"видання областю\n" -"сертифікатів X.509.\n" +msgid "must be TRUE or FALSE" +msgstr "має дорівнювати TRUE або FALSE" -msgid "" -"\n" -"CAs are enabled on creation, but their use is subject to CA ACLs unless the\n" -"operator has permission to bypass CA ACLs.\n" -msgstr "" -"\n" -"Служби сертифікації увімкнено при створенні, але їхнє використання " -"регулюється ACL служб сертифікації,\n" -"якщо у оператора немає дозволу обходити ACL служб сертифікації (CA).\n" - -msgid "" -"\n" -"All CAs except the 'IPA' CA can be disabled or re-enabled. Disabling a CA\n" -"prevents it from issuing certificates but does not affect the validity of " -"its\n" -"certificate.\n" -msgstr "" -"\n" -"Усі слжуби сертифікації, окрім служби сертифікації «IPA», можна вимикати і " -"повторно вмикати. Вимикання\n" -"служби сертифікації призводить до заборони для неї видавати сертифікати, але " -"не впливає на\n" -"чинність її сертифіката.\n" - -msgid "" -"\n" -"CAs (all except the 'IPA' CA) can be deleted. Deleting a CA causes its " -"signing\n" -"certificate to be revoked and its private key deleted.\n" -msgstr "" -"\n" -"Усі записи служб сертифікації (окрім служби «IPA») можна вилучати. Вилучення " -"запису служби сертифікації\n" -"призводить до відкликання її підписувального сертифіката і вилучення " -"закритого ключа.\n" - -msgid "" -"\n" -" Create new CA, subordinate to the IPA CA.\n" -"\n" -" ipa ca-add puppet --desc \"Puppet\" \\\n" -" --subject \"CN=Puppet CA,O=EXAMPLE.COM\"\n" -msgstr "" -"\n" -" Створити новий запис служби сертифікації, підлеглий щодо служби " -"сертифікації IPA.\n" -"\n" -" ipa ca-add puppet --desc \"Puppet\" \\\n" -" --subject \"CN=Puppet CA,O=EXAMPLE.COM\"\n" - -msgid "" -"\n" -" Disable a CA.\n" -"\n" -" ipa ca-disable puppet\n" -msgstr "" -"\n" -" Вимкнути службу сертифікації.\n" -"\n" -" ipa ca-disable puppet\n" - -msgid "" -"\n" -" Re-enable a CA.\n" -"\n" -" ipa ca-enable puppet\n" -msgstr "" -"\n" -" Повторно увімкнути службу сертифікації.\n" -"\n" -" ipa ca-enable puppet\n" - -msgid "" -"\n" -" Delete a CA.\n" -"\n" -" ipa ca-del puppet\n" -msgstr "" -"\n" -" Вилучити запис служби сертифікації.\n" -"\n" -" ipa ca-del puppet\n" - -msgid "Certificate Authority" -msgstr "Центр сертифікації" - -msgid "Certificate Authorities" -msgstr "Центри сертифікації" - -msgid "Name" -msgstr "Назва" - -msgid "Name for referencing the CA" -msgstr "Назва до посилання на CA" - -msgid "Description of the purpose of the CA" -msgstr "Опис призначення CA" - -msgid "Authority ID" -msgstr "Ід. центру" - -msgid "Dogtag Authority ID" -msgstr "Ід. Dogtag центру" - -msgid "Subject DN" -msgstr "DN призначення" - -msgid "Subject Distinguished Name" -msgstr "Унікальна назва призначення" - -msgid "Issuer DN" -msgstr "DN видавця" - -msgid "Issuer Distinguished Name" -msgstr "Унікальна назва видавця" - -msgid "Base-64 encoded certificate." -msgstr "Сертифікат у кодуванні Base-64." - -msgid "Certificate chain" -msgstr "Ланцюжок сертифікації" - -msgid "X.509 certificate chain" -msgstr "Ланцюжок сертифікації X.509" - -msgid "Search for CAs." -msgstr "Шукати CA." +msgid "User password expiration" +msgstr "Вичерпання строку дії пароля користувача" #, python-format -msgid "%(count)d CA matched" -msgid_plural "%(count)d CAs matched" -msgstr[0] "встановлено відповідність %(count)d CA" -msgstr[1] "встановлено відповідність %(count)d CA" -msgstr[2] "встановлено відповідність %(count)d CA" - -msgid "Include certificate chain in output" -msgstr "Включити ланцюжок сертифікації до виведення" - -msgid "Display the properties of a CA." -msgstr "Показати властивості CA." - -msgid "Create a CA." -msgstr "Створити запис CA." +msgid "invalid e-mail format: %(email)s" +msgstr "некоректний формат адреси електронної пошти: %(email)s" #, python-format -msgid "Created CA \"%(value)s\"" -msgstr "Створено запис CA «%(value)s»" +msgid "manager %(manager)s not found" +msgstr "керування %(manager)s не знайдено" + +msgid "Issuer of the certificate" +msgstr "Видавець сертифіката" + +msgid "Subject of the certificate" +msgstr "Призначення сертифіката" + +msgid "cannot have an empty subject" +msgstr "поле призначення не може бути порожнім" + +msgid "cannot specify both subject/issuer and certificate" +msgstr "не можна вказувати одночасно subject/issuer і certificate" + +msgid "cannot specify both subject/issuer and ipacertmapdata" +msgstr "не можна вказувати одночасно subject/issuer і ipacertmapdata" + +msgid "Add one or more certificate mappings to the user entry." +msgstr "Додати одну або декілька прив’язок сертифікатів до запису користувача." #, python-format -msgid "Insufficient 'add' privilege for entry '%s'." -msgstr "Недостатні привілеї «add» для запису «%s»." +msgid "Added certificate mappings to user \"%(value)s\"" +msgstr "Додано прив’язки сертифікатів до запису користувача «%(value)s»" + +msgid "Remove one or more certificate mappings from the user entry." +msgstr "" +"Вилучити одну або декілька прив’язок сертифікатів із запису користувача." #, python-format -msgid "Subject DN is already used by CA '%s'" -msgstr "DN призначення вже використано CA «%s»" - -msgid "Delete a CA." -msgstr "Вилучити запис CA." - -#, python-format -msgid "Deleted CA \"%(value)s\"" -msgstr "Вилучено запис CA «%(value)s»" - -msgid "Insufficient privilege to delete a CA." -msgstr "Недостатні права доступу для вилучення запису CA." - -msgid "IPA CA cannot be deleted" -msgstr "CA IPA не може бути вилучено" - -msgid "Modify CA configuration." -msgstr "Змінити налаштування CA." - -#, python-format -msgid "Modified CA \"%(value)s\"" -msgstr "Змінено CA «%(value)s»" - -msgid "Insufficient privilege to modify a CA." -msgstr "Недостатні права доступу для внесення змін до запису CA." - -msgid "Disable a CA." -msgstr "Вимкнути службу сертифікації." - -#, python-format -msgid "Disabled CA \"%(value)s\"" -msgstr "Вимкнено службу сертифікації «%(value)s»" - -msgid "IPA CA cannot be disabled" -msgstr "Службу сертифікації IPA не можна вимикати" - -msgid "Enable a CA." -msgstr "Увімкнути службу сертифікації" - -#, python-format -msgid "Enabled CA \"%(value)s\"" -msgstr "Увімкнено службу сертифікації «%(value)s»" +msgid "Removed certificate mappings from user \"%(value)s\"" +msgstr "Вилучено прив’язки сертифікатів до запису користувача «%(value)s»" msgid "" "\n" @@ -22791,6 +24472,866 @@ msgstr "" msgid "Default group for new users not found" msgstr "Типової групи для нових користувачів не знайдено" +msgid "One time password commands" +msgstr "Команди для одноразового пароля" + +msgid "HBAC rule and local members cannot both be set" +msgstr "Не можна одночасно вказувати правило HBAC і локальних учасників" + +msgid "Invalid SELinux user name, only a-Z and _ are allowed" +msgstr "" +"Некоректне ім’я користувача SELinux, у імені можна використовувати лише " +"символи a-Z і _" + +msgid "Invalid MLS value, must match s[0-15](-s[0-15])" +msgstr "" +"Некоректне значення MLS. Значення має відповідати шаблону s[0-15](-s[0-15])" + +msgid "" +"Invalid MCS value, must match c[0-1023].c[0-1023] and/or c[0-1023]-c[0-c0123]" +msgstr "" +"Некоректне значення MCS. Значення має відповідати шаблону c[0-1023]." +"c[0-1023] і/або шаблону c[0-1023]-c[0-c0123]" + +msgid "SELinux user map list not found in configuration" +msgstr "Списку карт користувачів SELinux у налаштуваннях не виявлено" + +#, python-format +msgid "SELinux user %(user)s not found in ordering list (in config)" +msgstr "" +"Запису користувача SELinux %(user)s не виявлено у порядковому списку (у " +"налаштуваннях)" + +msgid "SELinux User Map rule" +msgstr "Правило карти користувачів SELinux" + +msgid "SELinux User Map rules" +msgstr "Правила карти користувачів SELinux" + +msgid "SELinux User Maps" +msgstr "Карти користувачів SELinux" + +msgid "SELinux User Map" +msgstr "Карта користувачів SELinux" + +#, python-format +msgid "HBAC rule %(rule)s not found" +msgstr "Не знайдено правила HBAC %(rule)s" + +#, python-format +msgid "Added SELinux User Map \"%(value)s\"" +msgstr "Додано карту користувачів SELinux «%(value)s»" + +#, python-format +msgid "Deleted SELinux User Map \"%(value)s\"" +msgstr "Вилучено карту користувачів SELinux «%(value)s»" + +#, python-format +msgid "Modified SELinux User Map \"%(value)s\"" +msgstr "Змінено карту користувачів SELinux «%(value)s»" + +#, python-format +msgid "%(count)d SELinux User Map matched" +msgid_plural "%(count)d SELinux User Maps matched" +msgstr[0] "встановлено відповідність %(count)d карти користувачів SELinux" +msgstr[1] "встановлено відповідність %(count)d карт користувачів SELinux" +msgstr[2] "встановлено відповідність %(count)d карт користувачів SELinux" + +#, python-format +msgid "Enabled SELinux User Map \"%(value)s\"" +msgstr "Увімкнено карту користувачів SELinux «%(value)s»" + +#, python-format +msgid "Disabled SELinux User Map \"%(value)s\"" +msgstr "Вимкнено карту користувачів SELinux «%(value)s»" + +msgid "" +"\n" +"API Schema\n" +msgstr "" +"\n" +"Схема API\n" + +msgid "" +"\n" +"Provides API introspection capabilities.\n" +msgstr "" +"\n" +"Надає можливості інтроспекції програмного інтерфейсу.\n" + +msgid "" +"\n" +" Show user-find details:\n" +" ipa command-show user-find\n" +msgstr "" +"\n" +" Показати подробиці щодо user-find:\n" +" ipa command-show user-find\n" + +msgid "" +"\n" +" Find user-find parameters:\n" +" ipa param-find user-find\n" +msgstr "" +"\n" +" Знайти параметри user-find:\n" +" ipa param-find user-find\n" + +msgid "Documentation" +msgstr "Документація" + +msgid "Exclude from" +msgstr "Виключити з" + +msgid "Include in" +msgstr "Включити до" + +msgid "Help topic" +msgstr "Тема довідки" + +msgid "Parameters" +msgstr "Параметри" + +msgid "Method of" +msgstr "Метод" + +msgid "Method name" +msgstr "Назва методу" + +msgid "Display information about a command." +msgstr "Показати інформацію щодо команди." + +msgid "Search for commands." +msgstr "Шукати команди." + +msgid "Display information about a class." +msgstr "Показати дані щодо класу." + +msgid "Search for classes." +msgstr "Шукати класи." + +msgid "Display information about a help topic." +msgstr "Показати дані щодо теми довідки." + +msgid "Search for help topics." +msgstr "Шукати у темах довідки." + +msgid "Required" +msgstr "Обов’язкове" + +msgid "Multi-value" +msgstr "Багато значень" + +msgid "Always ask" +msgstr "Завжди питати" + +msgid "CLI metavar" +msgstr "Метазмінна CLI" + +msgid "CLI name" +msgstr "Назва CLI" + +msgid "Confirm (password)" +msgstr "Підтвердження (пароль)" + +msgid "Default" +msgstr "Типовий" + +msgid "Default from" +msgstr "Типовий з" + +msgid "Label" +msgstr "Мітка" + +msgid "Convert on server" +msgstr "Перетворити на сервері" + +msgid "Option group" +msgstr "Група варіантів" + +msgid "Sensitive" +msgstr "З врахуванням" + +msgid "Positional argument" +msgstr "Позиційний аргумент" + +msgid "Display information about a command parameter." +msgstr "Показати інформацію щодо параметра команди." + +msgid "Search command parameters." +msgstr "Шукати параметри команди." + +msgid "Display information about a command output." +msgstr "Показати інформацію щодо даних, які виводить команда." + +msgid "Search for command outputs." +msgstr "Шукати за даними, які виводить команда." + +msgid "Fingerprint of schema cached by client" +msgstr "Відбиток схеми, кешований клієнтом" + +msgid "Host-based access control commands" +msgstr "Команди керування доступом на основі вузлів" + +msgid "" +"\n" +"Groups of Sudo Commands\n" +"\n" +"Manage groups of Sudo Commands.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" +"\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less --sudocmds=/usr/bin/" +"vim admincmds\n" +"\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa sudocmdgroup-show admincmds\n" +msgstr "" +"\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 --sudocmds=/usr/bin/" +"vim admincmds\n" +"\n" +" Керування участю групи команд sudo, команди:\n" +" ipa sudocmdgroup-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Показ групи команд sudo:\n" +" ipa sudocmdgroup-show admincmds\n" + +msgid "sudo command group" +msgstr "група команд sudo" + +msgid "sudo command groups" +msgstr "групи команд sudo" + +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" +msgstr "Додано групу команд sudo «%(value)s»" + +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" +msgstr "Вилучено групу команд sudo «%(value)s»" + +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" +msgstr "Змінено групу команд sudo «%(value)s»" + +#, 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" + +#, python-format +msgid "Added user \"%(value)s\"" +msgstr "Додано користувача «%(value)s»" + +msgid "Default group for new users is not POSIX" +msgstr "Типовою групою для нових користувачів не є група POSIX" + +#, python-format +msgid "Deleted user \"%(value)s\"" +msgstr "Вилучено користувача «%(value)s»" + +#, python-format +msgid "%s: user is already preserved" +msgstr "%s: запис користувача вже захищено" + +#, python-format +msgid "Modified user \"%(value)s\"" +msgstr "Змінено користувача «%(value)s»" + +#, python-format +msgid "Undeleted user account \"%(value)s\"" +msgstr "Відновлено обліковий запис користувача «%(value)s»" + +#, python-format +msgid "user \"%s\" is already active" +msgstr "користувач «%s» вже є активним" + +#, python-format +msgid "Staged user account \"%(value)s\"" +msgstr "Обліковий запис користувача етапу «%(value)s»" + +#, python-format +msgid "Disabled user account \"%(value)s\"" +msgstr "Вимкнено обліковий запис користувача «%(value)s»" + +#, python-format +msgid "Enabled user account \"%(value)s\"" +msgstr "Увімкнено обліковий запис користувача «%(value)s»" + +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" +" розблоковано адміністратором." + +#, python-format +msgid "Unlocked account \"%(value)s\"" +msgstr "Розблоковано обліковий запис «%(value)s»" + +msgid "Failed logins" +msgstr "Кількість невдалих спроб увійти" + +msgid "Last successful authentication" +msgstr "Останнє успішне розпізнавання" + +msgid "Last failed authentication" +msgstr "Останнє невдале розпізнавання" + +msgid "Time now" +msgstr "Поточний час" + +msgid "" +"\n" +" Lockout status of a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked " +"by\n" +" an administrator.\n" +"\n" +" This connects to each IPA master and displays the lockout status on\n" +" each one.\n" +"\n" +" To determine whether an account is locked on a given server you need\n" +" to compare the number of failed logins and the time of the last " +"failure.\n" +" For an account to be locked it must exceed the maxfail failures within\n" +" the failinterval duration as specified in the password policy " +"associated\n" +" with the user.\n" +"\n" +" The failed login counter is modified only when a user attempts a log in\n" +" so it is possible that an account may appear locked but the last failed\n" +" login attempt is older than the lockouttime of the password policy. " +"This\n" +" means that the user may attempt a login again. " +msgstr "" +"\n" +" Стан блокування облікового запису користувача\n" +"\n" +" Обліковий запис може бути заблоковано, якщо введено неправильний пароль\n" +" забагато разів протягом певного проміжку часу, який визначається " +"правилами\n" +" роботи з паролями. Блокування облікового запису є тимчасовим станом, " +"його\n" +" може бути розблоковано адміністратором.\n" +"\n" +" Ця програма з’єднується з кожним основним вузлом IPA і показує стан\n" +" блокування на кожному з них.\n" +"\n" +" Щоб визначити, чи слід блокувати обліковий запис на певному сервері, " +"слід\n" +" виконати порівняння кількості помилкових спроб входу та час останньої\n" +" невдалої спроби з еталонними значеннями. Обліковий запис буде " +"заблоковано,\n" +" якщо буде перевищено кількість maxfail помилкових спроб протягом " +"проміжку\n" +" часу failinterval. Відповідні значення задаються правилами обробки " +"паролів,\n" +" пов’язаними з обліковим записом користувача.\n" +"\n" +" Зміни до лічильника помилкових спроб входу вносяться, лише коли " +"користувач\n" +" виконує спробу увійти, тому може статися так, що обліковий запис " +"заблоковано,\n" +" хоча час, що минув з останньої помилкової спроби, перевищує час " +"блокування\n" +" (lockouttime), заданий правилам обробки паролів. Це означає, що " +"користувач\n" +" може увійти до системи знову. " + +#, python-format +msgid "%(host)s failed: %(error)s" +msgstr "Помилка %(host)s: %(error)s" + +#, python-format +msgid "%(host)s failed" +msgstr "Помилка %(host)s" + +#, python-format +msgid "Account disabled: %(disabled)s" +msgstr "Обліковий запис вимкнено: %(disabled)s" + +#, python-format +msgid "Added certificates to user \"%(value)s\"" +msgstr "Додано сертифікати до запису користувача «%(value)s»" + +#, python-format +msgid "Removed certificates from user \"%(value)s\"" +msgstr "Вилучено сертифікати із запису користувача «%(value)s»" + +msgid "Add new principal alias to the user entry" +msgstr "Додати новий псевдонім реєстраційного запису до запису користувача" + +#, python-format +msgid "Added new aliases to user \"%(value)s\"" +msgstr "Додано нові псевдоніми до запису користувача «%(value)s»" + +msgid "Remove principal alias from the user entry" +msgstr "Вилучити псевдонім реєстраційного запису із запису користувача" + +#, python-format +msgid "Removed aliases from user \"%(value)s\"" +msgstr "Вилучити псевдоніми із запису користувача «%(value)s»" + +msgid "" +"\n" +"Topology\n" +"\n" +"Management of a replication topology at domain level 1.\n" +msgstr "" +"\n" +"Топологія\n" +"\n" +"Керування топологією реплікації на домені рівня 1.\n" + +msgid "" +"\n" +"IPA server's data is stored in LDAP server in two suffixes:\n" +"* domain suffix, e.g., 'dc=example,dc=com', contains all domain related " +"data\n" +"* ca suffix, 'o=ipaca', is present only on server with CA installed. It\n" +" contains data for Certificate Server component\n" +msgstr "" +"\n" +"Дані сервера IPA зберігаються на сервері LDAP у двох суфіксах:\n" +"* суфіксі домену, наприклад «dc=example,dc=com», тут містяться усі пов’язані " +"із доменом дані\n" +"* суфіксі ca, «o=ipaca», наявні лише на серверах із встановленим CA. Тут\n" +" містяться дані для компонента сервера сертифікатів.\n" + +msgid "" +"\n" +"Data stored on IPA servers is replicated to other IPA servers. The way it " +"is\n" +"replicated is defined by replication agreements. Replication agreements " +"needs\n" +"to be set for both suffixes separately. On domain level 0 they are managed\n" +"using ipa-replica-manage and ipa-csreplica-manage tools. With domain level " +"1\n" +"they are managed centrally using `ipa topology*` commands.\n" +msgstr "" +"\n" +"Дані, що зберігаються на серверах IPA, відтворюються на інших серверах IPA. " +"Спосіб\n" +"відтворення (реплікації) визначається угодами. Угоди реплікації потрібно\n" +"встановлювати для обох суфіксів окремо. На рівні домену 0 угодами керують\n" +"програми ipa-replica-manage та ipa-csreplica-manage. На рівні доменів 1\n" +"керування виконується централізовано за допомогою команд «ipa topology*».\n" + +msgid "" +"\n" +"Agreements are represented by topology segments. By default topology " +"segment\n" +"represents 2 replication agreements - one for each direction, e.g., A to B " +"and\n" +"B to A. Creation of unidirectional segments is not allowed.\n" +msgstr "" +"\n" +"Угоди представляються сегментами топології. Типово, сегмент топології\n" +"представляється 2 угодами реплікації — по одній для кожного напрямку, " +"наприклад\n" +"від A до B і від B до A. Створення односпрямованих сегментів заборонене.\n" + +msgid "" +"\n" +"To verify that no server is disconnected in the topology of the given " +"suffix,\n" +"use:\n" +" ipa topologysuffix-verify $suffix\n" +msgstr "" +"\n" +"Щоб перевірити, що жоден сервер не від’єднано у топології вказаного " +"суфікса,\n" +"скористайтеся такою командою:\n" +" ipa topologysuffix-verify $suffix\n" + +msgid "" +"\n" +"\n" +"Examples:\n" +" Find all IPA servers:\n" +" ipa server-find\n" +msgstr "" +"\n" +"\n" +"Приклади:\n" +" Знайти усі сервери IPA:\n" +" ipa server-find\n" + +msgid "" +"\n" +" Find all suffixes:\n" +" ipa topologysuffix-find\n" +msgstr "" +"\n" +" Знайти усі суфікси:\n" +" ipa topologysuffix-find\n" + +msgid "" +"\n" +" Add topology segment to 'domain' suffix:\n" +" ipa topologysegment-add domain --left IPA_SERVER_A --right IPA_SERVER_B\n" +msgstr "" +"\n" +" Додати сегмент топології до суфікса «domain»:\n" +" ipa topologysegment-add domain --left IPA_SERVER_A --right IPA_SERVER_B\n" + +msgid "" +"\n" +" Add topology segment to 'ca' suffix:\n" +" ipa topologysegment-add ca --left IPA_SERVER_A --right IPA_SERVER_B\n" +msgstr "" +"\n" +" Додати сегмент топології до суфікса «ca»:\n" +" ipa topologysegment-add ca --left IPA_SERVER_A --right IPA_SERVER_B\n" + +msgid "" +"\n" +" List all topology segments in 'domain' suffix:\n" +" ipa topologysegment-find domain\n" +msgstr "" +"\n" +" Вивести список усіх сегментів топології у суфіксі «domain»:\n" +" ipa topologysegment-find domain\n" + +msgid "" +"\n" +" List all topology segments in 'ca' suffix:\n" +" ipa topologysegment-find ca\n" +msgstr "" +"\n" +" Вивести список усіх сегментів топології у суфіксі «ca»:\n" +" ipa topologysegment-find ca\n" + +msgid "" +"\n" +" Delete topology segment in 'domain' suffix:\n" +" ipa topologysegment-del domain segment_name\n" +msgstr "" +"\n" +" Вилучити сегмент топології у суфіксі «domain»:\n" +" ipa topologysegment-del domain segment_name\n" + +msgid "" +"\n" +" Delete topology segment in 'ca' suffix:\n" +" ipa topologysegment-del ca segment_name\n" +msgstr "" +"\n" +" Вилучити сегмент топології у суфіксі «ca»:\n" +" ipa topologysegment-del ca segment_name\n" + +msgid "" +"\n" +" Verify topology of 'domain' suffix:\n" +" ipa topologysuffix-verify domain\n" +msgstr "" +"\n" +" Перевірити топологію суфікса «domain»:\n" +" ipa topologysuffix-verify domain\n" + +msgid "" +"\n" +" Verify topology of 'ca' suffix:\n" +" ipa topologysuffix-verify ca\n" +msgstr "" +"\n" +" Перевірити топологію суфікса «ca»:\n" +" ipa topologysuffix-verify ca\n" + +#, python-brace-format +msgid "Topology management requires minimum domain level {0} " +msgstr "Керування топологією потребує мінімального рівня домену {0} " + +msgid "segment" +msgstr "сегмент" + +msgid "segments" +msgstr "сегменти" + +msgid "Topology Segments" +msgstr "Сегменти топології" + +msgid "Topology Segment" +msgstr "Сегмент топології" + +#, python-format +msgid "left node is not a topology node: %(leftnode)s" +msgstr "лівий вузол не є вузлом топології: %(leftnode)s" + +#, python-format +msgid "right node is not a topology node: %(rightnode)s" +msgstr "правий вузол не є вузлом топології: %(rightnode)s" + +msgid "left node and right node must not be the same" +msgstr "лівий і правий вузли повинні бути різними вузлами" + +#, python-brace-format +msgid "left node ({host}) does not support suffix '{suff}'" +msgstr "у лівому вузлі ({host}) не передбачено підтримки суфіксів «{suff}»" + +#, python-brace-format +msgid "right node ({host}) does not support suffix '{suff}'" +msgstr "у правому вузлі ({host}) не передбачено підтримки суфіксів «{suff}»" + +#, python-format +msgid "%(count)d segment matched" +msgid_plural "%(count)d segments matched" +msgstr[0] "встановлено відповідність %(count)d сегмента" +msgstr[1] "встановлено відповідність %(count)d сегментів" +msgstr[2] "встановлено відповідність %(count)d сегментів" + +#, python-format +msgid "Added segment \"%(value)s\"" +msgstr "Додано сегмент «%(value)s»" + +#, python-format +msgid "Deleted segment \"%(value)s\"" +msgstr "Вилучено сегмент «%(value)s»" + +#, python-format +msgid "Modified segment \"%(value)s\"" +msgstr "Змінено сегмент «%(value)s»" + +#, python-format +msgid "%(value)s" +msgstr "%(value)s" + +msgid "left or right node has to be specified" +msgstr "слід вказати лівий або правий вузол" + +msgid "only one node can be specified" +msgstr "можна вказувати лише один вузол" + +#, python-format +msgid "Replication refresh for segment: \"%(pkey)s\" requested." +msgstr "Оновлення реплікації для сегмента: надіслано запит щодо «%(pkey)s»." + +#, python-format +msgid "Stopping of replication refresh for segment: \"%(pkey)s\" requested." +msgstr "Зупиняємо реплікацію для сегмента: надіслано запит щодо «%(pkey)s»." + +msgid "suffixes" +msgstr "суфікси" + +msgid "Topology suffixes" +msgstr "Суфікси топології" + +msgid "Topology suffix" +msgstr "Суфікс топології" + +#, python-format +msgid "%(count)d topology suffix matched" +msgid_plural "%(count)d topology suffixes matched" +msgstr[0] "встановлено відповідність %(count)d суфікса топології" +msgstr[1] "встановлено відповідність %(count)d суфіксів топології" +msgstr[2] "встановлено відповідність %(count)d суфіксів топології" + +#, python-format +msgid "Deleted topology suffix \"%(value)s\"" +msgstr "Вилучено суфікс топології «%(value)s»" + +#, python-format +msgid "Added topology suffix \"%(value)s\"" +msgstr "Додано суфікс топології «%(value)s»" + +#, python-format +msgid "Modified topology suffix \"%(value)s\"" +msgstr "Змінено суфікс топології «%(value)s»" + +msgid "" +"\n" +"Verify replication topology for suffix.\n" +"\n" +"Checks done:\n" +" 1. check if a topology is not disconnected. In other words if there are\n" +" replication paths between all servers.\n" +" 2. check if servers don't have more than the recommended number of\n" +" replication agreements\n" +msgstr "" +"\n" +"Перевірити топологію реплікації для вказаного суфікса.\n" +"\n" +"Перевірки, які виконуються:\n" +" 1. перевірка того, чи не є топологія від’єднаною. Іншими словами, чи є\n" +" шляхи реплікації між усіма серверами.\n" +" 2. перевірка того, чи немає у сервера перевищення рекомендованої\n" +" кількості узгоджень реплікації.\n" + +msgid "automount location" +msgstr "запис автомонтування" + +msgid "automount locations" +msgstr "записи автомонтування" + +msgid "Automount Locations" +msgstr "Записи автомонтування" + +msgid "Automount Location" +msgstr "Запис автомонтування" + +#, python-format +msgid "Added automount location \"%(value)s\"" +msgstr "Додано місце автоматичного монтування «%(value)s»" + +#, python-format +msgid "Deleted automount location \"%(value)s\"" +msgstr "Вилучено місце автоматичного монтування «%(value)s»" + +#, 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 місць автоматичного монтування" + +msgid "automount map" +msgstr "карта автомонтування" + +msgid "automount maps" +msgstr "карти автоматичного монтування" + +msgid "Automount Maps" +msgstr "Карти автоматичного монтування" + +msgid "Automount Map" +msgstr "Карта автомонтування" + +#, python-format +msgid "Added automount map \"%(value)s\"" +msgstr "Додано карту автоматичного монтування «%(value)s»" + +#, python-format +msgid "Deleted automount map \"%(value)s\"" +msgstr "Вилучено карту автоматичного монтування «%(value)s»" + +#, python-format +msgid "Modified automount map \"%(value)s\"" +msgstr "Змінено карту автоматичного монтування «%(value)s»" + +#, 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 карт автоматичного монтування" + +msgid "Automount key object." +msgstr "Об’єкт ключа автоматичного монтування." + +msgid "automount key" +msgstr "ключ автомонтування" + +msgid "automount keys" +msgstr "ключі автомонтування" + +msgid "Automount Keys" +msgstr "Ключі автомонтування" + +msgid "Automount Key" +msgstr "Ключ автомонтування" + +#, python-format +msgid "" +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" +msgstr "" +"Пара ключ,інформація має бути унікальною. Ключ з назвою %(key)s та " +"інформацією %(info)s вже існує." + +#, python-format +msgid "key named %(key)s already exists" +msgstr "ключ з назвою %(key)s вже існує" + +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" +msgstr "Ключа автоматичного монтування %(key)s з інформацією %(info)s не існує" + +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." +msgstr "" +"Знайдено декілька записів ключів %(key)s, скористайтеся --info для вибору " +"певного запису." + +#, python-format +msgid "Added automount key \"%(value)s\"" +msgstr "Додано ключ автоматичного монтування «%(value)s»" + +#, python-format +msgid "Added automount indirect map \"%(value)s\"" +msgstr "Додано опосередковану карту автоматичного монтування «%(value)s»" + +msgid "mount point is relative to parent map, cannot begin with /" +msgstr "" +"точка монтування вказується відносно батьківської картки, її запис не може " +"починатися з «/»" + +#, python-format +msgid "Deleted automount key \"%(value)s\"" +msgstr "Вилучено ключ автоматичного монтування «%(value)s»" + +#, python-format +msgid "Modified automount key \"%(value)s\"" +msgstr "Змінено ключ автоматичного монтування «%(value)s»" + +#, 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 ключів автоматичного монтування" + +msgid "Client version. Used to determine if server will accept request." +msgstr "" +"Версія клієнта. Використовується для визначення, якщо сервер приймає запит." + +msgid "must contain a tuple (list, dict)" +msgstr "має містити кортеж (список, словник)" + msgid "" "\n" "Vaults\n" @@ -23290,1478 +25831,760 @@ msgstr "Отримано дані зі сховища «%(value)s»" msgid "No archived data." msgstr "Немає архівованих даних." -msgid "" -"\n" -"Auto Membership Rule.\n" -msgstr "" -"\n" -"Правило автоматичної участі.\n" - -msgid "" -"\n" -"Bring clarity to the membership of hosts and users by configuring inclusive\n" -"or exclusive regex patterns, you can automatically assign a new entries " -"into\n" -"a group or hostgroup based upon attribute information.\n" -msgstr "" -"\n" -"Внесіть ясність у правила участі вузлів та користувачів налаштовуванням\n" -"формальних виразів шаблонів включення або виключення. Ви можете автоматично\n" -"пов’язувати нові записи з групою або групою вузлів на основі даних щодо " -"атрибутів.\n" - -msgid "" -"\n" -"A rule is directly associated with a group by name, so you cannot create\n" -"a rule without an accompanying group or hostgroup.\n" -msgstr "" -"\n" -"Правило безпосередньо пов’язується з групою за назвою, отже ви не можете\n" -"створити правило без визначення групи або групи вузлів.\n" - -msgid "" -"\n" -"A condition is a regular expression used by 389-ds to match a new incoming\n" -"entry with an automember rule. If it matches an inclusive rule then the\n" -"entry is added to the appropriate group or hostgroup.\n" -msgstr "" -"\n" -"Умова є формальним виразом, використовується 389-ds для встановлення\n" -"відповідності нового вхідного запису з правилом автоматичної участі.\n" -"Якщо умові відповідає правило включення, запис додається до відповідної\n" -"групи або групи вузлів.\n" - -msgid "" -"\n" -"A default group or hostgroup could be specified for entries that do not\n" -"match any rule. In case of user entries this group will be a fallback group\n" -"because all users are by default members of group specified in IPA config.\n" -msgstr "" -"\n" -"Можна визначити типову групу або групу вузлів, яку буде використано для\n" -"записів, які не відповідають жодному правилу. У випадку записів " -"користувачів\n" -"ця група буде резервною групою, оскільки усіх користувачі типово є " -"учасниками\n" -"групи, вказаної у налаштуваннях IPA.\n" - -msgid "" -"\n" -"The automember-rebuild command can be used to retroactively run automember " -"rules\n" -"against existing entries, thus rebuilding their membership.\n" -msgstr "" -"\n" -"За допомогою програми automember-rebuild ви можете повторно застосувати " -"правила\n" -"автоматичної участі до вже створених записів, тобто перебудувати схему " -"участі.\n" - -msgid "" -"\n" -" Add the initial group or hostgroup:\n" -" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" -" ipa group-add --desc=\"Developers\" devel\n" -msgstr "" -"\n" -" Додати початкову групу або групу вузлів:\n" -" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" -" ipa group-add --desc=\"Developers\" devel\n" - -msgid "" -"\n" -" Add the initial rule:\n" -" ipa automember-add --type=hostgroup webservers\n" -" ipa automember-add --type=group devel\n" -msgstr "" -"\n" -" Додати початкове правило:\n" -" ipa automember-add --type=hostgroup webservers\n" -" ipa automember-add --type=group devel\n" - -msgid "" -"\n" -" Add a condition to the rule:\n" -" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-" -"regex=^web[1-9]+\\.example\\.com webservers\n" -" ipa automember-add-condition --key=manager --type=group --inclusive-" -"regex=^uid=mscott devel\n" -msgstr "" -"\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" - -msgid "" -"\n" -" Add an exclusive condition to the rule to prevent auto assignment:\n" -" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-" -"regex=^web5\\.example\\.com webservers\n" -msgstr "" -"\n" -" Додати умову виключення до правила для запобігання автоматичному " -"пов’язуванню:\n" -" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-" -"regex=^web5\\.example\\.com webservers\n" - -msgid "" -"\n" -" Add a host:\n" -" ipa host-add web1.example.com\n" -msgstr "" -"\n" -" Додати вузол:\n" -" ipa host-add web1.example.com\n" - -msgid "" -"\n" -" Add a user:\n" -" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" -msgstr "" -"\n" -" Додати запис користувача:\n" -" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" - -msgid "" -"\n" -" Verify automembership:\n" -" ipa hostgroup-show webservers\n" -" Host-group: webservers\n" -" Description: Web Servers\n" -" Member hosts: web1.example.com\n" -"\n" -" ipa group-show devel\n" -" Group name: devel\n" -" Description: Developers\n" -" GID: 1004200000\n" -" Member users: tuser\n" -msgstr "" -"\n" -" Перевірити правила автоматичної участі:\n" -" ipa hostgroup-show webservers\n" -" Група вузлів: webservers\n" -" Опис: Web Servers\n" -" Вузли-учасники: web1.example.com\n" -"\n" -" ipa group-show devel\n" -" Назва групи: devel\n" -" Опис: Developers\n" -" GID: 1004200000\n" -" Користувачі-учасники: tuser\n" - -msgid "" -"\n" -" Remove a condition from the rule:\n" -" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-" -"regex=^web[1-9]+\\.example\\.com webservers\n" -msgstr "" -"\n" -" Вилучити умову з правила:\n" -" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-" -"regex=^web[1-9]+\\.example\\.com webservers\n" - -msgid "" -"\n" -" Modify the automember rule:\n" -" ipa automember-mod\n" -msgstr "" -"\n" -" Змінити правило автоматичної участі:\n" -" ipa automember-mod\n" - -msgid "" -"\n" -" Set the default (fallback) target group:\n" -" ipa automember-default-group-set --default-group=webservers --" -"type=hostgroup\n" -" ipa automember-default-group-set --default-group=ipausers --type=group\n" -msgstr "" -"\n" -" Встановити типову (резервну) групу призначення:\n" -" ipa automember-default-group-set --default-group=webservers --" -"type=hostgroup\n" -" ipa automember-default-group-set --default-group=ipausers --type=group\n" - -msgid "" -"\n" -" Remove the default (fallback) target group:\n" -" ipa automember-default-group-remove --type=hostgroup\n" -" ipa automember-default-group-remove --type=group\n" -msgstr "" -"\n" -" Вилучити типову (резервну) групу призначення:\n" -" ipa automember-default-group-remove --type=hostgroup\n" -" ipa automember-default-group-remove --type=group\n" - -msgid "" -"\n" -" Show the default (fallback) target group:\n" -" ipa automember-default-group-show --type=hostgroup\n" -" ipa automember-default-group-show --type=group\n" -msgstr "" -"\n" -" Показати типову (резервну) групу призначення:\n" -" ipa automember-default-group-show --type=hostgroup\n" -" ipa automember-default-group-show --type=group\n" - -msgid "" -"\n" -" Find all of the automember rules:\n" -" ipa automember-find\n" -msgstr "" -"\n" -" Знайти усіх правила автоматичної участі:\n" -" ipa automember-find\n" - -msgid "" -"\n" -" Display a automember rule:\n" -" ipa automember-show --type=hostgroup webservers\n" -" ipa automember-show --type=group devel\n" -msgstr "" -"\n" -" Показати правило автоматичної участі:\n" -" ipa automember-show --type=hostgroup webservers\n" -" ipa automember-show --type=group devel\n" - -msgid "" -"\n" -" Delete an automember rule:\n" -" ipa automember-del --type=hostgroup webservers\n" -" ipa automember-del --type=group devel\n" -msgstr "" -"\n" -" Вилучити правило автоматичної участі:\n" -" ipa automember-del --type=hostgroup webservers\n" -" ipa automember-del --type=group devel\n" - -msgid "" -"\n" -" Rebuild membership for all users:\n" -" ipa automember-rebuild --type=group\n" -msgstr "" -"\n" -" Перебудувати записи участі для усіх користувачів:\n" -" ipa automember-rebuild --type=group\n" - -msgid "" -"\n" -" Rebuild membership for all hosts:\n" -" ipa automember-rebuild --type=hostgroup\n" -msgstr "" -"\n" -" Перебудувати записи участі для усіх вузлів:\n" -" ipa automember-rebuild --type=hostgroup\n" - -msgid "" -"\n" -" Rebuild membership for specified users:\n" -" ipa automember-rebuild --users=tuser1 --users=tuser2\n" -msgstr "" -"\n" -" Перебудувати записи участі для вказаних користувачів:\n" -" ipa automember-rebuild --users=tuser1 --users=tuser2\n" - -msgid "" -"\n" -" Rebuild membership for specified hosts:\n" -" ipa automember-rebuild --hosts=web1.example.com --hosts=web2.example." -"com\n" -msgstr "" -"\n" -" Перебудувати записи участі для вказаних вузлів:\n" -" ipa automember-rebuild --hosts=web1.example.com --hosts=web2.example." -"com\n" - -msgid "Auto Membership Rule" -msgstr "Правило автоматичної участі" - #, python-format -msgid "%(otype)s \"%(oname)s\" not found" -msgstr "%(otype)s «%(oname)s» не знайдено" +msgid "" +" Alternatively, following servers are capable of running this command: " +"%(masters)s" +msgstr " Крім того, цю команду можуть виконати такі сервери: %(masters)s" -#, python-format -msgid "%s is not a valid attribute." -msgstr "%s не є коректним атрибутом." +msgid "AD Trust setup" +msgstr "Налаштування довіри AD" msgid "" -"\n" -" Add an automember rule.\n" -" " +"Cannot perform the selected command without Samba 4 support installed. Make " +"sure you have installed server-trust-ad sub-package of IPA." msgstr "" -"\n" -" Додати правило автоматичної участі.\n" -" " - -#, python-format -msgid "Added automember rule \"%(value)s\"" -msgstr "Додано правило автоматичної участі «%(value)s»" - -msgid "Auto Membership is not configured" -msgstr "Автоматичну участь не налаштовано" +"Виконати вибрану команду без встановленої підтримки Samba 4 неможливо. " +"Переконайтеся, що вами встановлено підпакунок IPA server-trust-ad." msgid "" -"\n" -" Add conditions to an automember rule.\n" -" " +"Cannot perform the selected command without Samba 4 instance configured on " +"this machine. Make sure you have run ipa-adtrust-install on this server." msgstr "" -"\n" -" Додати умови до правила автоматичної участі.\n" -" " - -#, python-format -msgid "Added condition(s) to \"%(value)s\"" -msgstr "Додано умови до «%(value)s»" - -#, python-format -msgid "Auto member rule: %s not found!" -msgstr "Правило автоматичної участі: %s не знайдено!" +"Вибрану команду не можна виконати без екземпляра Samba 4, встановленого у " +"цій системі. Переконайтеся, що на цьому сервері було виконано ipa-adtrust-" +"install." msgid "" -"\n" -" Override this so we can add completed and failed to the return " -"result.\n" -" " +"Fetching domains from trusted forest failed. See details in the error_log" msgstr "" -"\n" -" Перевизначення з метою додавання у повернуте повідомлення даних щодо " -"успіху чи невдачі.\n" -" " +"Спроба отримати список доменів із довіреного лісу зазнала невдачі. Подробиці " +"можна знайти у error_log" -msgid "" -"\n" -" Remove conditions from an automember rule.\n" -" " -msgstr "" -"\n" -" Вилучити умови з правила автоматичної участі.\n" -" " +msgid "trust" +msgstr "довіра" -#, python-format -msgid "Removed condition(s) from \"%(value)s\"" -msgstr "Вилучено умови з «%(value)s»" +msgid "trusts" +msgstr "записи довіри" -msgid "" -"\n" -" Override this so we can set completed and failed.\n" -" " -msgstr "" -"\n" -" Перевизначення з метою встановлення станів успіху та невдачі.\n" -" " +msgid "Trust" +msgstr "Довіра" -msgid "" -"\n" -" Modify an automember rule.\n" -" " -msgstr "" -"\n" -" Змінити правило автоматичної участі.\n" -" " - -#, python-format -msgid "Modified automember rule \"%(value)s\"" -msgstr "Змінено правило автоматичної участі «%(value)s»" - -msgid "" -"\n" -" Delete an automember rule.\n" -" " -msgstr "" -"\n" -" Вилучити правило автоматичної участі.\n" -" " - -#, python-format -msgid "Deleted automember rule \"%(value)s\"" -msgstr "Вилучено правило автоматичної участі «%(value)s»" - -msgid "" -"\n" -" Search for automember rules.\n" -" " -msgstr "" -"\n" -" Шукати правила автоматичної участі.\n" -" " - -#, 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 правил" - -msgid "" -"\n" -" Display information about an automember rule.\n" -" " -msgstr "" -"\n" -" Показати дані щодо правила автоматичної участі.\n" -" " - -msgid "" -"\n" -" Set default (fallback) group for all unmatched entries.\n" -" " -msgstr "" -"\n" -" Встановити типову (резервну) групу для невідповідних записів.\n" -" " - -#, python-format -msgid "Set default (fallback) group for automember \"%(value)s\"" -msgstr "Встановити типову (резервну) групу для автоматичної участі «%(value)s»" - -msgid "" -"\n" -" Remove default (fallback) group for all unmatched entries.\n" -" " -msgstr "" -"\n" -" Вилучити типову (резервну) групу для невідповідних записів.\n" -" " - -#, python-format -msgid "Removed default (fallback) group for automember \"%(value)s\"" -msgstr "Вилучити типову (резервну) групу для автоматичної участі «%(value)s»" - -msgid "No default (fallback) group set" -msgstr "Не встановлено типової (резервної) групи" - -msgid "" -"\n" -" Display information about the default (fallback) automember groups.\n" -" " -msgstr "" -"\n" -" Показати дані щодо типових (резервних) груп автоматичної участі.\n" -" " - -msgid "Task DN" -msgstr "DN завдання" - -msgid "DN of the started task" -msgstr "DN запущеного завдання" - -msgid "at least one of options: type, users, hosts must be specified" -msgstr "має бути вказано принаймні один з варіантів: тип, користувачі чи вузли" - -msgid "users and hosts cannot both be set" -msgstr "не можна одночасно вказувати користувачів і вузли" - -msgid "hosts cannot be set when type is 'group'" -msgstr "не можна вказувати вузли, якщо типом є «group»" - -msgid "users cannot be set when type is 'hostgroup'" -msgstr "не можна вказувати користувачів, якщо типом є «hostgroup»" - -msgid "Automember rebuild membership task started" -msgstr "Виконується завдання з перебудови записів автоматичної участі" - -#, python-format -msgid "Task DN = '%s'" -msgstr "DN завдання = «%s»" - -msgid "" -"\n" -"Topology\n" -"\n" -"Management of a replication topology at domain level 1.\n" -msgstr "" -"\n" -"Топологія\n" -"\n" -"Керування топологією реплікації на домені рівня 1.\n" - -msgid "" -"\n" -"IPA server's data is stored in LDAP server in two suffixes:\n" -"* domain suffix, e.g., 'dc=example,dc=com', contains all domain related " -"data\n" -"* ca suffix, 'o=ipaca', is present only on server with CA installed. It\n" -" contains data for Certificate Server component\n" -msgstr "" -"\n" -"Дані сервера IPA зберігаються на сервері LDAP у двох суфіксах:\n" -"* суфіксі домену, наприклад «dc=example,dc=com», тут містяться усі пов’язані " -"із доменом дані\n" -"* суфіксі ca, «o=ipaca», наявні лише на серверах із встановленим CA. Тут\n" -" містяться дані для компонента сервера сертифікатів.\n" - -msgid "" -"\n" -"Data stored on IPA servers is replicated to other IPA servers. The way it " -"is\n" -"replicated is defined by replication agreements. Replication agreements " -"needs\n" -"to be set for both suffixes separately. On domain level 0 they are managed\n" -"using ipa-replica-manage and ipa-csreplica-manage tools. With domain level " -"1\n" -"they are managed centrally using `ipa topology*` commands.\n" -msgstr "" -"\n" -"Дані, що зберігаються на серверах IPA, відтворюються на інших серверах IPA. " -"Спосіб\n" -"відтворення (реплікації) визначається угодами. Угоди реплікації потрібно\n" -"встановлювати для обох суфіксів окремо. На рівні домену 0 угодами керують\n" -"програми ipa-replica-manage та ipa-csreplica-manage. На рівні доменів 1\n" -"керування виконується централізовано за допомогою команд «ipa topology*».\n" - -msgid "" -"\n" -"Agreements are represented by topology segments. By default topology " -"segment\n" -"represents 2 replication agreements - one for each direction, e.g., A to B " -"and\n" -"B to A. Creation of unidirectional segments is not allowed.\n" -msgstr "" -"\n" -"Угоди представляються сегментами топології. Типово, сегмент топології\n" -"представляється 2 угодами реплікації — по одній для кожного напрямку, " -"наприклад\n" -"від A до B і від B до A. Створення односпрямованих сегментів заборонене.\n" - -msgid "" -"\n" -"To verify that no server is disconnected in the topology of the given " -"suffix,\n" -"use:\n" -" ipa topologysuffix-verify $suffix\n" -msgstr "" -"\n" -"Щоб перевірити, що жоден сервер не від’єднано у топології вказаного " -"суфікса,\n" -"скористайтеся такою командою:\n" -" ipa topologysuffix-verify $suffix\n" - -msgid "" -"\n" -"\n" -"Examples:\n" -" Find all IPA servers:\n" -" ipa server-find\n" -msgstr "" -"\n" -"\n" -"Приклади:\n" -" Знайти усі сервери IPA:\n" -" ipa server-find\n" - -msgid "" -"\n" -" Find all suffixes:\n" -" ipa topologysuffix-find\n" -msgstr "" -"\n" -" Знайти усі суфікси:\n" -" ipa topologysuffix-find\n" - -msgid "" -"\n" -" Add topology segment to 'domain' suffix:\n" -" ipa topologysegment-add domain --left IPA_SERVER_A --right IPA_SERVER_B\n" -msgstr "" -"\n" -" Додати сегмент топології до суфікса «domain»:\n" -" ipa topologysegment-add domain --left IPA_SERVER_A --right IPA_SERVER_B\n" - -msgid "" -"\n" -" Add topology segment to 'ca' suffix:\n" -" ipa topologysegment-add ca --left IPA_SERVER_A --right IPA_SERVER_B\n" -msgstr "" -"\n" -" Додати сегмент топології до суфікса «ca»:\n" -" ipa topologysegment-add ca --left IPA_SERVER_A --right IPA_SERVER_B\n" - -msgid "" -"\n" -" List all topology segments in 'domain' suffix:\n" -" ipa topologysegment-find domain\n" -msgstr "" -"\n" -" Вивести список усіх сегментів топології у суфіксі «domain»:\n" -" ipa topologysegment-find domain\n" - -msgid "" -"\n" -" List all topology segments in 'ca' suffix:\n" -" ipa topologysegment-find ca\n" -msgstr "" -"\n" -" Вивести список усіх сегментів топології у суфіксі «ca»:\n" -" ipa topologysegment-find ca\n" - -msgid "" -"\n" -" Delete topology segment in 'domain' suffix:\n" -" ipa topologysegment-del domain segment_name\n" -msgstr "" -"\n" -" Вилучити сегмент топології у суфіксі «domain»:\n" -" ipa topologysegment-del domain segment_name\n" - -msgid "" -"\n" -" Delete topology segment in 'ca' suffix:\n" -" ipa topologysegment-del ca segment_name\n" -msgstr "" -"\n" -" Вилучити сегмент топології у суфіксі «ca»:\n" -" ipa topologysegment-del ca segment_name\n" - -msgid "" -"\n" -" Verify topology of 'domain' suffix:\n" -" ipa topologysuffix-verify domain\n" -msgstr "" -"\n" -" Перевірити топологію суфікса «domain»:\n" -" ipa topologysuffix-verify domain\n" - -msgid "" -"\n" -" Verify topology of 'ca' suffix:\n" -" ipa topologysuffix-verify ca\n" -msgstr "" -"\n" -" Перевірити топологію суфікса «ca»:\n" -" ipa topologysuffix-verify ca\n" +msgid "UPN suffixes" +msgstr "Суфікси UPN" #, python-brace-format -msgid "Topology management requires minimum domain level {0} " -msgstr "Керування топологією потребує мінімального рівня домену {0} " +msgid "Type of trusted domain ID range, one of {vals}" +msgstr "" +"Тип діапазону ідентифікаторів довіреного домену, одне з таких значень: {vals}" -msgid "segment" -msgstr "сегмент" - -msgid "segments" -msgstr "сегменти" - -msgid "Topology Segments" -msgstr "Сегменти топології" - -msgid "Topology Segment" -msgstr "Сегмент топології" - -#, python-format -msgid "left node is not a topology node: %(leftnode)s" -msgstr "лівий вузол не є вузлом топології: %(leftnode)s" - -#, python-format -msgid "right node is not a topology node: %(rightnode)s" -msgstr "правий вузол не є вузлом топології: %(rightnode)s" - -msgid "left node and right node must not be the same" -msgstr "лівий і правий вузли повинні бути різними вузлами" - -#, python-brace-format -msgid "left node ({host}) does not support suffix '{suff}'" -msgstr "у лівому вузлі ({host}) не передбачено підтримки суфіксів «{suff}»" - -#, python-brace-format -msgid "right node ({host}) does not support suffix '{suff}'" -msgstr "у правому вузлі ({host}) не передбачено підтримки суфіксів «{suff}»" - -#, python-format -msgid "%(count)d segment matched" -msgid_plural "%(count)d segments matched" -msgstr[0] "встановлено відповідність %(count)d сегмента" -msgstr[1] "встановлено відповідність %(count)d сегментів" -msgstr[2] "встановлено відповідність %(count)d сегментів" - -#, python-format -msgid "Added segment \"%(value)s\"" -msgstr "Додано сегмент «%(value)s»" - -#, python-format -msgid "Deleted segment \"%(value)s\"" -msgstr "Вилучено сегмент «%(value)s»" - -#, python-format -msgid "Modified segment \"%(value)s\"" -msgstr "Змінено сегмент «%(value)s»" - -#, python-format -msgid "%(value)s" -msgstr "%(value)s" - -msgid "left or right node has to be specified" -msgstr "слід вказати лівий або правий вузол" - -msgid "only one node can be specified" -msgstr "можна вказувати лише один вузол" - -#, python-format -msgid "Replication refresh for segment: \"%(pkey)s\" requested." -msgstr "Оновлення реплікації для сегмента: надіслано запит щодо «%(pkey)s»." - -#, python-format -msgid "Stopping of replication refresh for segment: \"%(pkey)s\" requested." -msgstr "Зупиняємо реплікацію для сегмента: надіслано запит щодо «%(pkey)s»." - -msgid "suffixes" -msgstr "суфікси" - -msgid "Topology suffixes" -msgstr "Суфікси топології" - -msgid "Topology suffix" -msgstr "Суфікс топології" - -#, python-format -msgid "%(count)d topology suffix matched" -msgid_plural "%(count)d topology suffixes matched" -msgstr[0] "встановлено відповідність %(count)d суфікса топології" -msgstr[1] "встановлено відповідність %(count)d суфіксів топології" -msgstr[2] "встановлено відповідність %(count)d суфіксів топології" - -#, python-format -msgid "Deleted topology suffix \"%(value)s\"" -msgstr "Вилучено суфікс топології «%(value)s»" - -#, python-format -msgid "Added topology suffix \"%(value)s\"" -msgstr "Додано суфікс топології «%(value)s»" - -#, python-format -msgid "Modified topology suffix \"%(value)s\"" -msgstr "Змінено суфікс топології «%(value)s»" +msgid "External trust" +msgstr "Зовнішня довіра" msgid "" -"\n" -"Verify replication topology for suffix.\n" -"\n" -"Checks done:\n" -" 1. check if a topology is not disconnected. In other words if there are\n" -" replication paths between all servers.\n" -" 2. check if servers don't have more than the recommended number of\n" -" replication agreements\n" +"Establish external trust to a domain in another forest. The trust is not " +"transitive beyond the domain." msgstr "" -"\n" -"Перевірити топологію реплікації для вказаного суфікса.\n" -"\n" -"Перевірки, які виконуються:\n" -" 1. перевірка того, чи не є топологія від’єднаною. Іншими словами, чи є\n" -" шляхи реплікації між усіма серверами.\n" -" 2. перевірка того, чи немає у сервера перевищення рекомендованої\n" -" кількості узгоджень реплікації.\n" +"Встановити зовнішню довіру до домену у іншому лісі. Довіра не переходить за " +"межі домену." + +#, python-format +msgid "Added Active Directory trust for realm \"%(value)s\"" +msgstr "Додано запис довіри Active Directory для області «%(value)s»" + +#, python-format +msgid "Re-established trust to domain \"%(value)s\"" +msgstr "Відновлено довіру до домену «%(value)s»" + +msgid "missing base_id" +msgstr "не вистачає base_id" + +msgid "pysss_murmur is not available on the server and no base-id is given." +msgstr "pysss_murmur на сервері не доступний, отже base-id не надано." + +msgid "trust type" +msgstr "тип довіри" + +msgid "only \"ad\" is supported" +msgstr "передбачено підтримку лише «ad»" 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" +"Cannot establish a trust to AD deployed in the same domain as IPA. Such " +"setup is not supported." 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" +"Не можна встановлювати довіру до AD, розгорнутою у тому самому домені, що і " +"IPA. Підтримки такої можливості не передбачено." -msgid "sudo command" -msgstr "команда sudo" +msgid "Realm-domain mismatch" +msgstr "Невідповідність між областю і доменом" -msgid "sudo commands" -msgstr "команди sudo" +msgid "" +"To establish trust with Active Directory, the domain name and the realm name " +"of the IPA server must match" +msgstr "" +"Для встановлення довіри з Active Directory назва домену і назва області " +"сервера IPA мають збігатися" -msgid "Sudo Commands" -msgstr "Команди sudo" - -#, python-format -msgid "Added Sudo Command \"%(value)s\"" -msgstr "Додано команду sudo «%(value)s»" - -#, python-format -msgid "Deleted Sudo Command \"%(value)s\"" -msgstr "Вилучено команду sudo «%(value)s»" - -#, python-format -msgid "Modified Sudo Command \"%(value)s\"" -msgstr "Змінено команду sudo «%(value)s»" - -#, 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" - -msgid "automount location" -msgstr "запис автомонтування" - -msgid "automount locations" -msgstr "записи автомонтування" - -msgid "Automount Locations" -msgstr "Записи автомонтування" - -msgid "Automount Location" -msgstr "Запис автомонтування" - -#, python-format -msgid "Added automount location \"%(value)s\"" -msgstr "Додано місце автоматичного монтування «%(value)s»" - -#, python-format -msgid "Deleted automount location \"%(value)s\"" -msgstr "Вилучено місце автоматичного монтування «%(value)s»" - -#, 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 місць автоматичного монтування" - -msgid "automount map" -msgstr "карта автомонтування" - -msgid "automount maps" -msgstr "карти автоматичного монтування" - -msgid "Automount Maps" -msgstr "Карти автоматичного монтування" - -msgid "Automount Map" -msgstr "Карта автомонтування" - -#, python-format -msgid "Added automount map \"%(value)s\"" -msgstr "Додано карту автоматичного монтування «%(value)s»" - -#, python-format -msgid "Deleted automount map \"%(value)s\"" -msgstr "Вилучено карту автоматичного монтування «%(value)s»" - -#, python-format -msgid "Modified automount map \"%(value)s\"" -msgstr "Змінено карту автоматичного монтування «%(value)s»" - -#, 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 карт автоматичного монтування" - -msgid "Automount key object." -msgstr "Об’єкт ключа автоматичного монтування." - -msgid "automount key" -msgstr "ключ автомонтування" - -msgid "automount keys" -msgstr "ключі автомонтування" - -msgid "Automount Keys" -msgstr "Ключі автомонтування" - -msgid "Automount Key" -msgstr "Ключ автомонтування" +msgid "" +"Cannot perform join operation without own domain configured. Make sure you " +"have run ipa-adtrust-install on the IPA server first" +msgstr "" +"Без налаштовування власного домену не можна виконувати дію з приєднання. " +"Спочатку запустіть ipa-adtrust-install на сервері IPA." #, python-format msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" +"Trusted domain %(domain)s is included among IPA realm domains. It needs to " +"be removed prior to establishing the trust. See the \"ipa realmdomains-mod --" +"del-domain\" command." msgstr "" -"Пара ключ,інформація має бути унікальною. Ключ з назвою %(key)s та " -"інформацією %(info)s вже існує." +"До доменів області IPA включено домен %(domain)s. Перш ніж встановлювати " +"довіру, це включення слід усунути. Див. команду «ipa realmdomains-mod --del-" +"domain»." -#, python-format -msgid "key named %(key)s already exists" -msgstr "ключ з назвою %(key)s вже існує" +msgid "Trusted domain and administrator account use different realms" +msgstr "" +"Довіреним доменом і обліковим записом адміністратора використовуються різні " +"області" -#, python-format -msgid "The automount key %(key)s with info %(info)s does not exist" -msgstr "Ключа автоматичного монтування %(key)s з інформацією %(info)s не існує" +msgid "Realm administrator password should be specified" +msgstr "Має бути вказано пароль адміністратора області" + +msgid "id range type" +msgstr "тип діапазону ідентифікаторів" -#, python-format msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." +"Only the ipa-ad-trust and ipa-ad-trust-posix are allowed values for --range-" +"type when adding an AD trust." msgstr "" -"Знайдено декілька записів ключів %(key)s, скористайтеся --info для вибору " -"певного запису." +"Якщо додається зв’язок довіри AD, значенням --range-type має бути лише ipa-" +"ad-trust або ipa-ad-trust-posix." -#, python-format -msgid "Added automount key \"%(value)s\"" -msgstr "Додано ключ автоматичного монтування «%(value)s»" +msgid "id range" +msgstr "діапазон ідентифікаторів" -#, python-format -msgid "Added automount indirect map \"%(value)s\"" -msgstr "Додано опосередковану карту автоматичного монтування «%(value)s»" - -msgid "mount point is relative to parent map, cannot begin with /" +msgid "" +"An id range already exists for this trust. You should either delete the old " +"range, or exclude --base-id/--range-size options from the command." msgstr "" -"точка монтування вказується відносно батьківської картки, її запис не може " -"починатися з «/»" +"Для цього зв’язку довіри вже існує діапазон ідентифікаторів. Вам слід або " +"вилучити попередній діапазон, або виключити з команди параметри --base-id/--" +"range-size." + +msgid "range exists" +msgstr "діапазон вже існує" + +msgid "" +"ID range with the same name but different domain SID already exists. The ID " +"range for the new trusted domain must be created manually." +msgstr "" +"Вже існує діапазон ідентифікаторів з тією самою назвою але іншим доменом " +"SID. Діапазон ідентифікаторів для нового довіреного домену має бути створено " +"вручну." + +msgid "range type change" +msgstr "зміна типу діапазону" + +msgid "" +"ID range for the trusted domain already exists, but it has a different type. " +"Please remove the old range manually, or do not enforce type via --range-" +"type option." +msgstr "" +"Діапазон ідентифікаторів для довіреного домену вже існує, але належить до " +"іншого типу. Будь ласка, вилучіть попередній діапазон вручну або не " +"визначайте тип у примусовому порядку за допомогою параметра --range-type." + +msgid "" +"Forward policy is defined for it in IPA DNS, perhaps forwarder points to " +"incorrect host?" +msgstr "" +"Для нього у DNS IPA визначено правила переспрямовування. Можливо, " +"переспрямовувач вказує не помилковий вузол?" + +msgid "Unable to verify write permissions to the AD" +msgstr "Не вдалося перевірити права доступу на запис до AD" + +msgid "Not enough arguments specified to perform trust setup" +msgstr "Вказано недостатньо аргументів для виконання налаштовування довіри" #, python-format -msgid "Deleted automount key \"%(value)s\"" -msgstr "Вилучено ключ автоматичного монтування «%(value)s»" - -#, python-format -msgid "Modified automount key \"%(value)s\"" -msgstr "Змінено ключ автоматичного монтування «%(value)s»" - -#, 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 ключів автоматичного монтування" +msgid "Deleted trust \"%(value)s\"" +msgstr "Вилучено запис довіри «%(value)s»" msgid "" "\n" -"Manage CA ACL rules.\n" +" Modify a trust (for future use).\n" "\n" -"This plugin is used to define rules governing which CAs and profiles\n" -"may be used to issue certificates to particular principals or groups\n" -"of principals.\n" -"\n" -"SUBJECT PRINCIPAL SCOPE:\n" -"\n" -"For a certificate request to be allowed, the principal(s) that are\n" -"the subject of a certificate request (not necessarily the principal\n" -"actually requesting the certificate) must be included in the scope\n" -"of a CA ACL that also includes the target CA and profile.\n" -"\n" -"Users can be included by name, group or the \"all users\" category.\n" -"Hosts can be included by name, hostgroup or the \"all hosts\"\n" -"category. Services can be included by service name or the \"all\n" -"services\" category. CA ACLs may be associated with a single type of\n" -"principal, or multiple types.\n" -"\n" -"CERTIFICATE AUTHORITY SCOPE:\n" -"\n" -"A CA ACL can be associated with one or more CAs by name, or by the\n" -"\"all CAs\" category. For compatibility reasons, a CA ACL with no CA\n" -"association implies an association with the 'ipa' CA (and only this\n" -"CA).\n" -"\n" -"PROFILE SCOPE:\n" -"\n" -"A CA ACL can be associated with one or more profiles by Profile ID.\n" -"The Profile ID is a string without spaces or punctuation starting\n" -"with a letter and followed by a sequence of letters, digits or\n" -"underscore (\"_\").\n" -"\n" -"EXAMPLES:\n" -"\n" -" Create a CA ACL \"test\" that grants all users access to the\n" -" \"UserCert\" profile on all CAs:\n" -" ipa caacl-add test --usercat=all --cacat=all\n" -" ipa caacl-add-profile test --certprofiles UserCert\n" -"\n" -" Display the properties of a named CA ACL:\n" -" ipa caacl-show test\n" -"\n" -" Create a CA ACL to let user \"alice\" use the \"DNP3\" profile on \"DNP3-CA" -"\":\n" -" ipa caacl-add alice_dnp3\n" -" ipa caacl-add-ca alice_dnp3 --cas DNP3-CA\n" -" ipa caacl-add-profile alice_dnp3 --certprofiles DNP3\n" -" ipa caacl-add-user alice_dnp3 --user=alice\n" -"\n" -" Disable a CA ACL:\n" -" ipa caacl-disable test\n" -"\n" -" Remove a CA ACL:\n" -" ipa caacl-del test\n" +" Currently only the default option to modify the LDAP attributes is\n" +" available. More specific options will be added in coming releases.\n" +" " msgstr "" "\n" -"Керування правилами ACL CA.\n" +" Змінити запис довіри (для наступного використання).\n" "\n" -"Цим додатком можна скористатися для визначення правил керування тим,\n" -"які служби сертифікації та профілі можна використовувати для видавання\n" -"сертифікатів певним реєстраційним записам або група реєстраційних\n" -"записів.\n" -"\n" -"ОБЛАСТЬ ДІЇ РЕЄСТРАЦІЙНИХ ЗАПИСІВ ОБ’ЄКТА:\n" -"\n" -"Щоб запит щодо сертифікації було задоволено, реєстраційні записи,\n" -"які є об’єктом запиту щодо сертифікації (необов’язково ті самі,\n" -"що і реєстраційний запис, з якого надсилається запит щодо сертифікації)\n" -"має бути включено до області дії ACL служби сертифікації, що\n" -"також включає службу сертифікації та профіль призначення.\n" -"\n" -"Користувачів можна включати за іменем, групою або категорією\n" -"«усі користувачі». Вузли можна включати за назвою, групою вузлів\n" -"або категорією «усі вузли». Служби можна включати за назвою служби\n" -"або категорією «усі служби». ACL служб сертифікації може бути\n" -"пов’язано із одним типом реєстраційних записів або із декількома\n" -"типами.\n" -"\n" -"ОБЛАСТЬ ДІЇ СЛУЖБИ СЕРТИФІКАЦІЇ:\n" -"\n" -"ACL служби сертифікації може бути пов’язано із однією або\n" -"декількома службами сертифікації за назвою або за категорією\n" -"«усі CA». З міркувань сумісності ACL служби сертифікації без\n" -"прив’язки до служби сертифікації вважається таким, що пов’язано\n" -"із службою сертифікації «ipa» (і лише з цією службою сертифікації).\n" -"\n" -"ОБЛАСТЬ ДІЇ ПРОФІЛІВ:\n" -"\n" -"ACL служби сертифікації може бути пов’язано із одним або декількома\n" -"профілями за ідентифікатором профілю. Ідентифікатором профілю\n" -"вважається рядок без пробілів і символів пунктуації, що починається\n" -"із літери і є послідовністю літер, цифр та символів підкреслювання\n" -"(«_»).\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Створити ACL служби сертифікації «test», який надає доступ усім\n" -" користувачам до профілю «UserCert» на усіх службах сертифікації:\n" -" ipa caacl-add test --usercat=all --cacat=all\n" -" ipa caacl-add-profile test --certprofiles UserCert\n" -"\n" -" Вивести властивості вказаного за назвою ACL служби сертифікації:\n" -" ipa caacl-show test\n" -"\n" -" Створити ACL служби сертифікації, який надаватиме змогу\n" -" користувачеві «alice» використовувати профіль «DNP3» на «DNP3-CA»:\n" -" ipa caacl-add alice_dnp3\n" -" ipa caacl-add-ca alice_dnp3 --cas DNP3-CA\n" -" ipa caacl-add-profile alice_dnp3 --certprofiles DNP3\n" -" ipa caacl-add-user alice_dnp3 --user=alice\n" -"\n" -" Вимкнути ACL служби сертифікації:\n" -" ipa caacl-disable test\n" -"\n" -" Вилучити ACL служби сертифікації:\n" -" ipa caacl-del test\n" - -msgid "CA ACL" -msgstr "CA ACL" - -msgid "CA ACLs" -msgstr "CA ACL" - -msgid "CA category" -msgstr "Категорія CA" - -msgid "CA category the ACL applies to" -msgstr "Категорія CA, до якої застосовується ACL" - -msgid "CAs" -msgstr "CA" +" У поточній версії можлива зміна лише типова зміна атрибутів LDAP.\n" +" Додаткові варіанти буде додано у наступних випусках.\n" +" " #, python-format -msgid "Added CA ACL \"%(value)s\"" -msgstr "Додано CA ACL «%(value)s»" +msgid "Modified trust \"%(value)s\" (change will be effective in 60 seconds)" +msgstr "Змінено довіру «%(value)s» (зміни набудуть чинності за 60 секунд)" #, python-format -msgid "Deleted CA ACL \"%(value)s\"" -msgstr "Вилучено CA ACL «%(value)s»" +msgid "%(count)d trust matched" +msgid_plural "%(count)d trusts matched" +msgstr[0] "встановлено відповідність %(count)d запису довіри" +msgstr[1] "встановлено відповідність %(count)d записів довіри" +msgstr[2] "встановлено відповідність %(count)d записів довіри" -msgid "default CA ACL can be only disabled" -msgstr "типовий ACL CA можна лише вимкнути" +msgid "trust configuration" +msgstr "довірені налаштування" + +msgid "Global Trust Configuration" +msgstr "Загальні довірені налаштування" + +msgid "IPA AD trust agents" +msgstr "Агенти довіри AD IPA" + +msgid "IPA servers configured as AD trust agents" +msgstr "Сервери IPA, які налаштовано як агенти довіри AD" + +msgid "IPA AD trust controllers" +msgstr "Контролери довіри AD IPA" + +msgid "IPA servers configured as AD trust controllers" +msgstr "Сервери IPA, які налаштовано як контролери довіри AD" + +msgid "unsupported trust type" +msgstr "непідтримуваний тип довіри" #, python-format -msgid "Modified CA ACL \"%(value)s\"" -msgstr "Змінено CA ACL «%(value)s»" +msgid "Modified \"%(value)s\" trust configuration" +msgstr "Змінено налаштування довіри «%(value)s»" -msgid "CA category cannot be set to 'all' while there are allowed CAs" -msgstr "" -"не можна встановлювати для категорії CA значення «all», доки є записи " -"дозволених CA" +msgid "SID" +msgstr "SID" + +msgid "sidgen_was_run" +msgstr "sidgen_was_run" msgid "" -"profile category cannot be set to 'all' while there are allowed profiles" +"This command relies on the existence of the \"editors\" group, but this " +"group was not found." msgstr "" -"не можна встановлювати для категорії профілів значення «all», доки є записи " -"дозволених профілів" +"Для виконання цієї команди має існувати група «editors», але групи з такою " +"назвою не знайдено." -msgid "user category cannot be set to 'all' while there are allowed users" -msgstr "" -"не можна встановлювати для категорії користувачів значення «all», доки є " -"записи дозволених користувачів" +msgid "trust domain" +msgstr "довірений домен" -msgid "host category cannot be set to 'all' while there are allowed hosts" -msgstr "" -"не можна встановлювати для категорії вузлів значення «all», доки є записи " -"дозволених вузлів" +msgid "trust domains" +msgstr "довірені домени" + +msgid "Trusted domains" +msgstr "Довірені домени" + +msgid "Trusted domain" +msgstr "Довірений домен" + +msgid "Domain enabled" +msgstr "Домен увімкнено" + +#, python-format +msgid "Removed information about the trusted domain \"%(value)s\"" +msgstr "Дані щодо довіреного домену «%(value)s» вилучено" msgid "" -"service category cannot be set to 'all' while there are allowed services" +"cannot delete root domain of the trust, use trust-del to delete the trust " +"itself" msgstr "" -"не можна встановлювати для категорії служб значення «all», доки є дозволені " -"служби" +"вилучення кореневого домену правила довіри неможливе, скористайтеся trust-" +"del для вилучення самого правила довіри" -#, python-format -msgid "%(count)d CA ACL matched" -msgid_plural "%(count)d CA ACLs matched" -msgstr[0] "встановлено відповідність %(count)d CA ACL" -msgstr[1] "встановлено відповідність %(count)d CA ACL" -msgstr[2] "встановлено відповідність %(count)d CA ACL" - -#, python-format -msgid "Enabled CA ACL \"%(value)s\"" -msgstr "Увімкнено CA ACL «%(value)s»" - -#, python-format -msgid "Disabled CA ACL \"%(value)s\"" -msgstr "Вимкнено CA ACL «%(value)s»" - -#, python-format -msgid "%i user or group added." -msgstr "Додано %i користувача або групу." - -#, python-format -msgid "%i users or groups added." -msgstr "Додано %i користувачів або груп." - -#, python-format -msgid "%i user or group removed." -msgstr "Вилучено %i користувача або групу." - -#, python-format -msgid "%i users or groups removed." -msgstr "Вилучено %i користувачів або груп." - -#, python-format -msgid "%i host or hostgroup added." -msgstr "Додано %i вузол або групу вузлів." - -#, python-format -msgid "%i hosts or hostgroups added." -msgstr "Додано %i вузлів або груп вузлів." - -#, python-format -msgid "%i host or hostgroup removed." -msgstr "Вилучено %i вузол або групу вузлів." - -#, python-format -msgid "%i hosts or hostgroups removed." -msgstr "Вилучено %i вузлів або груп вузлів." - -#, python-format -msgid "%i service added." -msgstr "Додано %i службу." - -#, python-format -msgid "%i services added." -msgstr "Додано %i служб." - -msgid "services cannot be added when service category='all'" -msgstr "не можна додавати записи служб, якщо категорія служб=«all»" - -#, python-format -msgid "%i service removed." -msgstr "Вилучено %i службу." - -#, python-format -msgid "%i services removed." -msgstr "Вилучено %i служб." - -#, python-format -msgid "%i profile added." -msgstr "Додано %i профіль." - -#, python-format -msgid "%i profiles added." -msgstr "Додано %i профілів." - -msgid "profiles cannot be added when profile category='all'" -msgstr "профілі не можна додавати, якщо категорія профілів «all»" - -#, python-format -msgid "%i profile removed." -msgstr "Вилучено %i профіль." - -#, python-format -msgid "%i profiles removed." -msgstr "Вилучено %i профілів." - -msgid "Add CAs to a CA ACL." -msgstr "Додати CA до ACL CA." - -#, python-format -msgid "%i CA added." -msgstr "Додано %i CA." - -#, python-format -msgid "%i CAs added." -msgstr "Додано %i CA." - -msgid "CAs cannot be added when CA category='all'" -msgstr "Не можна додавати CA, якщо категорія CA='all'" - -msgid "Remove CAs from a CA ACL." -msgstr "Вилучити CA з ACL CA." - -#, python-format -msgid "%i CA removed." -msgstr "Вилучено %i." - -#, python-format -msgid "%i CAs removed." -msgstr "Вилучено %i CA." - -msgid "delegation" -msgstr "уповноваження" - -msgid "delegations" -msgstr "уповноваження" - -msgid "Delegations" -msgstr "Уповноваження" - -msgid "Delegation" -msgstr "Уповноваження" - -#, python-format -msgid "Added delegation \"%(value)s\"" -msgstr "Додано уповноваження «%(value)s»" - -#, python-format -msgid "Deleted delegation \"%(value)s\"" -msgstr "Вилучено уповноваження «%(value)s»" - -#, python-format -msgid "Modified delegation \"%(value)s\"" -msgstr "Змінено уповноваження «%(value)s»" - -#, 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 уповноважень" - -#, python-format -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +msgid "" +"List of trust domains successfully refreshed. Use trustdomain-find command " +"to list them." msgstr "" -"пріоритет повинен мати унікальне значення (%(prio)d вже використано для " -"%(gname)s)" +"Список довірених доменів успішно оновлено. Для отримання поточного списку " +"цих доменів скористайтеся командою trustdomain-find." -msgid "password policy" -msgstr "правила для паролів" +#, python-format +msgid "Enabled trust domain \"%(value)s\"" +msgstr "Увімкнено домен довіри «%(value)s»" -msgid "password policies" -msgstr "правила щодо паролів" - -msgid "Password Policies" -msgstr "Правила щодо паролів" - -msgid "Maximum password life must be greater than minimum." +msgid "Root domain of the trust is always enabled for the existing trust" msgstr "" -"Максимальний строк дії пароля має перевищувати мінімальний строк його дії." - -msgid "cannot delete global password policy" -msgstr "неможливо вилучити загальні правила паролів" - -msgid "priority cannot be set on global policy" -msgstr "для загальних правил не може встановлювати пріоритети" - -msgid "operation not defined" -msgstr "дію не визначено" +"Кореневий домен правила довіри для наявного правила довіри завжди увімкнено" #, python-format -msgid "not allowed to perform operation: %s" -msgstr "виконувати цю дію заборонено: %s" +msgid "Disabled trust domain \"%(value)s\"" +msgstr "Домен довіри «%(value)s» вимкнено" -msgid "No such virtual command" -msgstr "Такої віртуальної команди не передбачено" - -#, python-format -msgid "Added user \"%(value)s\"" -msgstr "Додано користувача «%(value)s»" - -msgid "Default group for new users is not POSIX" -msgstr "Типовою групою для нових користувачів не є група POSIX" - -#, python-format -msgid "Deleted user \"%(value)s\"" -msgstr "Вилучено користувача «%(value)s»" - -#, python-format -msgid "%s: user is already preserved" -msgstr "%s: запис користувача вже захищено" - -#, python-format -msgid "Modified user \"%(value)s\"" -msgstr "Змінено користувача «%(value)s»" - -#, python-format -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "встановлено відповідність %(count)d користувача" -msgstr[1] "встановлено відповідність %(count)d користувачів" -msgstr[2] "встановлено відповідність %(count)d користувачів" - -#, python-format -msgid "Undeleted user account \"%(value)s\"" -msgstr "Відновлено обліковий запис користувача «%(value)s»" - -#, python-format -msgid "user \"%s\" is already active" -msgstr "користувач «%s» вже є активним" - -#, python-format -msgid "Staged user account \"%(value)s\"" -msgstr "Обліковий запис користувача етапу «%(value)s»" - -#, python-format -msgid "Disabled user account \"%(value)s\"" -msgstr "Вимкнено обліковий запис користувача «%(value)s»" - -#, python-format -msgid "Enabled user account \"%(value)s\"" -msgstr "Увімкнено обліковий запис користувача «%(value)s»" +msgid "" +"cannot disable root domain of the trust, use trust-del to delete the trust " +"itself" +msgstr "" +"вимикання кореневого домену правила довіри неможливе, скористайтеся trust-" +"del для вилучення самого правила довіри" 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." +"IPA certificate operations\n" msgstr "" "\n" -" Розблокувати обліковий запис користувача\n" -"\n" -" Обліковий запис може бути заблоковано, якщо відповідно до правил " -"безпеки\n" -" користувач перевищить обмеження на кількість введення помилкових " -"паролів\n" -" протягом певного часу. Запис блокується тимчасово, його може бути\n" -" розблоковано адміністратором." - -#, python-format -msgid "Unlocked account \"%(value)s\"" -msgstr "Розблоковано обліковий запис «%(value)s»" - -msgid "Failed logins" -msgstr "Кількість невдалих спроб увійти" - -msgid "Last successful authentication" -msgstr "Останнє успішне розпізнавання" - -msgid "Last failed authentication" -msgstr "Останнє невдале розпізнавання" - -msgid "Time now" -msgstr "Поточний час" +"Дії з сертифікатами IPA\n" msgid "" "\n" -" Lockout status of a user account\n" -"\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked " -"by\n" -" an administrator.\n" -"\n" -" This connects to each IPA master and displays the lockout status on\n" -" each one.\n" -"\n" -" To determine whether an account is locked on a given server you need\n" -" to compare the number of failed logins and the time of the last " -"failure.\n" -" For an account to be locked it must exceed the maxfail failures within\n" -" the failinterval duration as specified in the password policy " -"associated\n" -" with the user.\n" -"\n" -" The failed login counter is modified only when a user attempts a log in\n" -" so it is possible that an account may appear locked but the last failed\n" -" login attempt is older than the lockouttime of the password policy. " -"This\n" -" means that the user may attempt a login again. " +"Implements a set of commands for managing server SSL certificates.\n" msgstr "" "\n" -" Стан блокування облікового запису користувача\n" +"Реалізує набір команд для керування сертифікатами серверів SSL.\n" + +msgid "" "\n" -" Обліковий запис може бути заблоковано, якщо введено неправильний пароль\n" -" забагато разів протягом певного проміжку часу, який визначається " -"правилами\n" -" роботи з паролями. Блокування облікового запису є тимчасовим станом, " -"його\n" -" може бути розблоковано адміністратором.\n" +"Certificate requests exist in the form of a Certificate Signing Request " +"(CSR)\n" +"in PEM format.\n" +msgstr "" "\n" -" Ця програма з’єднується з кожним основним вузлом IPA і показує стан\n" -" блокування на кожному з них.\n" +"Запити щодо сертифікатів існують у формі Certificate Signing Request (CSR)\n" +"і форматі PEM.\n" + +msgid "" "\n" -" Щоб визначити, чи слід блокувати обліковий запис на певному сервері, " -"слід\n" -" виконати порівняння кількості помилкових спроб входу та час останньої\n" -" невдалої спроби з еталонними значеннями. Обліковий запис буде " -"заблоковано,\n" -" якщо буде перевищено кількість maxfail помилкових спроб протягом " -"проміжку\n" -" часу failinterval. Відповідні значення задаються правилами обробки " -"паролів,\n" -" пов’язаними з обліковим записом користувача.\n" +"The dogtag CA uses just the CN value of the CSR and forces the rest of the\n" +"subject to values configured in the server.\n" +msgstr "" +"\n" +"Служба сертифікації dogtag використовує лише значення CN CSR і примусово " +"встановлює\n" +"решту параметрів призначення за налаштуваннями сервера.\n" + +msgid "" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +msgstr "" +"\n" +"Сертифікат зберігається з реєстраційним записом, а реєстраційний запис\n" +"потребує вузла.\n" + +msgid "" +"\n" +"In order to request a certificate:\n" +msgstr "" +"\n" +"Для того, щоб створити запит щодо сертифіката:\n" + +msgid "" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add " +"it)\n" +msgstr "" +"\n" +"* Вузол має існувати\n" +"* Служба має існувати (або слід скористатися параметром --add " +"дляавтоматичного додавання)\n" + +msgid "" +"\n" +"SEARCHING:\n" +msgstr "" +"\n" +"ПОШУК:\n" + +msgid "" +"\n" +"Certificates may be searched on by certificate subject, serial number,\n" +"revocation reason, validity dates and the issued date.\n" +msgstr "" +"\n" +"Шукати сертифікати можна за призначенням сертифіката, серійним номером,\n" +"причиною відкликання, датами чинності та датою видання.\n" + +msgid "" +"\n" +"When searching on dates the _from date does a >= search and the _to date\n" +"does a <= search. When combined these are done as an AND.\n" +msgstr "" +"\n" +"Якщо пошук виконується за датою _від, використовується порівняння >=, а " +"якщо\n" +"виконується пошук _до дати — порівняння <=. Поєднання обох пошуків " +"призводить\n" +"до пошуку з логічним поєднанням ТА.\n" + +msgid "" +"\n" +"Dates are treated as GMT to match the dates in the certificates.\n" +msgstr "" +"\n" +"Дати обробляються як дати за Гринвічем, відповідно до дат визначених " +"усертифікатах.\n" + +msgid "" +"\n" +"The date format is YYYY-mm-dd.\n" +msgstr "" +"\n" +"Формат дати є таким: РРРР-мм-дд.\n" + +msgid "" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +msgstr "" +"\n" +" Створити запит щодо нового сертифіката і додати реєстраційний запис: ipa " +"cert-request --add --principal=HTTP/lion.example.com example.csr\n" + +msgid "" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +msgstr "" +"\n" +" Отримати вже створений сертифікат:\n" +" ipa cert-show 1032\n" + +msgid "" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +msgstr "" +"\n" +" Відкликати сертифікат (причини визначено у RFC 5280):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" + +msgid "" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +msgstr "" +"\n" +" Вилучити сертифікат зі списку відкликання:\n" +" ipa cert-remove-hold 1032\n" + +msgid "" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +msgstr "" +"\n" +" Перевірити стан запиту щодо підписування:\n" +" ipa cert-status 10\n" + +msgid "" +"\n" +" Search for certificates by hostname:\n" +" ipa cert-find --subject=ipaserver.example.com\n" +msgstr "" +"\n" +" Пошук сертифікатів за назвою вузла:\n" +" ipa cert-find --subject=ipaserver.example.com\n" + +msgid "" +"\n" +" Search for revoked certificates by reason:\n" +" ipa cert-find --revocation-reason=5\n" +msgstr "" +"\n" +" Пошук відкликаних сертифікатів за причиною:\n" +" ipa cert-find --revocation-reason=5\n" + +msgid "" +"\n" +" Search for certificates based on issuance date\n" +" ipa cert-find --issuedon-from=2013-02-01 --issuedon-to=2013-02-07\n" +msgstr "" +"\n" +" Пошук сертифікатів за датою видання\n" +" ipa cert-find --issuedon-from=2013-02-01 --issuedon-to=2013-02-07\n" + +msgid "" +"\n" +" Search for certificates owned by a specific user:\n" +" ipa cert-find --user=user\n" +msgstr "" +"\n" +" Пошук сертифікатів, власником яких є вказаний користувач:\n" +" ipa cert-find --user=user\n" + +msgid "" +"\n" +" Examine a certificate:\n" +" ipa cert-find --file=cert.pem --all\n" +msgstr "" +"\n" +" Перевірити сертифікат:\n" +" ipa cert-find --file=cert.pem --all\n" + +msgid "" +"\n" +" Verify that a certificate is owned by a specific user:\n" +" ipa cert-find --file=cert.pem --user=user\n" +msgstr "" +"\n" +" Перевірити, чи є власником сертифіката вказаний користувач:\n" +" ipa cert-find --file=cert.pem --user=user\n" + +msgid "" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +msgstr "" +"\n" +"У поточній версії IPA негайно виконує (або відхиляє) всі запити щодо\n" +"сертифікатів, отже дані щодо стану запиту не мають сенсу. Ці дані\n" +"можуть знадобитися у наступних версіях або у разі, якщо CA видає\n" +"сертифікат не одразу.\n" + +msgid "" +"\n" +"The following revocation reasons are supported:\n" +"\n" +msgstr "" +"\n" +"Передбачено підтримку таких причин відкликання:\n" +"\n" + +msgid " * 0 - unspecified\n" +msgstr " * 0 - не визначено\n" + +msgid " * 1 - keyCompromise\n" +msgstr " * 1 - keyCompromise\n" + +msgid " * 2 - cACompromise\n" +msgstr " * 2 - cACompromise\n" + +msgid " * 3 - affiliationChanged\n" +msgstr " * 3 - affiliationChanged\n" + +msgid " * 4 - superseded\n" +msgstr " * 4 - superseded\n" + +msgid " * 5 - cessationOfOperation\n" +msgstr " * 5 - cessationOfOperation\n" + +msgid " * 6 - certificateHold\n" +msgstr " * 6 - certificateHold\n" + +msgid " * 8 - removeFromCRL\n" +msgstr " * 8 - removeFromCRL\n" + +msgid " * 9 - privilegeWithdrawn\n" +msgstr " * 9 - privilegeWithdrawn\n" + +msgid " * 10 - aACompromise\n" +msgstr " * 10 - aACompromise\n" + +msgid "" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +msgstr "" +"\n" +"Зауважте, що коди причини 7 не використовується. Докладніші дані у RFC " +"5280:\n" + +msgid "" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" +"\n" +msgstr "" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" "\n" -" Зміни до лічильника помилкових спроб входу вносяться, лише коли " -"користувач\n" -" виконує спробу увійти, тому може статися так, що обліковий запис " -"заблоковано,\n" -" хоча час, що минув з останньої помилкової спроби, перевищує час " -"блокування\n" -" (lockouttime), заданий правилам обробки паролів. Це означає, що " -"користувач\n" -" може увійти до системи знову. " #, python-format -msgid "%(host)s failed: %(error)s" -msgstr "Помилка %(host)s: %(error)s" +msgid "" +"Principal '%(principal)s' is not permitted to use CA '%(ca)s' with profile " +"'%(profile_id)s' for certificate issuance." +msgstr "" +"Реєстраційному запису «%(principal)s» не дозволено використовувати службу " +"сертифікації «%(ca)s» із профілем «%(profile_id)s» для видання сертифікатів." #, python-format -msgid "%(host)s failed" -msgstr "Помилка %(host)s" +msgid "Host '%(hostname)s' is not an active KDC" +msgstr "Вузол «%(hostname)s» не є активним KDC" + +msgid "Issuing CA" +msgstr "Видавничий CA" + +msgid "Name of issuing CA" +msgstr "Назва видавничого CA" + +msgid "Subject email address" +msgstr "Адреса електронної пошти призначення" + +msgid "Subject DNS name" +msgstr "Назва DNS призначення" + +msgid "Subject X.400 address" +msgstr "Адреса X.400 призначення" + +msgid "Subject directory name" +msgstr "Назва каталогу призначення" + +msgid "Subject EDI Party name" +msgstr "Назва EDI Party призначення" + +msgid "Subject URI" +msgstr "Адреса призначення" + +msgid "Subject IP Address" +msgstr "IP-адреса призначення" + +msgid "Subject OID" +msgstr "OID призначення" + +msgid "Subject UPN" +msgstr "UPN призначення" + +msgid "Subject Kerberos principal name" +msgstr "Назва реєстраційного запису Kerberos призначення" + +msgid "Subject Other Name" +msgstr "Інша назва призначення" + +msgid "Serial number (hex)" +msgstr "Серійний номер (шістнадцятковий)" + +msgid "Request status" +msgstr "Стан запиту" + +msgid "" +"automatically add the principal if it doesn't exist (service principals only)" +msgstr "" +"автоматично додати реєстраційний запис, якщо його не існує (лише " +"реєстраційні записи служб)" #, python-format -msgid "Account disabled: %(disabled)s" -msgstr "Обліковий запис вимкнено: %(disabled)s" +msgid "krbtgt certs can use only the %s profile" +msgstr "Сертифікати krbtgt можуть використовувати лише профіль %s" + +msgid "No Common Name was found in subject of request." +msgstr "У темі запиту не було знайдено загальної назви (CN)." #, python-format -msgid "Added certificates to user \"%(value)s\"" -msgstr "Додано сертифікати до запису користувача «%(value)s»" +msgid "" +"hostname in subject of request '%(cn)s' does not match name or aliases of " +"principal '%(principal)s'" +msgstr "" +"назва вузла у предметі запиту «%(cn)s» не збігається із назвою або " +"альтернативними назвами реєстраційного запису «%(principal)s»" #, python-format -msgid "Removed certificates from user \"%(value)s\"" -msgstr "Вилучено сертифікати із запису користувача «%(value)s»" +msgid "" +"hostname in subject of request '%(cn)s' does not match principal hostname " +"'%(hostname)s'" +msgstr "" +"назва вузла у призначенні запиту, «%(cn)s», не збігається з назвою вузла " +"реєстраційного запису, «%(hostname)s»" -msgid "Add new principal alias to the user entry" -msgstr "Додати новий псевдонім реєстраційного запису до запису користувача" +msgid "DN commonName does not match user's login" +msgstr "У commonName DN не збігається із ім’ям користувача" + +msgid "DN emailAddress does not match any of user's email addresses" +msgstr "" +"emailAddress DN не збігається із жодною адресою електронної пошти користувача" #, python-format -msgid "Added new aliases to user \"%(value)s\"" -msgstr "Додано нові псевдоніми до запису користувача «%(value)s»" - -msgid "Remove principal alias from the user entry" -msgstr "Вилучити псевдонім реєстраційного запису із запису користувача" +msgid "" +"Insufficient 'write' privilege to the 'userCertificate' attribute of entry " +"'%s'." +msgstr "Недостатні привілеї «write» до атрибута «userCertificate» запису «%s»." #, python-format -msgid "Removed aliases from user \"%(value)s\"" -msgstr "Вилучити псевдоніми із запису користувача «%(value)s»" +msgid "subject alt name type %s is forbidden for user principals" +msgstr "" +"використання типу альтернативної назви об’єкта %s заборонено для " +"реєстраційних записів користувачів" + +#, python-format +msgid "" +"The service principal for subject alt name %s in certificate request does " +"not exist" +msgstr "" +"Реєстраційного запису служби для альтернативної назви об’єкта %s запиту щодо " +"сертифіката не існує" + +#, python-format +msgid "" +"Insufficient privilege to create a certificate with subject alt name '%s'." +msgstr "" +"Недостатні привілеї для створення сертифіката з альтернативною назвою " +"призначення «%s»." + +#, python-format +msgid "Principal '%s' in subject alt name does not match requested principal" +msgstr "" +"Реєстраційний запис «%s» у альтернативній назві об’єкта не відповідає " +"запитаному реєстраційному запису" + +msgid "RFC822Name does not match any of user's email addresses" +msgstr "" +"RFC822Name не збігається зі жодною адресою електронної пошти користувача" + +#, python-format +msgid "subject alt name type %s is forbidden for non-user principals" +msgstr "" +"використання типу альтернативної назви об’єкта %s заборонено для " +"реєстраційних записів, які не пов’язано із користувачами" + +#, python-format +msgid "Subject alt name type %s is forbidden" +msgstr "Використання типу альтернативної назви об’єкта %s заборонено" + +#, python-format +msgid "CA '%s' is disabled" +msgstr "Службу сертифікації «%s» вимкнено" + +msgid "'add' option" +msgstr "параметр «add»" + +msgid "Revoked" +msgstr "Анульований" + +msgid "" +"Reason for revoking the certificate (0-10). Type \"ipa help cert\" for " +"revocation reason details. " +msgstr "" +"Причина відкликання сертифіката (0-10). Введіть «ipa help cert», щоб " +"ознайомитися із подробицями причин відкликання. " + +#, python-format +msgid "Owner %s" +msgstr "Власник %s" + +#, python-format +msgid "" +"Certificate with serial number %(serial)s issued by CA '%(ca)s' not found" +msgstr "" +"Не знайдено сертифікат із серійним номером %(serial)s, виданий CA «%(ca)s»" + +msgid "7 is not a valid revocation reason" +msgstr "7 не є коректною причиною відкликання" + +msgid "Results should contain primary key attribute only (\"certificate\")" +msgstr "Результати мають містити лише атрибут основного ключа («сертифікат»)" + +#, python-format +msgid "%(count)d certificate matched" +msgid_plural "%(count)d certificates matched" +msgstr[0] "встановлено відповідність %(count)d сертифіката" +msgstr[1] "встановлено відповідність %(count)d сертифікатів" +msgstr[2] "встановлено відповідність %(count)d сертифікатів" + +#, python-format +msgid "Search for certificates with these owner %s." +msgstr "Шукати сертифікати із вказаними %s власника." + +#, python-format +msgid "Search for certificates without these owner %s." +msgstr "Шукати сертифікати, власником яких не є %s." msgid "" "\n" @@ -24971,21 +26794,6 @@ msgstr[0] "встановлено відповідність %(count)d груп msgstr[1] "встановлено відповідність %(count)d груп" msgstr[2] "встановлено відповідність %(count)d груп" -msgid "" -"Cannot perform external member validation without Samba 4 support installed. " -"Make sure you have installed server-trust-ad sub-package of IPA on the server" -msgstr "" -"Виконати дію з перевірки зовнішніх учасників без встановленої підтримки " -"Samba 4 неможливо. Переконайтеся, що вами встановлено на сервері підпакунок " -"IPA server-trust-ad." - -msgid "" -"Cannot perform join operation without own domain configured. Make sure you " -"have run ipa-adtrust-install on the IPA server first" -msgstr "" -"Без налаштовування власного домену не можна виконувати дію з приєднання. " -"Спочатку запустіть ipa-adtrust-install на сервері IPA." - #, python-format msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "Від’єднати групу «%(value)s» від користувача «%(value)s»" @@ -24999,1090 +26807,62 @@ msgstr "заборонено змінювати записи груп" msgid "Not a managed group" msgstr "Не є керованою групою" -msgid "Realm domains" -msgstr "Домени області" - -#, python-format -msgid "" -"DNS zone for each realmdomain must contain SOA or NS records. No records " -"found for: %s" -msgstr "" -"Запис зони DNS для кожного realmdomain має містити записи SOA або NS. Для %s " -"таких записів не виявлено" - -#, python-format -msgid "The following domains do not belong to this realm: %(domains)s" -msgstr "Вказані нижче домени не належать до цієї області: %(domains)s" - -#, python-format -msgid "" -"The realm of the following domains could not be detected: %(domains)s. If " -"these are domains that belong to the this realm, please create a _kerberos " -"TXT record containing \"%(realm)s\" in each of them." -msgstr "" -"Не вдалося виявити область таких доменів: %(domains)s. Якщо ці домени " -"належать до цієї області, будь ласка, створіть запис TXT _kerberos, що " -"міститиме «%(realm)s», на кожному з них." - -msgid "" -"The --domain option cannot be used together with --add-domain or --del-" -"domain. Use --domain to specify the whole realm domain list explicitly, to " -"add/remove individual domains, use --add-domain/del-domain." -msgstr "" -"Параметр --domain не можна використовувати разом із параметрами --add-domain " -"і --del-domain. Скористайтеся параметром --domain для визначення усього " -"списку доменів області явним чином. Щоб додати або вилучити окремі домени, " -"скористайтеся параметрами --add-domain/del-domain." - -msgid "IPA server domain cannot be omitted" -msgstr "Домен сервера IPA не можна пропускати" - -msgid "IPA server domain cannot be deleted" -msgstr "Домен сервера IPA не можна вилучати" - -#, python-format -msgid "Changed password for \"%(value)s\"" -msgstr "Змінити пароль «%(value)s»" - msgid "" "\n" -"IPA servers\n" -msgstr "" +"Sudo Commands\n" "\n" -"Сервери IPA\n" - -msgid "" -"\n" -"Get information about installed IPA servers.\n" -msgstr "" -"\n" -"Отримати дані щодо встановлених серверів IPA.\n" - -msgid "" -"\n" -" Find all servers:\n" -" ipa server-find\n" -msgstr "" -"\n" -" Знайти усі сервери:\n" -" ipa server-find\n" - -msgid "" -"\n" -" Show specific server:\n" -" ipa server-show ipa.example.com\n" -msgstr "" -"\n" -" Показати вказаний сервер:\n" -" ipa server-show ipa.example.com\n" - -msgid "server" -msgstr "сервер" - -msgid "servers" -msgstr "сервери" - -msgid "IPA Servers" -msgstr "Сервери IPA" - -msgid "Server location" -msgstr "Місце сервера" - -msgid "Service weight" -msgstr "Вага служб" - -msgid "Weight for server services" -msgstr "Вага служб сервера" - -msgid "Service relative weight" -msgstr "Відносна вага служб" - -msgid "Relative weight for server services (counts per location)" -msgstr "Відносна вага служб для сервера (обчислюється для окремого місця)" - -msgid "Enabled server roles" -msgstr "Увімкнені ролі сервера" - -msgid "List of enabled roles" -msgstr "Список усіх увімкнених ролей" - -msgid "Modify information about an IPA server." -msgstr "Змінити дані щодо сервера IPA." - -#, python-format -msgid "Modified IPA server \"%(value)s\"" -msgstr "Змінено запис сервера IPA «%(value)s»" - -#, python-format -msgid "%(count)d IPA server matched" -msgid_plural "%(count)d IPA servers matched" -msgstr[0] "встановлено відповідність %(count)d сервера IPA" -msgstr[1] "встановлено відповідність %(count)d серверів IPA" -msgstr[2] "встановлено відповідність %(count)d серверів IPA" - -#, python-format -msgid "Deleted IPA server \"%(value)s\"" -msgstr "Вилучено сервер IPA «%(value)s»" - -msgid "Ignore topology errors" -msgstr "Ігнорувати помилки топології" - -msgid "Ignore topology connectivity problems after removal" -msgstr "Ігнорувати проблеми із з’єднуваністю топології після вилучення" - -msgid "Ignore check for last remaining CA or DNS server" -msgstr "" -"Ігнорувати перевірку на те, чи є сервер, який вилучають, останнім сервером " -"CA або DNS" - -msgid "Skip a check whether the last CA master or DNS server is removed" -msgstr "" -"Пропустити перевірку того, чи вилучено останній основний сервер CA або " -"сервер DNS" - -msgid "Force server removal" -msgstr "Примусове вилучення сервера" - -msgid "Force server removal even if it does not exist" -msgstr "Примусове вилучення сервера, навіть якщо його не існує" - -msgid "" -"Replica is active DNSSEC key master. Uninstall could break your DNS system. " -"Please disable or replace DNSSEC key master first." -msgstr "" -"Репліка є активним основним сервером ключів DNSSEC. Вилучення може зашкодити " -"вашій системі DNS. Будь ласка, спочатку вимкніть або замініть основний " -"сервер ключів DNSSEC." - -msgid "Deleting this server will leave your installation without a DNS." -msgstr "" -"Вилучення цього запису сервера залишить вашу встановлену систему без DNS." - -msgid "" -"Deleting this server is not allowed as it would leave your installation " -"without a KRA." -msgstr "" -"Вилучення цього сервера заборонено, оскільки воно залишить вашу встановлену " -"систему без KRA." - -msgid "" -"Deleting this server is not allowed as it would leave your installation " -"without a CA." -msgstr "" -"Вилучення цього сервера заборонено, оскільки воно залишить вашу встановлену " -"систему без CA." - -msgid "Ignoring these warnings and proceeding with removal" -msgstr "Ігноруємо ці попередження і продовжуємо процедуру вилучення" - -#, python-format -msgid "" -"Failed to clean memberPrincipal %(principal)s from s4u2proxy entry %(dn)s: " -"%(err)s" -msgstr "" -"Не вдалося вилучити %(principal)s memberPrincipal із запису s4u2proxy " -"%(dn)s: %(err)s" - -#, python-format -msgid "Failed to clean up DNA hostname entries for %(master)s: %(err)s" -msgstr "Не вдалося вилучити записи назви вузла DNA для %(master)s: %(err)s" - -#, python-format -msgid "Failed to remove server %(master)s from server list: %(err)s" -msgstr "" -"Не вдалося вилучити запис сервера %(master)s зі списку серверів: %(err)s" - -#, python-format -msgid "Failed to clean up Custodia keys for %(master)s: %(err)s" -msgstr "Не вдалося вилучити ключі Custodia для %(master)s: %(err)s" - -#, python-format -msgid "Failed to cleanup server principals/keys: %(err)s" -msgstr "Не вдалося вилучити реєстраційні запис або ключі сервера: %(err)s" - -#, python-format -msgid "Failed to cleanup %(hostname)s DNS entries: %(err)s" -msgstr "Не вдалося вилучити записи DNS %(hostname)s: %(err)s" - -msgid "You may need to manually remove them from the tree" -msgstr "Ймовірно, вам доведеться вилучити їх із ієрархії вручну" - -#, python-format -msgid "Forcing removal of %(hostname)s" -msgstr "Примусово вилучаємо %(hostname)s" - -msgid "Ignoring topology connectivity errors." -msgstr "Ігноруємо помилки із з’єднуваністю топології." - -msgid "Server has already been deleted" -msgstr "Запис сервера вже вилучено" - -msgid "Agreements deleted" -msgstr "Угоди вилучено" - -msgid "Following segments were not deleted:" -msgstr "Вказані нижче сегменти не було вилучено:" - -#, python-format -msgid "must be \"%s\"" -msgstr "має бути «%s»" - -msgid "not allowed to perform server connection check" -msgstr "не дозволено виконувати перевірку з’єднання сервера" - -msgid "" -"\n" -"IPA locations\n" -msgstr "" -"\n" -"Місця IPA\n" - -msgid "" -"\n" -"Manipulate DNS locations\n" -msgstr "" -"\n" -"Робота з місцями DNS\n" - -msgid "" -"\n" -" Find all locations:\n" -" ipa location-find\n" -msgstr "" -"\n" -" Знайти усі місця:\n" -" ipa location-find\n" - -msgid "" -"\n" -" Show specific location:\n" -" ipa location-show location\n" -msgstr "" -"\n" -" Показати певне місце:\n" -" ipa location-show location\n" - -msgid "" -"\n" -" Add location:\n" -" ipa location-add location --description 'My location'\n" -msgstr "" -"\n" -" Додати запис місця:\n" -" ipa location-add location --description 'My location'\n" - -msgid "" -"\n" -" Delete location:\n" -" ipa location-del location\n" -msgstr "" -"\n" -" Вилучити запис місця:\n" -" ipa location-del location\n" - -msgid "location" -msgstr "місце" - -msgid "locations" -msgstr "місця" - -msgid "IPA Locations" -msgstr "Місця IPA" - -msgid "IPA Location" -msgstr "Місце IPA" - -msgid "Location name" -msgstr "Назва місця" - -msgid "IPA location name" -msgstr "Назва місця IPA" - -msgid "IPA Location description" -msgstr "Опис місця IPA" - -msgid "Servers" -msgstr "Сервери" - -msgid "Servers that belongs to the IPA location" -msgstr "Сервери, що належать до запису місця IPA" - -msgid "Advertised by servers" -msgstr "Повідомлено серверами" - -msgid "List of servers which advertise the given location" -msgstr "Вивести список серверів, які повідомляють про вказане місце" - -msgid "Add a new IPA location." -msgstr "Додати новий запис місця IPA." - -#, python-format -msgid "Added IPA location \"%(value)s\"" -msgstr "Додано запис місця IPA «%(value)s»" - -msgid "Delete an IPA location." -msgstr "Вилучити місце IPA." - -#, python-format -msgid "Deleted IPA location \"%(value)s\"" -msgstr "Вилучено запис місця IPA «%(value)s»" - -msgid "Modify information about an IPA location." -msgstr "Змінити дані щодо місця IPA." - -#, python-format -msgid "Modified IPA location \"%(value)s\"" -msgstr "Змінено запис місця IPA «%(value)s»" - -msgid "Search for IPA locations." -msgstr "Шукати місця IPA." - -#, python-format -msgid "%(count)d IPA location matched" -msgid_plural "%(count)d IPA locations matched" -msgstr[0] "встановлено відповідність %(count)d місця IPA" -msgstr[1] "встановлено відповідність %(count)d місць IPA" -msgstr[2] "встановлено відповідність %(count)d місць IPA" - -msgid "Display information about an IPA location." -msgstr "Показати дані щодо місця IPA." - -msgid "Servers in location" -msgstr "Сервери у місці" - -msgid "" -"\n" -"RADIUS Proxy Servers\n" -msgstr "" -"\n" -"Проксі-сервери RADIUS\n" - -msgid "" -"\n" -"Manage RADIUS Proxy Servers.\n" -msgstr "" -"\n" -"Керування проксі-серверами RADIUS.\n" - -msgid "" -"\n" -"IPA supports the use of an external RADIUS proxy server for krb5 OTP\n" -"authentications. This permits a great deal of flexibility when\n" -"integrating with third-party authentication services.\n" -msgstr "" -"\n" -"У IPA передбачено підтримку зовнішнього проксі-сервера RADIUS для\n" -"виконання розпізнавання OTP krb5. Це надає системі значної гнучкості\n" -"з метою інтеграції зі сторонніми службами розпізнавання.\n" - -msgid "" -"\n" -" Add a new server:\n" -" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" -msgstr "" -"\n" -" Додати новий сервер:\n" -" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" - -msgid "" -"\n" -" Find all servers whose entries include the string \"example.com\":\n" -" ipa radiusproxy-find example.com\n" -msgstr "" -"\n" -" Знайти усі сервери, чиї запис містять рядок «example.com»:\n" -" ipa radiusproxy-find example.com\n" - -msgid "" -"\n" -" Examine the configuration:\n" -" ipa radiusproxy-show MyRADIUS\n" -msgstr "" -"\n" -" Перевірити налаштування:\n" -" ipa radiusproxy-show MyRADIUS\n" - -msgid "" -"\n" -" Change the secret:\n" -" ipa radiusproxy-mod MyRADIUS --secret\n" -msgstr "" -"\n" -" Змінити реєстраційні дані:\n" -" ipa radiusproxy-mod MyRADIUS --secret\n" - -msgid "" -"\n" -" Delete a configuration:\n" -" ipa radiusproxy-del MyRADIUS\n" -msgstr "" -"\n" -" Вилучити налаштування:\n" -" ipa radiusproxy-del MyRADIUS\n" - -msgid "invalid attribute name" -msgstr "некоректна назва атрибута" - -msgid "invalid port number" -msgstr "некоректний номер порту" - -msgid "RADIUS proxy server" -msgstr "Проксі-сервер RADIUS" - -msgid "RADIUS proxy servers" -msgstr "Проксі-сервери RADIUS" - -msgid "RADIUS Servers" -msgstr "Сервери RADIUS" - -msgid "RADIUS Server" -msgstr "Сервер RADIUS" - -#, python-format -msgid "Added RADIUS proxy server \"%(value)s\"" -msgstr "Додано проксі-сервер RADIUS «%(value)s»" - -#, python-format -msgid "Deleted RADIUS proxy server \"%(value)s\"" -msgstr "Вилучити проксі-сервер RADIUS «%(value)s»" - -#, python-format -msgid "Modified RADIUS proxy server \"%(value)s\"" -msgstr "Змінено запис проксі-сервера RADIUS «%(value)s»" - -#, python-format -msgid "%(count)d RADIUS proxy server matched" -msgid_plural "%(count)d RADIUS proxy servers matched" -msgstr[0] "Встановлено відповідність %(count)d проксі-сервера RADIUS" -msgstr[1] "Встановлено відповідність %(count)d проксі-серверів RADIUS" -msgstr[2] "Встановлено відповідність %(count)d проксі-серверів RADIUS" - -#, python-format -msgid "" -"Insufficient 'write' privilege to the 'krbLastPwdChange' attribute of entry " -"'%s'." -msgstr "" -"Недостатні привілеї «write» до атрибута «krbLastPwdChange» запису «%s»." - -msgid "" -"\n" -"Manage Certificate Profiles\n" -"\n" -"Certificate Profiles are used by Certificate Authority (CA) in the signing " -"of\n" -"certificates to determine if a Certificate Signing Request (CSR) is " -"acceptable,\n" -"and if so what features and extensions will be present on the certificate.\n" -"\n" -"The Certificate Profile format is the property-list format understood by " -"the\n" -"Dogtag or Red Hat Certificate System CA.\n" -"\n" -"PROFILE ID SYNTAX:\n" -"\n" -"A Profile ID is a string without spaces or punctuation starting with a " -"letter\n" -"and followed by a sequence of letters, digits or underscore (\"_\").\n" +"Commands used as building blocks for sudo\n" "\n" "EXAMPLES:\n" "\n" -" Import a profile that will not store issued certificates:\n" -" ipa certprofile-import ShortLivedUserCert \\\n" -" --file UserCert.profile --desc \"User Certificates\" \\\n" -" --store=false\n" +" Create a new command\n" +" ipa sudocmd-add --desc='For reading log files' /usr/bin/less\n" "\n" -" Delete a certificate profile:\n" -" ipa certprofile-del ShortLivedUserCert\n" -"\n" -" Show information about a profile:\n" -" ipa certprofile-show ShortLivedUserCert\n" -"\n" -" Save profile configuration to a file:\n" -" ipa certprofile-show caIPAserviceCert --out caIPAserviceCert.cfg\n" -"\n" -" Search for profiles that do not store certificates:\n" -" ipa certprofile-find --store=false\n" -"\n" -"PROFILE CONFIGURATION FORMAT:\n" -"\n" -"The profile configuration format is the raw property-list format\n" -"used by Dogtag Certificate System. The XML format is not supported.\n" -"\n" -"The following restrictions apply to profiles managed by FreeIPA:\n" -"\n" -"- When importing a profile the \"profileId\" field, if present, must\n" -" match the ID given on the command line.\n" -"\n" -"- The \"classId\" field must be set to \"caEnrollImpl\"\n" -"\n" -"- The \"auth.instance_id\" field must be set to \"raCertAuth\"\n" -"\n" -"- The \"certReqInputImpl\" input class and \"certOutputImpl\" output\n" -" class must be used.\n" +" Remove a command\n" +" ipa sudocmd-del /usr/bin/less\n" "\n" msgstr "" "\n" -"Керування профілями сертифікатів\n" +"Команди sudo\n" "\n" -"Профілі сертифікатів використовуються службами сертифікації (CA) під час\n" -"підписування сертифікатів для визначення того, чи є прийнятним запит на\n" -"підписування сертифіката (CSR), і, якщо це так, визначення можливостей\n" -"і розширень, які буде надано сертифікатом.\n" -"\n" -"Форматом профілю сертифікатів є список значень, які може обробляти\n" -"Dogtag або система сертифікації служби сертифікації Red Hat.\n" -"\n" -"СИНТАКСИС ІДЕНТИФІКАТОРА ПРОФІЛЮ:\n" -"\n" -"Ідентифікатор профілю — рядок без пробілів і символів пунктуації,\n" -"що починається з літери і складається з послідовності літер, цифр, та " -"символів підкреслювання («_»).\n" +"Команди, використані як будівельні блоки для sudo\n" "\n" "ПРИКЛАДИ:\n" "\n" -" Імпортувати профіль, у якому не зберігатимуться видані сертифікати:\n" -" ipa certprofile-import ShortLivedUserCert \\\n" -" --file UserCert.profile --summary \"User Certificates\" \\\n" -" --store=false\n" +" Створення запису команди\n" +" ipa sudocmd-add --desc='Читання файлів журналу' /usr/bin/less\n" "\n" -" Вилучити профіль сертифікатів:\n" -" ipa certprofile-del ShortLivedUserCert\n" -"\n" -" Показати дані щодо профілю:\n" -" ipa certprofile-show ShortLivedUserCert\n" -"\n" -" Зберегти налаштування профілю до файла:\n" -" ipa certprofile-show caIPAserviceCert --out caIPAserviceCert.cfg\n" -"\n" -" Шукати профілі, у яких не зберігаються сертифікати:\n" -" ipa certprofile-find --store=false\n" -"\n" -"ФОРМАТ НАЛАШТУВАНЬ ПРОФІЛЮ:\n" -"\n" -"Налаштування профілю зберігаються у вигляді простого списку\n" -"властивостей, що використовується системою сертифікації Dogtag.\n" -"Підтримки формату XML не передбачено.\n" -"\n" -"Профілів, які керуються FreeIPA, стосуються такі обмеження:\n" -"\n" -"- Під час імпортування профілю поле «profileId», якщо таке є, має\n" -" містити значення, що збігається з ідентифікатором, вказаним у рядку " -"команди.\n" -"\n" -"- Значенням поля «classId» має бути «caEnrollImpl»\n" -"\n" -"- Значенням поля «auth.instance_id» має бути «raCertAuth»\n" -"\n" -"- Має бути використано вхідний клас «certReqInputImpl» і вихідний\n" -" клас «certOutputImpl».\n" +" Вилучення команди\n" +" ipa sudocmd-del /usr/bin/less\n" "\n" -msgid "CA is not configured" -msgstr "CA не налаштовано" +msgid "sudo command" +msgstr "команда sudo" -msgid "invalid Profile ID" -msgstr "некоректний ідентифікатор профілю" +msgid "sudo commands" +msgstr "команди sudo" -msgid "Certificate Profile" -msgstr "Профіль сертифікатів" - -msgid "Certificate Profiles" -msgstr "Профілі сертифікатів" - -msgid "Profile configuration" -msgstr "Налаштування профілю" +msgid "Sudo Commands" +msgstr "Команди sudo" #, python-format -msgid "%(count)d profile matched" -msgid_plural "%(count)d profiles matched" -msgstr[0] "встановлено відповідність %(count)d профілю" -msgstr[1] "встановлено відповідність %(count)d профілів" -msgstr[2] "встановлено відповідність %(count)d профілів" +msgid "Added Sudo Command \"%(value)s\"" +msgstr "Додано команду sudo «%(value)s»" #, python-format -msgid "Imported profile \"%(value)s\"" -msgstr "Імпортовано профіль «%(value)s»" +msgid "Deleted Sudo Command \"%(value)s\"" +msgstr "Вилучено команду sudo «%(value)s»" #, python-format -msgid "Profile ID '%(cli_value)s' does not match profile data '%(file_value)s'" -msgstr "" -"Ідентифікатор профілю, «%(cli_value)s», не збігається із вказаним у даних " -"профілю, «%(file_value)s»" +msgid "Modified Sudo Command \"%(value)s\"" +msgstr "Змінено команду sudo «%(value)s»" #, python-format -msgid "Deleted profile \"%(value)s\"" -msgstr "Вилучено профіль «%(value)s»" - -#, python-format -msgid "Predefined profile '%(profile_id)s' cannot be deleted" -msgstr "Стандартний профіль «%(profile_id)s» не може бути вилучено" - -#, python-format -msgid "Modified Certificate Profile \"%(value)s\"" -msgstr "Змінено профіль сертифікатів «%(value)s»" - -msgid "Certificate profiles cannot be renamed" -msgstr "Профілі сертифікатів не можна перейменовувати" - -msgid "Insufficient privilege to modify a certificate profile." -msgstr "Недостатні права доступу для внесення змін до профілю сертифікації." - -msgid "Role" -msgstr "Роль" - -#, python-format -msgid "Added role \"%(value)s\"" -msgstr "Додано роль «%(value)s»" - -#, python-format -msgid "Deleted role \"%(value)s\"" -msgstr "Вилучено роль «%(value)s»" - -#, python-format -msgid "Modified role \"%(value)s\"" -msgstr "Змінено роль «%(value)s»" - -#, 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 ролей" - -msgid "" -"\n" -"API Schema\n" -msgstr "" -"\n" -"Схема API\n" - -msgid "" -"\n" -"Provides API introspection capabilities.\n" -msgstr "" -"\n" -"Надає можливості інтроспекції програмного інтерфейсу.\n" - -msgid "" -"\n" -" Show user-find details:\n" -" ipa command-show user-find\n" -msgstr "" -"\n" -" Показати подробиці щодо user-find:\n" -" ipa command-show user-find\n" - -msgid "" -"\n" -" Find user-find parameters:\n" -" ipa param-find user-find\n" -msgstr "" -"\n" -" Знайти параметри user-find:\n" -" ipa param-find user-find\n" - -msgid "Documentation" -msgstr "Документація" - -msgid "Exclude from" -msgstr "Виключити з" - -msgid "Include in" -msgstr "Включити до" - -msgid "Help topic" -msgstr "Тема довідки" - -msgid "Parameters" -msgstr "Параметри" - -msgid "Method of" -msgstr "Метод" - -msgid "Method name" -msgstr "Назва методу" - -msgid "Display information about a command." -msgstr "Показати інформацію щодо команди." - -msgid "Search for commands." -msgstr "Шукати команди." - -msgid "Display information about a class." -msgstr "Показати дані щодо класу." - -msgid "Search for classes." -msgstr "Шукати класи." - -msgid "Display information about a help topic." -msgstr "Показати дані щодо теми довідки." - -msgid "Search for help topics." -msgstr "Шукати у темах довідки." - -msgid "Required" -msgstr "Обов’язкове" - -msgid "Multi-value" -msgstr "Багато значень" - -msgid "Always ask" -msgstr "Завжди питати" - -msgid "CLI metavar" -msgstr "Метазмінна CLI" - -msgid "CLI name" -msgstr "Назва CLI" - -msgid "Confirm (password)" -msgstr "Підтвердження (пароль)" - -msgid "Default" -msgstr "Типовий" - -msgid "Default from" -msgstr "Типовий з" - -msgid "Label" -msgstr "Мітка" - -msgid "Convert on server" -msgstr "Перетворити на сервері" - -msgid "Option group" -msgstr "Група варіантів" - -msgid "Sensitive" -msgstr "З врахуванням" - -msgid "Positional argument" -msgstr "Позиційний аргумент" - -msgid "Display information about a command parameter." -msgstr "Показати інформацію щодо параметра команди." - -msgid "Search command parameters." -msgstr "Шукати параметри команди." - -msgid "Display information about a command output." -msgstr "Показати інформацію щодо даних, які виводить команда." - -msgid "Search for command outputs." -msgstr "Шукати за даними, які виводить команда." - -msgid "Fingerprint of schema cached by client" -msgstr "Відбиток схеми, кешований клієнтом" - -msgid "" -"\n" -"Return information about currently authenticated identity\n" -"\n" -"Who am I command returns information on how to get\n" -"more details about the identity authenticated for this\n" -"request. The information includes:\n" -"\n" -" * type of object\n" -" * command to retrieve details of the object\n" -" * arguments and options to pass to the command\n" -"\n" -"The information is returned as a dictionary. Examples below use\n" -"'key: value' output for illustrative purposes.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Look up as IPA user:\n" -" kinit admin\n" -" ipa console\n" -" >> api.Command.whoami()\n" -" ------------------------------------------\n" -" object: user\n" -" command: user_show/1\n" -" arguments: admin\n" -" ------------------------------------------\n" -"\n" -" Look up as a user from a trusted domain:\n" -" kinit user@AD.DOMAIN\n" -" ipa console\n" -" >> api.Command.whoami()\n" -" ------------------------------------------\n" -" object: idoverrideuser\n" -" command: idoverrideuser_show/1\n" -" arguments: ('default trust view', 'user@ad.domain')\n" -" ------------------------------------------\n" -"\n" -" Look up as a host:\n" -" kinit -k\n" -" ipa console\n" -" >> api.Command.whoami()\n" -" ------------------------------------------\n" -" object: host\n" -" command: host_show/1\n" -" arguments: ipa.example.com\n" -" ------------------------------------------\n" -"\n" -" Look up as a Kerberos service:\n" -" kinit -k -t /path/to/keytab HTTP/ipa.example.com\n" -" ipa console\n" -" >> api.Command.whoami()\n" -" ------------------------------------------\n" -" object: service\n" -" command: service_show/1\n" -" arguments: HTTP/ipa.example.com\n" -" ------------------------------------------\n" -msgstr "" -"\n" -"Повернути дані щодо поточного розпізнаного профілю\n" -"\n" -"Команда визначення профілю повертає дані щодо того, як\n" -"отримати більше даних про профіль, розпізнаний для\n" -"цього запиту. Дані:\n" -"\n" -" * тип об’єкта\n" -" * команда для отримання подробиць щодо об’єкта\n" -" * аргументи та параметри, які слід передати команді\n" -"\n" -"Дані повертаються у форматі словника. Нижче, як приклад,\n" -"наведено виведення у форматі «ключ: значення».\n" -"\n" -"Приклади:\n" -"\n" -" Пошук від імені користувача IPA:\n" -" kinit admin\n" -" ipa console\n" -" >> api.Command.whoami()\n" -" ------------------------------------------\n" -" object: user\n" -" command: user_show/1\n" -" arguments: admin\n" -" ------------------------------------------\n" -"\n" -" Пошук від імені користувача довіреного домену:\n" -" kinit user@AD.DOMAIN\n" -" ipa console\n" -" >> api.Command.whoami()\n" -" ------------------------------------------\n" -" object: idoverrideuser\n" -" command: idoverrideuser_show/1\n" -" arguments: ('default trust view', 'user@ad.domain')\n" -" ------------------------------------------\n" -"\n" -" Пошук від імені вузла:\n" -" kinit -k\n" -" ipa console\n" -" >> api.Command.whoami()\n" -" ------------------------------------------\n" -" object: host\n" -" command: host_show/1\n" -" arguments: ipa.example.com\n" -" ------------------------------------------\n" -"\n" -" Пошук від імені служби Kerberos:\n" -" kinit -k -t /path/to/keytab HTTP/ipa.example.com\n" -" ipa console\n" -" >> api.Command.whoami()\n" -" ------------------------------------------\n" -" object: service\n" -" command: service_show/1\n" -" arguments: HTTP/ipa.example.com\n" -" ------------------------------------------\n" - -msgid "Describe currently authenticated identity." -msgstr "Описати поточний розпізнаний профіль." - -msgid "Object class name" -msgstr "Назва класу об’єктів" - -msgid "Function to get details" -msgstr "Функція, подробиці щодо якої слід отримати" - -msgid "Arguments to details function" -msgstr "Аргументи до функції details" - -msgid "Cannot query Directory Manager with API" -msgstr "" -"Не вдалося опитати засіб керування каталогом за допомогою програмного " -"інтерфейсу" - -msgid "OTP configuration options" -msgstr "Параметри налаштування OTP" - -msgid "OTP Configuration" -msgstr "Налаштування OTP" - -msgid "" -"\n" -"OTP Tokens\n" -msgstr "" -"\n" -"Жетони OTP\n" - -msgid "" -"\n" -"Manage OTP tokens.\n" -msgstr "" -"\n" -"Керування жетонами OTP.\n" - -msgid "" -"\n" -"IPA supports the use of OTP tokens for multi-factor authentication. This\n" -"code enables the management of OTP tokens.\n" -msgstr "" -"\n" -"У IPA передбачено підтримку використання жетонів OTP для багатофакторного " -"розпізнавання.\n" -"За допомогою цього коду уможливлюється керування жетонами OTP.\n" - -msgid "" -"\n" -" Add a new token:\n" -" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" -msgstr "" -"\n" -" Додати новий жетон:\n" -" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" - -msgid "" -"\n" -" Examine the token:\n" -" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" -msgstr "" -"\n" -" Перевірити жетон:\n" -" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" - -msgid "" -"\n" -" Change the vendor:\n" -" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" -"\"\n" -msgstr "" -"\n" -" Змінити постачальника:\n" -" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" -"\"\n" - -msgid "" -"\n" -" Delete a token:\n" -" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" -msgstr "" -"\n" -" Вилучити жетон:\n" -" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" - -msgid "OTP token" -msgstr "Жетон OTP" - -msgid "OTP tokens" -msgstr "Жетони OTP" - -msgid "OTP Tokens" -msgstr "Жетони OTP" - -msgid "OTP Token" -msgstr "Жетон OTP" - -msgid "URI" -msgstr "URI" - -#, python-format -msgid "Added OTP token \"%(value)s\"" -msgstr "Додано жетон OTP «%(value)s»" - -msgid "cannot be empty" -msgstr "не може бути порожнім" - -#, python-format -msgid "Deleted OTP token \"%(value)s\"" -msgstr "Вилучено жетон OTP «%(value)s»" - -#, python-format -msgid "Modified OTP token \"%(value)s\"" -msgstr "Змінено жетон OTP «%(value)s»" - -#, python-format -msgid "%(count)d OTP token matched" -msgid_plural "%(count)d OTP tokens matched" -msgstr[0] "встановлено відповідність %(count)d жетона OTP" -msgstr[1] "встановлено відповідність %(count)d жетони OTP" -msgstr[2] "встановлено відповідність %(count)d жетонів OTP" - -msgid "host groups" -msgstr "групи вузлів" - -msgid "Host Group" -msgstr "Група вузлів" - -#, python-format -msgid "Added hostgroup \"%(value)s\"" -msgstr "Додано групу вузлів «%(value)s»" - -#, python-format -msgid "" -"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " -"common namespace" -msgstr "" -"Мережеву групу з назвою «%s» вже створено. Групи вузлів і мережеві групи " -"мають спільний простір назв." - -#, python-format -msgid "Deleted hostgroup \"%(value)s\"" -msgstr "Вилучено групу вузлів «%(value)s»" - -msgid "hostgroup" -msgstr "група вузлів" - -msgid "privileged hostgroup" -msgstr "привілейована група вузлів" - -#, python-format -msgid "Modified hostgroup \"%(value)s\"" -msgstr "Змінено групу вузлів «%(value)s»" - -#, 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 груп вузлів" - -msgid "netgroups" -msgstr "мережеві групи" - -msgid "Netgroup" -msgstr "Мережева група" - -#, python-format -msgid "Added netgroup \"%(value)s\"" -msgstr "Додано групу мережеву групу «%(value)s»" - -#, python-format -msgid "" -"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " -"common namespace" -msgstr "" -"Група вузлів з назвою «%s» вже створено. Групи вузлів і мережеві групи мають " -"спільний простір назв." - -#, python-format -msgid "Deleted netgroup \"%(value)s\"" -msgstr "Вилучено мережеву групу «%(value)s»" - -#, python-format -msgid "Modified netgroup \"%(value)s\"" -msgstr "Змінено мережеву групу «%(value)s»" - -#, 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 груп" - -msgid "commands for controlling sudo configuration" -msgstr "команди керування налаштуванням sudo" +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" msgid "" "\n" @@ -27144,1632 +27924,916 @@ msgstr "Тестовий запуск" msgid "Do not update records only return expected records" msgstr "Не оновлювати записи, лише повернути список очікуваних записів" -msgid "The deny type has been deprecated." -msgstr "Тип «deny» вважається застарілим." - -msgid "HBAC rules" -msgstr "правила HBAC" - -msgid "HBAC Rules" -msgstr "Правила HBAC" - #, python-format -msgid "Added HBAC rule \"%(value)s\"" -msgstr "Додано правило HBAC «%(value)s»" +msgid "Changed password for \"%(value)s\"" +msgstr "Змінити пароль «%(value)s»" -#, python-format -msgid "Deleted HBAC rule \"%(value)s\"" -msgstr "Вилучено правило HBAC «%(value)s»" +#, python-brace-format +msgid "{role}: role not found" +msgstr "{role}: такої ролі не знайдено" -#, python-format -msgid "Modified HBAC rule \"%(value)s\"" -msgstr "Змінено правило HBAC «%(value)s»" +#, python-brace-format +msgid "{attr}: no such attribute" +msgstr "{attr}: немає такого атрибута" -#, 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" +msgid "A dictionary representing an LDAP entry" +msgstr "Словник, що відповідає запису LDAP" -#, python-format -msgid "Enabled HBAC rule \"%(value)s\"" -msgstr "Увімкнено правило HBAC «%(value)s»" +msgid "A list of LDAP entries" +msgstr "Список записів LDAP" -#, python-format -msgid "Disabled HBAC rule \"%(value)s\"" -msgstr "Вимкнено правило HBAC «%(value)s»" +msgid "All commands should at least have a result" +msgstr "Виконання всіх команд має призводити до якогось результату" -msgid "Access time" -msgstr "Час доступу" - -msgid "pyhbac is not installed." -msgstr "pyhbac не встановлено." - -msgid "" -"\n" -"Simulate use of Host-based access controls\n" -"\n" -"HBAC rules control who can access what services on what hosts.\n" -"You can use HBAC to control which users or groups can access a service,\n" -"or group of services, on a target host.\n" -"\n" -"Since applying HBAC rules implies use of a production environment,\n" -"this plugin aims to provide simulation of HBAC rules evaluation without\n" -"having access to the production environment.\n" -"\n" -" Test user coming to a service on a named host against\n" -" existing enabled rules.\n" -"\n" -" ipa hbactest --user= --host= --service=\n" -" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" -" [--sizelimit= ]\n" -"\n" -" --user, --host, and --service are mandatory, others are optional.\n" -"\n" -" If --rules is specified simulate enabling of the specified rules and test\n" -" the login of the user using only these rules.\n" -"\n" -" If --enabled is specified, all enabled HBAC rules will be added to " -"simulation\n" -"\n" -" If --disabled is specified, all disabled HBAC rules will be added to " -"simulation\n" -"\n" -" If --nodetail is specified, do not return information about rules matched/" -"not matched.\n" -"\n" -" If both --rules and --enabled are specified, apply simulation to --rules " -"_and_\n" -" all IPA enabled rules.\n" -"\n" -" If no --rules specified, simulation is run against all IPA enabled rules.\n" -" By default there is a IPA-wide limit to number of entries fetched, you can " -"change it\n" -" with --sizelimit option.\n" -"\n" -"EXAMPLES:\n" -"\n" -" 1. Use all enabled HBAC rules in IPA database to simulate:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -" Matched rules: allow_all\n" -"\n" -" 2. Disable detailed summary of how rules were applied:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --nodetail\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -"\n" -" 3. Test explicitly specified HBAC rules:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" -" --rules=myrule --rules=my-second-rule\n" -" ---------------------\n" -" Access granted: False\n" -" ---------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: myrule\n" -"\n" -" 4. Use all enabled HBAC rules in IPA database + explicitly specified " -"rules:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" -" --rules=myrule --rules=my-second-rule --enabled\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -" Matched rules: allow_all\n" -"\n" -" 5. Test all disabled HBAC rules in IPA database:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --disabled\n" -" ---------------------\n" -" Access granted: False\n" -" ---------------------\n" -" Not matched rules: new-rule\n" -"\n" -" 6. Test all disabled HBAC rules in IPA database + explicitly specified " -"rules:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" -" --rules=myrule --rules=my-second-rule --disabled\n" -" ---------------------\n" -" Access granted: False\n" -" ---------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -"\n" -" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" -" --enabled --disabled\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -" Not matched rules: new-rule\n" -" Matched rules: allow_all\n" -"\n" -"\n" -"HBACTEST AND TRUSTED DOMAINS\n" -"\n" -"When an external trusted domain is configured in IPA, HBAC rules are also " -"applied\n" -"on users accessing IPA resources from the trusted domain. Trusted domain " -"users and\n" -"groups (and their SIDs) can be then assigned to external groups which can " -"be\n" -"members of POSIX groups in IPA which can be used in HBAC rules and thus " -"allowing\n" -"access to resources protected by the HBAC system.\n" -"\n" -"hbactest plugin is capable of testing access for both local IPA users and " -"users\n" -"from the trusted domains, either by a fully qualified user name or by user " -"SID.\n" -"Such user names need to have a trusted domain specified as a short name\n" -"(DOMAIN\\Administrator) or with a user principal name (UPN), " -"Administrator@ad.test.\n" -"\n" -"Please note that hbactest executed with a trusted domain user as --user " -"parameter\n" -"can be only run by members of \"trust admins\" group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" 1. Test if a user from a trusted domain specified by its shortname " -"matches any\n" -" rule:\n" -"\n" -" $ ipa hbactest --user 'DOMAIN\\Administrator' --host `hostname` --" -"service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 2. Test if a user from a trusted domain specified by its domain name " -"matches\n" -" any rule:\n" -"\n" -" $ ipa hbactest --user 'Administrator@domain.com' --host `hostname` --" -"service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 3. Test if a user from a trusted domain specified by its SID matches any " -"rule:\n" -"\n" -" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n" -" --host `hostname` --service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 4. Test if other user from a trusted domain specified by its SID matches " -"any rule:\n" -"\n" -" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-1203 \\\n" -" --host `hostname` --service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Not matched rules: can_login\n" -"\n" -" 5. Test if other user from a trusted domain specified by its shortname " -"matches\n" -" any rule:\n" -"\n" -" $ ipa hbactest --user 'DOMAIN\\Otheruser' --host `hostname` --service " -"sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Not matched rules: can_login\n" -msgstr "" -"\n" -"Імітація використання керування доступом на основі вузлів (HBAC)\n" -"\n" -"Правила HBAC керують тим, хто може отримувати доступ до певних служб на\n" -"певних вузлах.\n" -"Ви можете скористатися HBAC для керування тим, які користувачі або групи\n" -"на початковому вузлі можуть отримувати доступ до служби або групи служб\n" -"на вузлі призначення\n" -"\n" -"Оскільки застосування правил HBAC передбачає використання робочого\n" -"середовища, це додаток призначено для імітації обробки правил HBAC без\n" -"доступу до реального середовища\n" -"\n" -" Перевірити відповідність користувача з початкового вузла до служби на " -"іменованому\n" -" вузлі правилам уможливлення доступу.\n" -"\n" -" ipa hbactest --user= --host= --service=\n" -" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" -" [--sizelimit= ]\n" -"\n" -" --user, --host і --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 --host=bar --service=sshd --nodetail\n" -" --------------------\n" -" Надано доступ: Так\n" -" --------------------\n" -"\n" -" 3. Перевірити явно вказані правила HBAC:\n" -" $ ipa hbactest --user=a1a --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 --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 --host=bar --service=sshd --disabled\n" -" ---------------------\n" -" Надано доступ: Ні\n" -" ---------------------\n" -" невідповідне: new-rule\n" -"\n" -" 6. Перевірка всіх вимкнених правил HBAC у базі даних IPA + явно вказані " -"правила:\n" -" $ ipa hbactest --user=a1a --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 --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" -"\n" -"HBACTEST І ДОВІРЕНІ ДОМЕНИ\n" -"\n" -"Якщо у IPA налаштовано зовнішній довірений домен, правила HBAC також\n" -"застосовуються до користувачів, що отримують доступ до ресурсів IPA з\n" -"з довіреного домену. Після цього користувачі і групи довіреного домену\n" -"(на їхні SID) може бути прив’язано до зовнішніх груп, які можуть бути\n" -"учасниками груп POSIX у IPA. Такі прив’язки може бути використано у\n" -"правилах HBAC, отже уможливлення доступу до ресурсів, захищених системою\n" -"HBAC.\n" -"\n" -"Додаток hbactest здатен тестувати доступ як для локальних користувачів\n" -"IPA, так і користувачів з довірених доменів, як за повним іменем\n" -"користувача, так і за SID користувачів. У таких іменах користувачів\n" -"має бути вказано скорочено довірений домен (ДОМЕН\\Administrator) або\n" -"назву реєстраційного запису користувача (UPN), Administrator@ad.test.\n" -"\n" -"Будь ласка, зауважте, що виконувати hbactest з аргументом користувача\n" -"довіреного домену у параметрі --user можуть виконувати лише учасники\n" -"групи «trust admins».\n" -"\n" -"ПРИКЛАД:\n" -"\n" -" 1. Перевірити, чи відповідає користувач з довіреного домену,\n" -" вказаний за коротким іменем, якомусь правилу:\n" -"\n" -" $ ipa hbactest --user 'DOMAIN\\Administrator' --host `hostname` --" -"service sshd\n" -" --------------------\n" -" Надано доступ: Так\n" -" --------------------\n" -" Відповідні правила: allow_all\n" -" Відповідні правила: can_login\n" -"\n" -" 2. Перевірити, чи відповідає користувач з довіреного домену,\n" -" вказаний за назвою його домену, якомусь правилу:\n" -"\n" -" $ ipa hbactest --user 'Administrator@domain.com' --host `hostname` --" -"service sshd\n" -" --------------------\n" -" Надано доступ: Так\n" -" --------------------\n" -" Відповідні правила: allow_all\n" -" Невідповідні правила: can_login\n" -"\n" -" 3. Перевірити, чи відповідає користувач з довіреного домену\n" -" вказаний за SID, якомусь правилу:\n" -"\n" -" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n" -" --host `hostname` --service sshd\n" -" --------------------\n" -" Надано доступ: Так\n" -" --------------------\n" -" Відповідні правила: allow_all\n" -" Відповідні правила: can_login\n" -"\n" -" 4. Перевірити, чи відповідає інший користувач з довіреного домену,\n" -" вказаний за SID, якомусь правилу:\n" -"\n" -" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n" -" --host `hostname` --service sshd\n" -" --------------------\n" -" Надано доступ: Так\n" -" --------------------\n" -" Відповідні правила: allow_all\n" -" Відповідні правила: can_login\n" -"\n" -" 5. Перевірити, чи відповідає інший користувач з довіреного домену,\n" -" вказаний за коротким ім’ям, якомусь правилу:\n" -"\n" -" $ ipa hbactest --user 'DOMAIN\\Otheruser' --host `hostname` --service " -"sshd\n" -" --------------------\n" -" Надано доступ: Так\n" -" --------------------\n" -" Відповідні правила: allow_all\n" -" Невідповідні правила: can_login\n" - -msgid "Unresolved rules in --rules" -msgstr "Непридатні до обробки правила у --rules" - -msgid "" -"Cannot search in trusted domains without own domain configured. Make sure " -"you have run ipa-adtrust-install on the IPA server first" -msgstr "" -"Без налаштовування власного домену не можна виконувати пошук у довірених " -"доменах. Спочатку запустіть ipa-adtrust-install на сервері IPA." - -#, python-format -msgid "Access granted: %s" -msgstr "Надано доступ: %s" - -msgid "Allowed to Impersonate" -msgstr "Дозволено виконувати імперсонацію" - -msgid "Member principals" -msgstr "Реєстраційні записи учасників" - -msgid "Add target to a named service delegation." -msgstr "Додати ціль до делегування іменованої служби." - -msgid "Remove member from a named service delegation." -msgstr "Вилучити запис із делегування іменованої служби." - -msgid "service delegation rule" -msgstr "правило делегування служби" - -msgid "service delegation rules" -msgstr "правила делегування служб" - -msgid "Service delegation rules" -msgstr "Правила делегування служб" - -msgid "Service delegation rule" -msgstr "Правило делегування служб" - -#, python-format -msgid "Added service delegation rule \"%(value)s\"" -msgstr "Додано правило делегування служб «%(value)s»" - -#, python-format -msgid "Deleted service delegation \"%(value)s\"" -msgstr "Вилучено делегування служб «%(value)s»" - -msgid "privileged service delegation rule" -msgstr "привілейоване правило делегування служб" - -#, python-format -msgid "%(count)d service delegation rule matched" -msgid_plural "%(count)d service delegation rules matched" -msgstr[0] "встановлено відповідність %(count)d правила делегування служб" -msgstr[1] "встановлено відповідність %(count)d правил делегування служб" -msgstr[2] "встановлено відповідність %(count)d правил делегування служб" - -msgid "service delegation target" -msgstr "ціль делегування служб" - -msgid "service delegation targets" -msgstr "призначення делегування служб" - -msgid "Service delegation targets" -msgstr "Призначення делегування служб" - -msgid "Service delegation target" -msgstr "Ціль делегування служб" - -#, python-format -msgid "Added service delegation target \"%(value)s\"" -msgstr "Додано ціль делегування служб «%(value)s»" - -#, python-format -msgid "Deleted service delegation target \"%(value)s\"" -msgstr "Вилучено ціль делегування служб «%(value)s»" - -msgid "privileged service delegation target" -msgstr "привілейована ціль делегування служб" - -#, python-format -msgid "%(count)d service delegation target matched" -msgid_plural "%(count)d service delegation targets matched" -msgstr[0] "встановлено відповідність %(count)d призначення делегування служб" -msgstr[1] "встановлено відповідність %(count)d призначень делегування служб" -msgstr[2] "встановлено відповідність %(count)d призначень делегування служб" +msgid "Additional instructions:" +msgstr "Додаткові настанови:" #, python-format msgid "" -"cannot add permission \"%(perm)s\" with bindtype \"%(bindtype)s\" to a " -"privilege" +"API Version number was not sent, forward compatibility not guaranteed. " +"Assuming server's API version, %(server_version)s" msgstr "" -"неможливо додати права доступу «%(perm)s» з типом прив’язки «%(bindtype)s» " -"до привілею" +"Не було надіслано номера версії програмного інтерфейсу (API), сумісність з " +"найновішими версіями не можна гарантувати. Припускаємо таку версію API " +"сервера: %(server_version)s" -msgid "Privilege" -msgstr "Привілей" +msgid "" +"DNS forwarder semantics changed since IPA 4.0.\n" +"You may want to use forward zones (dnsforwardzone-*) instead.\n" +"For more details read the docs." +msgstr "" +"З виходом версії IPA 4.0 змінилася семантика засобу переспрямовування DNS.\n" +"Вам варто перейти на використання зон переспрямовування (dnsforwardzone-*).\n" +"Докладніше про це у документації." #, python-format -msgid "Added privilege \"%(value)s\"" -msgstr "Додано привілей «%(value)s»" +msgid "" +"DNSSEC support is experimental.\n" +"%(additional_info)s" +msgstr "" +"Підтримка DNSSEC є експериментальною.\n" +"%(additional_info)s" #, python-format -msgid "Deleted privilege \"%(value)s\"" -msgstr "Вилучено привілей «%(value)s»" +msgid "'%(option)s' option is deprecated. %(additional_info)s" +msgstr "Параметр «%(option)s» є застарілим. %(additional_info)s" #, python-format -msgid "Modified privilege \"%(value)s\"" -msgstr "Змінено привілей «%(value)s»" +msgid "" +"Semantic of %(label)s was changed. %(current_behavior)s\n" +"%(hint)s" +msgstr "" +"Семантику %(label)s було змінено. %(current_behavior)s\n" +"%(hint)s" #, 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 привілеїв" +msgid "DNS server %(server)s: %(error)s." +msgstr "Сервер DNS %(server)s: %(error)s." + +#, python-format +msgid "" +"DNS server %(server)s does not support DNSSEC: %(error)s.\n" +"If DNSSEC validation is enabled on IPA server(s), please disable it." +msgstr "" +"На сервері DNS %(server)s не передбачено підтримки DNSSEC: %(error)s.\n" +"Якщо на серверах IPA увімкнено перевірку DNSSEC, будь ласка, вимкніть її." + +#, python-format +msgid "" +"forward zone \"%(fwzone)s\" is not effective because of missing proper NS " +"delegation in authoritative zone \"%(authzone)s\". Please add NS record " +"\"%(ns_rec)s\" to parent zone \"%(authzone)s\"." +msgstr "" +"зона переспрямовування «%(fwzone)s» не є ефективною, оскільки не вказано " +"належного делегування NS у основній зоні «%(authzone)s». Будь ласка, додайте " +"запис NS «%(ns_rec)s» до батьківської зони «%(authzone)s»." + +#, python-format +msgid "" +"DNS server %(server)s does not support EDNS0 (RFC 6891): %(error)s.\n" +"If DNSSEC validation is enabled on IPA server(s), please disable it." +msgstr "" +"На сервері DNS %(server)s не передбачено підтримки EDNS0 (RFC 6891): " +"%(error)s.\n" +"Якщо на серверах IPA увімкнено перевірку DNSSEC, будь ласка, вимкніть її." + +#, python-format +msgid "" +"DNSSEC validation failed: %(error)s.\n" +"Please verify your DNSSEC configuration or disable DNSSEC validation on all " +"IPA servers." +msgstr "" +"Не пройдено перевірку DNSSEC: %(error)s.\n" +"Будь ласка, перевірте, чи правильно вказано налаштування DNSSEC, або " +"вимкніть перевірку DNSSEC на усіх серверах IPA." + +#, python-format +msgid "" +"The _kerberos TXT record from domain %(domain)s could not be created " +"(%(error)s).\n" +"This can happen if the zone is not managed by IPA. Please create the record " +"manually, containing the following value: '%(realm)s'" +msgstr "" +"Не вдалося створити запис TXT _kerberos з домену %(domain)s (%(error)s).\n" +"Причиною може бути те, що зона не є керованою IPA. Будь ласка, створіть " +"запис вручну так, щоб він містив таке значення: «%(realm)s»" + +#, python-format +msgid "" +"The _kerberos TXT record from domain %(domain)s could not be removed " +"(%(error)s).\n" +"This can happen if the zone is not managed by IPA. Please remove the record " +"manually." +msgstr "" +"Не вдалося вилучити запис TXT _kerberos з домену %(domain)s (%(error)s).\n" +"Причиною може бути те, що зона не є керованою IPA. Будь ласка, вилучіть " +"запис вручну." msgid "" -"\n" -"IPA certificate operations\n" +"No DNSSEC key master is installed. DNSSEC zone signing will not work until " +"the DNSSEC key master is installed." msgstr "" -"\n" -"Дії з сертифікатами IPA\n" +"Не встановлено основного ключа DNSSEC. Підписування у зоні DNSSEC не " +"працюватиме, доки не буде встановлено основний ключ DNSSEC." + +#, python-format +msgid "" +"Relative record name '%(record)s' contains the zone name '%(zone)s' as a " +"suffix, which results in FQDN '%(fqdn)s'. This is usually a mistake caused " +"by a missing dot at the end of the name specification." +msgstr "" +"Назва відносного запису «%(record)s» містить як суфікс назву зони " +"«%(zone)s», що дає повну назву домену «%(fqdn)s». Зазвичай, такі назви є " +"помилковими, спричиненими пропущеною крапкою наприкінці специфікації назви." + +#, python-format +msgid "'%(command)s' is deprecated. %(additional_info)s" +msgstr "«%(command)s» вважається застарілою. %(additional_info)s" + +#, python-format +msgid "%(line)s" +msgstr "%(line)s" + +#, python-format +msgid "Search result has been truncated: %(reason)s" +msgstr "Результат пошуку обрізано: %(reason)s" + +#, python-format +msgid "" +"Your trust to %(domain)s is broken. Please re-create it by running 'ipa " +"trust-add' again." +msgstr "" +"Довіру до %(domain)s втрачено. Будь ласка, відновіть її за допомогою команди " +"«ipa trust-add»." + +#, python-format +msgid "DNS record(s) of host %(host)s could not be removed. (%(reason)s)" +msgstr "Записи DNS вузла %(host)s не вдалося вилучити. (%(reason)s)" msgid "" -"\n" -"Implements a set of commands for managing server SSL certificates.\n" +"Forwarding policy conflicts with some automatic empty zones. Queries for " +"zones specified by RFC 6303 will ignore forwarding and recursion and always " +"result in NXDOMAIN answers. To override this behavior use forward policy " +"'only'." msgstr "" -"\n" -"Реалізує набір команд для керування сертифікатами серверів SSL.\n" +"Правила переспрямовування конфліктують із деякими автоматично порожніми " +"зонами. Запити для зон, вказаних на основі RFC 6303, ігноруватимуть " +"переспрямовування і завжди призводитимуть до відповідей NXDOMAIN. Щоб " +"перевизначити цю поведінку, скористайтеся правилами переспрямовування «only»." + +#, python-format +msgid "Update of system record '%(record)s' failed with error: %(error)s" +msgstr "" +"Спроба оновлення запису системи «%(record)s» зазнала невдачі. Повідомлення " +"про помилку: %(error)s" + +#, python-format +msgid "" +"IPA does not manage the zone %(zone)s, please add records to your DNS server " +"manually" +msgstr "" +"IPA не керує зоною %(zone)s. Будь ласка, додайте запис на вашому сервері DNS " +"вручну" msgid "" -"\n" -"Certificate requests exist in the form of a Certificate Signing Request " -"(CSR)\n" -"in PEM format.\n" +"Automatic update of DNS system records failed. Please re-run update of " +"system records manually to get list of missing records." msgstr "" -"\n" -"Запити щодо сертифікатів існують у формі Certificate Signing Request (CSR)\n" -"і форматі PEM.\n" +"Спроба автоматичного оновлення записів системи DNS зазнала невдачі. Будь " +"ласка, повторно запустіть оновлення записів системи вручну, щоб отримати " +"список пропущених записів." +#, python-format msgid "" -"\n" -"The dogtag CA uses just the CN value of the CSR and forces the rest of the\n" -"subject to values configured in the server.\n" +"Service %(service)s requires restart on IPA server %(server)s to apply " +"configuration changes." msgstr "" -"\n" -"Служба сертифікації dogtag використовує лише значення CN CSR і примусово " -"встановлює\n" -"решту параметрів призначення за налаштуваннями сервера.\n" +"Для застосування змін у налаштуваннях службу %(service)s на сервері IPA " +"%(server)s слід перезапустити." +#, python-format msgid "" -"\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" +"No DNS servers in IPA location %(location)s. Without DNS servers location is " +"not working as expected." msgstr "" -"\n" -"Сертифікат зберігається з реєстраційним записом, а реєстраційний запис\n" -"потребує вузла.\n" +"Немає серверів DNS на місці IPA %(location)s. Без серверів DNS місце не " +"працюватиме як слід." +#, python-format +msgid "%(subject)s: Invalid certificate. %(reason)s" +msgstr "%(subject)s: некоректний сертифікат. %(reason)s" + +msgid "Results are truncated, try a more specific search" +msgstr "" +"Список результатів обрізано. Спробуйте точніше визначити критерії пошуку." + +msgid "any of the configured servers" +msgstr "будь-який з налаштованих серверів" + +msgid "Exceeded number of tries to forward a request." +msgstr "Перевищено кількість спроб переспрямовування запиту." + +#, python-format +msgid "%(count)d variables" +msgstr "%(count)d змінних" + +#, 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 додатків" + +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "Введіть %(label)s ще раз для перевірки: " + +msgid "No matching entries found" +msgstr "Відповідних записів не знайдено" + +msgid "Topic or Command" +msgstr "Тема або команда" + +msgid "The topic or command name." +msgstr "Назва теми або команди." + +msgid "Topic commands:" +msgstr "Команди теми:" + +msgid "To get command help, use:" +msgstr "Щоб отримати довідку щодо команди, скористайтеся такою командою:" + +msgid " ipa --help" +msgstr " ipa <команда> --help" + +msgid "Command name" +msgstr "Назва команди" + +msgid "Positional arguments" +msgstr "Обов’язкові аргументи" + +#, python-format +msgid "Same as --%s" +msgstr "Те саме, що і --%s" + +msgid "Deprecated options" +msgstr "Застарілі параметри" + +msgid "No file to read" +msgstr "Немає файла для читання" + +#, python-format +msgid "%(filename)s: file not found" +msgstr "%(filename)s: файл не знайдено" + +msgid "incorrect type" +msgstr "помилковий тип" + +msgid "Only one value is allowed" +msgstr "Можна використовувати лише одне значення" + +msgid "this option is deprecated" +msgstr "цей параметр вважається застарілим" + +msgid "must be True or False" +msgstr "має дорівнювати True або False" + +msgid "must be an integer" +msgstr "має бути цілим числом" + +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "має бути числом, не меншим за %(minvalue)d" + +#, python-format +msgid "can be at most %(maxvalue)d" +msgstr "не може перевищувати %(maxvalue)d" + +msgid "must be a decimal number" +msgstr "має бути десятковим числом" + +#, python-format +msgid "must be at least %(minvalue)s" +msgstr "має бути принаймні %(minvalue)s" + +#, python-format +msgid "can be at most %(maxvalue)s" +msgstr "не може перевищувати %(maxvalue)s" + +#, python-format msgid "" -"\n" -"In order to request a certificate:\n" +"number class '%(cls)s' is not included in a list of allowed number classes: " +"%(allowed)s" msgstr "" -"\n" -"Для того, щоб створити запит щодо сертифіката:\n" +"числовий клас «%(cls)s» не включено до списку дозволених числових класів: " +"%(allowed)s" -msgid "" -"\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add " -"it)\n" -msgstr "" -"\n" -"* Вузол має існувати\n" -"* Служба має існувати (або слід скористатися параметром --add " -"дляавтоматичного додавання)\n" +#, python-format +msgid "must match pattern \"%(pattern)s\"" +msgstr "має відповідати шаблону «%(pattern)s»" -msgid "" -"\n" -"SEARCHING:\n" -msgstr "" -"\n" -"ПОШУК:\n" +msgid "must be binary data" +msgstr "має бути бінарними даними" -msgid "" -"\n" -"Certificates may be searched on by certificate subject, serial number,\n" -"revocation reason, validity dates and the issued date.\n" -msgstr "" -"\n" -"Шукати сертифікати можна за призначенням сертифіката, серійним номером,\n" -"причиною відкликання, датами чинності та датою видання.\n" +#, python-format +msgid "must be at least %(minlength)d bytes" +msgstr "має бути розміром, не менше за %(minlength)d байтів" -msgid "" -"\n" -"When searching on dates the _from date does a >= search and the _to date\n" -"does a <= search. When combined these are done as an AND.\n" -msgstr "" -"\n" -"Якщо пошук виконується за датою _від, використовується порівняння >=, а " -"якщо\n" -"виконується пошук _до дати — порівняння <=. Поєднання обох пошуків " -"призводить\n" -"до пошуку з логічним поєднанням ТА.\n" +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "не повинне перевищувати за розміром %(maxlength)d байтів" -msgid "" -"\n" -"Dates are treated as GMT to match the dates in the certificates.\n" -msgstr "" -"\n" -"Дати обробляються як дати за Гринвічем, відповідно до дат визначених " -"усертифікатах.\n" +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "має бути розміром точно у %(length)d байтів" -msgid "" -"\n" -"The date format is YYYY-mm-dd.\n" -msgstr "" -"\n" -"Формат дати є таким: РРРР-мм-дд.\n" - -msgid "" -"\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" -msgstr "" -"\n" -" Створити запит щодо нового сертифіката і додати реєстраційний запис: ipa " -"cert-request --add --principal=HTTP/lion.example.com example.csr\n" - -msgid "" -"\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" -msgstr "" -"\n" -" Отримати вже створений сертифікат:\n" -" ipa cert-show 1032\n" - -msgid "" -"\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" -msgstr "" -"\n" -" Відкликати сертифікат (причини визначено у RFC 5280):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" - -msgid "" -"\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" -msgstr "" -"\n" -" Вилучити сертифікат зі списку відкликання:\n" -" ipa cert-remove-hold 1032\n" - -msgid "" -"\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" -msgstr "" -"\n" -" Перевірити стан запиту щодо підписування:\n" -" ipa cert-status 10\n" - -msgid "" -"\n" -" Search for certificates by hostname:\n" -" ipa cert-find --subject=ipaserver.example.com\n" -msgstr "" -"\n" -" Пошук сертифікатів за назвою вузла:\n" -" ipa cert-find --subject=ipaserver.example.com\n" - -msgid "" -"\n" -" Search for revoked certificates by reason:\n" -" ipa cert-find --revocation-reason=5\n" -msgstr "" -"\n" -" Пошук відкликаних сертифікатів за причиною:\n" -" ipa cert-find --revocation-reason=5\n" - -msgid "" -"\n" -" Search for certificates based on issuance date\n" -" ipa cert-find --issuedon-from=2013-02-01 --issuedon-to=2013-02-07\n" -msgstr "" -"\n" -" Пошук сертифікатів за датою видання\n" -" ipa cert-find --issuedon-from=2013-02-01 --issuedon-to=2013-02-07\n" - -msgid "" -"\n" -" Search for certificates owned by a specific user:\n" -" ipa cert-find --user=user\n" -msgstr "" -"\n" -" Пошук сертифікатів, власником яких є вказаний користувач:\n" -" ipa cert-find --user=user\n" - -msgid "" -"\n" -" Examine a certificate:\n" -" ipa cert-find --file=cert.pem --all\n" -msgstr "" -"\n" -" Перевірити сертифікат:\n" -" ipa cert-find --file=cert.pem --all\n" - -msgid "" -"\n" -" Verify that a certificate is owned by a specific user:\n" -" ipa cert-find --file=cert.pem --user=user\n" -msgstr "" -"\n" -" Перевірити, чи є власником сертифіката вказаний користувач:\n" -" ipa cert-find --file=cert.pem --user=user\n" - -msgid "" -"\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" -msgstr "" -"\n" -"У поточній версії IPA негайно виконує (або відхиляє) всі запити щодо\n" -"сертифікатів, отже дані щодо стану запиту не мають сенсу. Ці дані\n" -"можуть знадобитися у наступних версіях або у разі, якщо CA видає\n" -"сертифікат не одразу.\n" - -msgid "" -"\n" -"The following revocation reasons are supported:\n" -"\n" -msgstr "" -"\n" -"Передбачено підтримку таких причин відкликання:\n" -"\n" - -msgid " * 0 - unspecified\n" -msgstr " * 0 - не визначено\n" - -msgid " * 1 - keyCompromise\n" -msgstr " * 1 - keyCompromise\n" - -msgid " * 2 - cACompromise\n" -msgstr " * 2 - cACompromise\n" - -msgid " * 3 - affiliationChanged\n" -msgstr " * 3 - affiliationChanged\n" - -msgid " * 4 - superseded\n" -msgstr " * 4 - superseded\n" - -msgid " * 5 - cessationOfOperation\n" -msgstr " * 5 - cessationOfOperation\n" - -msgid " * 6 - certificateHold\n" -msgstr " * 6 - certificateHold\n" - -msgid " * 8 - removeFromCRL\n" -msgstr " * 8 - removeFromCRL\n" - -msgid " * 9 - privilegeWithdrawn\n" -msgstr " * 9 - privilegeWithdrawn\n" - -msgid " * 10 - aACompromise\n" -msgstr " * 10 - aACompromise\n" - -msgid "" -"\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" -msgstr "" -"\n" -"Зауважте, що коди причини 7 не використовується. Докладніші дані у RFC " -"5280:\n" - -msgid "" -"\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" -"\n" -msgstr "" -"\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" -"\n" +msgid "must be a certificate" +msgstr "має бути сертифікатом" #, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "" "Помилка під час декодування запиту на підписування сертифіката (CSR): %s" -#, python-format -msgid "" -"Principal '%(principal)s' is not permitted to use CA '%(ca)s' with profile " -"'%(profile_id)s' for certificate issuance." -msgstr "" -"Реєстраційному запису «%(principal)s» не дозволено використовувати службу " -"сертифікації «%(ca)s» із профілем «%(profile_id)s» для видання сертифікатів." +msgid "must be Unicode text" +msgstr "має бути текстом у Unicode" + +msgid "Leading and trailing spaces are not allowed" +msgstr "Використання пробілів на початку і у кінці заборонено" #, python-format -msgid "Host '%(hostname)s' is not an active KDC" -msgstr "Вузол «%(hostname)s» не є активним KDC" - -msgid "Issuing CA" -msgstr "Видавничий CA" - -msgid "Name of issuing CA" -msgstr "Назва видавничого CA" - -msgid "Subject email address" -msgstr "Адреса електронної пошти призначення" - -msgid "Subject DNS name" -msgstr "Назва DNS призначення" - -msgid "Subject X.400 address" -msgstr "Адреса X.400 призначення" - -msgid "Subject directory name" -msgstr "Назва каталогу призначення" - -msgid "Subject EDI Party name" -msgstr "Назва EDI Party призначення" - -msgid "Subject URI" -msgstr "Адреса призначення" - -msgid "Subject IP Address" -msgstr "IP-адреса призначення" - -msgid "Subject OID" -msgstr "OID призначення" - -msgid "Subject UPN" -msgstr "UPN призначення" - -msgid "Subject Kerberos principal name" -msgstr "Назва реєстраційного запису Kerberos призначення" - -msgid "Subject Other Name" -msgstr "Інша назва призначення" - -msgid "Serial number (hex)" -msgstr "Серійний номер (шістнадцятковий)" - -msgid "Request status" -msgstr "Стан запиту" - -msgid "" -"automatically add the principal if it doesn't exist (service principals only)" -msgstr "" -"автоматично додати реєстраційний запис, якщо його не існує (лише " -"реєстраційні записи служб)" +msgid "must be at least %(minlength)d characters" +msgstr "має бути не меншим за %(minlength)d символів довжиною" #, python-format -msgid "krbtgt certs can use only the %s profile" -msgstr "Сертифікати krbtgt можуть використовувати лише профіль %s" +msgid "can be at most %(maxlength)d characters" +msgstr "не повинне перевищувати %(maxlength)d символів у довжину" -msgid "No Common Name was found in subject of request." -msgstr "У темі запиту не було знайдено загальної назви (CN)." +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "має бути точно %(length)d символів у довжину" + +#, python-format +msgid "The character %(char)r is not allowed." +msgstr "Не можна використовувати символ %(char)r." + +#, python-format +msgid "must be '%(value)s'" +msgstr "має бути «%(value)s»" + +#, python-format +msgid "must be one of %(values)s" +msgstr "має бути одним з таких значень: %(values)s" + +msgid "must be datetime value" +msgstr "має бути значенням дати і часу" + +msgid "does not match any of accepted formats: " +msgstr "не відповідає жодному з прийнятних форматів: " + +msgid "incomplete time value" +msgstr "неповне часове значення" + +msgid "must be DNS name" +msgstr "має бути назвою DNS" + +msgid "must be absolute" +msgstr "має бути абсолютною" + +msgid "must be relative" +msgstr "має бути відносною" + +msgid "must be dictionary" +msgstr "має бути словником" + +msgid "must be Kerberos principal" +msgstr "має бути реєстраційним записом Kerberos" + +#, python-format +msgid "Malformed principal: '%(value)s'" +msgstr "Помилкове форматування реєстраційного запису: «%(value)s»" + +msgid "Service principal is required" +msgstr "Слід вказати реєстраційний запис служби" + +msgid "Filename is empty" +msgstr "Порожня назва файла" + +#, python-format +msgid "Permission denied: %(file)s" +msgstr "Доступ заборонено: %(file)s" + +msgid "empty DNS label" +msgstr "порожня мітка DNS" + +msgid "DNS label cannot be longer that 63 characters" +msgstr "Довжина мітки DNS не повинна перевищувати 63 символи" #, python-format msgid "" -"hostname in subject of request '%(cn)s' does not match name or aliases of " -"principal '%(principal)s'" +"only letters, numbers, %(chars)s are allowed. DNS label may not start or end " +"with %(chars2)s" msgstr "" -"назва вузла у предметі запиту «%(cn)s» не збігається із назвою або " -"альтернативними назвами реєстраційного запису «%(principal)s»" +"можна використовувати лише літери, цифри, %(chars)s. Символ %(chars2)s не " +"повинен бути першим або останнім символом мітки DNS." + +msgid "too many '@' characters" +msgstr "занадто багато символів «@»" + +msgid "cannot be longer that 255 characters" +msgstr "не може бути довшим за 255 символів" + +msgid "hostname contains empty label (consecutive dots)" +msgstr "назва вузла містить лише порожню мітку (послідовні крапки)" + +msgid "not fully qualified" +msgstr "вказано не повністю" + +msgid "invalid SSH public key" +msgstr "некоректний відкритий ключ SSH" + +msgid "options are not allowed" +msgstr "не можна використовувати параметри" + +msgid "invalid hostmask" +msgstr "некоректна маска вузлів" + +#, python-format +msgid "query '%(owner)s %(rtype)s': %(error)s" +msgstr "запит «%(owner)s %(rtype)s»: %(error)s" + +#, python-format +msgid "query '%(owner)s %(rtype)s' with EDNS0: %(error)s" +msgstr "запит «%(owner)s %(rtype)s» за допомогою EDNS0: %(error)s" #, python-format msgid "" -"hostname in subject of request '%(cn)s' does not match principal hostname " -"'%(hostname)s'" +"answer to query '%(owner)s %(rtype)s' is missing DNSSEC signatures (no RRSIG " +"data)" msgstr "" -"назва вузла у призначенні запиту, «%(cn)s», не збігається з назвою вузла " -"реєстраційного запису, «%(hostname)s»" +"відповідь на запит «%(owner)s %(rtype)s» не містить підписів DNSSEC (немає " +"даних RRSIG)" -msgid "DN commonName does not match user's login" -msgstr "У commonName DN не збігається із ім’ям користувача" - -msgid "DN emailAddress does not match any of user's email addresses" +#, python-format +msgid "record '%(owner)s %(rtype)s' failed DNSSEC validation on server %(ip)s" msgstr "" -"emailAddress DN не збігається із жодною адресою електронної пошти користувача" +"запис «%(owner)s %(rtype)s» не пройшов перевірки DNSSEC на сервері %(ip)s" + +msgid "invalid escape code in domain name" +msgstr "некоректний керівний код у назві домену" + +msgid "domain name cannot be longer than 255 characters" +msgstr "назва домену не повинна перевищувати за довжиною 255 символів" + +msgid "DNS label cannot be longer than 63 characters" +msgstr "Довжина мітки DNS не повинна перевищувати 63 символів" + +msgid "invalid domain name" +msgstr "некоректна назва домену" + +#, python-format +msgid "domain name '%(domain)s' should be normalized to: %(normalized)s" +msgstr "назву домену «%(domain)s» слід нормалізувати до %(normalized)s" + +#, python-format +msgid "invalid domain-name: %s" +msgstr "некоректна назва домену: %s" + +#, python-format +msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!" +msgstr "" +"некоректна версія IP-адреси (маємо: %(value)d, має бути: %(required_value)d)!" + +msgid "invalid IP address format" +msgstr "некоректний формат запису IP-адреси" + +#, python-format +msgid "%(port)s is not a valid port" +msgstr "%(port)s не є чинним портом" + +msgid "" +"at least one value equal to the canonical principal name must be present" +msgstr "" +"має бути надано принаймні одне значення, що є рівним канонічній назві " +"реєстраційного запису" + +msgid "realm or UPN suffix overlaps with trusted domain namespace" +msgstr "" +"область або суфікс UPN перекриваються із простором назв довіреного домену" + +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at '%(server)s'" +msgstr "Клієнт %(cver)s є несумісним з сервером %(sver)s на «%(server)s»" + +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" +msgstr "%(server)s повідомляє про невідому помилку %(code)d: %(error)s" + +msgid "an internal error has occurred" +msgstr "сталася внутрішня помилка" + +#, python-format +msgid "an internal error has occurred on server at '%(server)s'" +msgstr "на сервері «%(server)s» сталася внутрішня помилка" + +#, python-format +msgid "unknown command '%(name)s'" +msgstr "невідома команда: «%(name)s»" + +#, python-format +msgid "error on server '%(server)s': %(error)s" +msgstr "помилка на сервері «%(server)s»: %(error)s" + +#, python-format +msgid "cannot connect to '%(uri)s': %(error)s" +msgstr "не вдалося встановити з’єднання з «%(uri)s»: %(error)s" + +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" +msgstr "некоректний запит JSON-RPC: %(error)s" + +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" +msgstr "" +"помилка під час розміщення даних для каналу передавання XML-RPC: %(error)s" + +#, python-format +msgid "Missing or invalid HTTP Referer, %(referer)s" +msgstr "Не вказано HTTP Referer або вказано помилкове значення, %(referer)s" + +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" +msgstr "Помилка Kerberos: %(major)s/%(minor)s" + +msgid "did not receive Kerberos credentials" +msgstr "не отримано реєстраційних даних Kerberos" + +#, python-format +msgid "Service '%(service)s' not found in Kerberos database" +msgstr "У базі даних Kerberos не виявлено служби «%(service)s»" + +msgid "No credentials cache found" +msgstr "Не знайдено кешу реєстраційних даних" + +msgid "Ticket expired" +msgstr "Сплив строк дії квитка" + +msgid "Credentials cache permissions incorrect" +msgstr "Помилкові права доступу до кешу реєстраційних даних" + +msgid "Bad format in credentials cache" +msgstr "Помилковий формат кешу реєстраційних даних" + +msgid "Cannot resolve KDC for requested realm" +msgstr "Не вдалося визначити KDC для бажаної області (realm)" + +msgid "Session error" +msgstr "Помилка сеансу" + +#, python-format +msgid "Principal %(principal)s cannot be authenticated: %(message)s" +msgstr "" +"Не вдалося виконати розпізнавання для реєстраційного запису %(principal)s: " +"%(message)s" + +#, python-format +msgid "Insufficient access: %(info)s" +msgstr "Недостатні права для доступу: %(info)s" + +#, python-format +msgid "command '%(name)s' takes no arguments" +msgstr "команда «%(name)s» не приймає ніяких аргументів" + +#, python-format +msgid "command '%(name)s' takes at most %(count)d argument" +msgid_plural "command '%(name)s' takes at most %(count)d arguments" +msgstr[0] "команда «%(name)s» приймає не більше %(count)d аргументу" +msgstr[1] "команда «%(name)s» приймає не більше %(count)d аргументів" +msgstr[2] "команда «%(name)s» приймає не більше %(count)d аргументів" + +#, python-format +msgid "overlapping arguments and options: %(names)s" +msgstr "перекриття аргументів і параметрів: %(names)s" + +#, python-format +msgid "'%(name)s' is required" +msgstr "Слід вказати «%(name)s»" + +#, python-format +msgid "invalid '%(name)s': %(error)s" +msgstr "некоректне «%(name)s»: %(error)s" + +#, python-format +msgid "api has no such namespace: '%(name)s'" +msgstr "api не надає такого простору назв: «%(name)s»" + +msgid "Passwords do not match" +msgstr "Паролі не збігаються" + +msgid "Command not implemented" +msgstr "Команду не реалізовано" + +msgid "Client is not configured. Run ipa-client-install." +msgstr "" +"Клієнтську частину не налаштовано. Віддайте команду ipa-client-install." + +#, python-format +msgid "Could not get %(name)s interactively" +msgstr "Не вдалося отримати %(name)s у інтерактивному режимі" + +#, python-format +msgid "Command '%(name)s' has been deprecated" +msgstr "Команда «%(name)s» вважається застарілою" + +#, python-format +msgid "Domain '%(domain)s' is not a root domain for forest '%(forest)s'" +msgstr "Домен «%(domain)s» не є кореневим доменом для лісу «%(forest)s»" + +#, python-format +msgid "%(reason)s" +msgstr "%(reason)s" + +msgid "This entry already exists" +msgstr "Цей запис вже існує" + +msgid "You must enroll a host in order to create a host service" +msgstr "Щоб створити службу вузла, вам слід зареєструвати вузол" #, python-format msgid "" -"Insufficient 'write' privilege to the 'userCertificate' attribute of entry " -"'%s'." -msgstr "Недостатні привілеї «write» до атрибута «userCertificate» запису «%s»." +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" +msgstr "" +"Реєстраційний запис служби вказано у формі, відмінній від: служба/повна " +"назва вузла: %(reason)s" + +msgid "" +"The realm for the principal does not match the realm for this IPA server" +msgstr "" +"Область дії реєстраційного запису не збігається з областю цього сервера IPA" + +msgid "This command requires root access" +msgstr "Для виконання цієї команди потрібні права доступу користувача root" + +msgid "This is already a posix group" +msgstr "Вже є posix-групою" #, python-format -msgid "subject alt name type %s is forbidden for user principals" +msgid "Principal is not of the form user@REALM: '%(principal)s'" msgstr "" -"використання типу альтернативної назви об’єкта %s заборонено для " -"реєстраційних записів користувачів" +"Реєстраційний запис вказано у формі, відмінній від користувач@ОБЛАСТЬ: " +"«%(principal)s»" + +msgid "This entry is already enabled" +msgstr "Цей запис вже увімкнено" + +msgid "This entry is already disabled" +msgstr "Цей запис вже вимкнено" + +msgid "This entry cannot be enabled or disabled" +msgstr "Цей запис не можна вмикати або вимикати" + +msgid "This entry is not a member" +msgstr "Цього запису немає серед учасників" + +msgid "A group may not be a member of itself" +msgstr "Група не може бути елементом самої себе" + +msgid "This entry is already a member" +msgstr "Цей запис вже є серед учасників" + +#, python-format +msgid "Base64 decoding failed: %(reason)s" +msgstr "Помилка декодування Base64: %(reason)s" + +msgid "A group may not be added as a member of itself" +msgstr "Групу не може бути додано як елемент самої себе" + +msgid "The default users group cannot be removed" +msgstr "Не можна вилучати типову групу користувачів" + +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "Вилучення керованих груп заборонено. Спочатку групу слід від’єднати." + +msgid "A managed group cannot have a password policy." +msgstr "У керованої групи не може бути власних правил для паролів." + +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "«%(entry)s» не містить сертифіката." + +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "Не вдалося створити закриту групу. Група «%(group)s» вже існує." #, python-format msgid "" -"The service principal for subject alt name %s in certificate request does " -"not exist" +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" msgstr "" -"Реєстраційного запису служби для альтернативної назви об’єкта %s запиту щодо " -"сертифіката не існує" +"Під час перевірки виявлено проблему, всі записи учасників %(verb)s: %(exc)s" + +#, python-format +msgid "%(attr)s does not contain '%(value)s'" +msgstr "%(attr)s не містить «%(value)s»" #, python-format msgid "" -"Insufficient privilege to create a certificate with subject alt name '%s'." +"The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -"Недостатні привілеї для створення сертифіката з альтернативною назвою " -"призначення «%s»." +"Критерій пошуку не був достатньо точним. Мало бути вказано один критерій, " +"виявлено — %(found)d." + +msgid "This group already allows external members" +msgstr "У цій групі вже дозволено зовнішніх учасників" + +msgid "This group cannot be posix because it is external" +msgstr "Ця група не може належати до груп POSIX, оскільки є зовнішньою" + +msgid "This is already a posix group and cannot be converted to external one" +msgstr "" +"Ця група вже належить до груп POSIX, отже її не можна перетворити на зовнішню" #, python-format -msgid "Principal '%s' in subject alt name does not match requested principal" -msgstr "" -"Реєстраційний запис «%s» у альтернативній назві об’єкта не відповідає " -"запитаному реєстраційному запису" - -msgid "RFC822Name does not match any of user's email addresses" -msgstr "" -"RFC822Name не збігається зі жодною адресою електронної пошти користувача" +msgid "Server removal aborted: %(reason)s." +msgstr "Вилучення сервера перервано: %(reason)s." #, python-format -msgid "subject alt name type %s is forbidden for non-user principals" +msgid "%(operation)s is not supported for %(principal_type)s principals" msgstr "" -"використання типу альтернативної назви об’єкта %s заборонено для " -"реєстраційних записів, які не пов’язано із користувачами" +"Підтримки %(operation)s для реєстраційних записів %(principal_type)s не " +"передбачено" #, python-format -msgid "Subject alt name type %s is forbidden" -msgstr "Використання типу альтернативної назви об’єкта %s заборонено" - -#, python-format -msgid "CA '%s' is disabled" -msgstr "Службу сертифікації «%s» вимкнено" - -msgid "'add' option" -msgstr "параметр «add»" - -msgid "Revoked" -msgstr "Анульований" - -msgid "" -"Reason for revoking the certificate (0-10). Type \"ipa help cert\" for " -"revocation reason details. " -msgstr "" -"Причина відкликання сертифіката (0-10). Введіть «ipa help cert», щоб " -"ознайомитися із подробицями причин відкликання. " - -#, python-format -msgid "Owner %s" -msgstr "Власник %s" +msgid "Request failed with status %(status)s: %(reason)s" +msgstr "Помилка під час виконання запиту, стан %(status)s: %(reason)s" #, python-format msgid "" -"Certificate with serial number %(serial)s issued by CA '%(ca)s' not found" +"Mapping ruleset \"%(ruleset)s\" has more than one rule for the %(helper)s " +"helper" msgstr "" -"Не знайдено сертифікат із серійним номером %(serial)s, виданий CA «%(ca)s»" - -msgid "7 is not a valid revocation reason" -msgstr "7 не є коректною причиною відкликання" - -msgid "Results should contain primary key attribute only (\"certificate\")" -msgstr "Результати мають містити лише атрибут основного ключа («сертифікат»)" +"Набір правил прив’язки «%(ruleset)s» містить декілька правил для допоміжного " +"засобу %(helper)s" #, python-format -msgid "%(count)d certificate matched" -msgid_plural "%(count)d certificates matched" -msgstr[0] "встановлено відповідність %(count)d сертифіката" -msgstr[1] "встановлено відповідність %(count)d сертифікатів" -msgstr[2] "встановлено відповідність %(count)d сертифікатів" +msgid "no command nor help topic '%(topic)s'" +msgstr "не виявлено ні команди, ні запису довідки «%(topic)s»" + +msgid "change collided with another change" +msgstr "зміна конфліктує з іншою внесеною зміною" + +msgid "no modifications to be performed" +msgstr "змін не внесено" #, python-format -msgid "Search for certificates with these owner %s." -msgstr "Шукати сертифікати із вказаними %s власника." +msgid "%(desc)s: %(info)s" +msgstr "%(desc)s: %(info)s" + +msgid "limits exceeded for this query" +msgstr "цим запитом перевищено обмеження" #, python-format -msgid "Search for certificates without these owner %s." -msgstr "Шукати сертифікати, власником яких не є %s." +msgid "%(info)s" +msgstr "%(info)s" -msgid "Non-Active Directory domain" -msgstr "Домен не-Active Directory" +msgid "modifying primary key is not allowed" +msgstr "зміну основного ключа заборонено" -msgid "RFC4120-compliant Kerberos realm" -msgstr "Область Kerberos, сумісна з RFC4120" +#, python-format +msgid "%(attr)s: Only one value allowed." +msgstr "%(attr)s: можна використовувати лише одне значення." -msgid "" -"Non-transitive external trust to a domain in another Active Directory forest" -msgstr "Неперехідна зовнішня довіра до домену у іншому лісі Active Directory" +#, python-format +msgid "%(attr)s: Invalid syntax." +msgstr "%(attr)s: некоректний синтаксис." -msgid "Trusting forest" -msgstr "«Ліс» довіри" +#, python-format +msgid "Bad search filter %(info)s" +msgstr "Помилковий фільтр пошуку %(info)s" -msgid "Trusted forest" -msgstr "Довірений «ліс»" +msgid "Not allowed on non-leaf entry" +msgstr "Заборонено для записів, які не є записами листків (leaf)" -msgid "Established and verified" -msgstr "Встановлено і перевірено" +msgid "LDAP timeout" +msgstr "Час очікування LDAP" -msgid "Waiting for confirmation by remote side" -msgstr "Очікуємо на підтвердження з віддаленого боку" +#, python-format +msgid "%(task)s LDAP task timeout, Task DN: '%(task_dn)s'" +msgstr "" +"Перевищення часу очікування на завершення завдання LDAP %(task)s, DN " +"завдання: «%(task_dn)s»" -msgid "Unknown" -msgstr "Невідомо" +msgid "Configured time limit exceeded" +msgstr "Перевищено налаштоване обмеження за часом" + +msgid "Configured size limit exceeded" +msgstr "Перевищено налаштоване обмеження за розміром" + +msgid "Configured administrative server limit exceeded" +msgstr "Перевищено налаштоване обмеження адміністративного сервера" + +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" +msgstr "Не вдалося завершити дію з сертифікатом: %(error)s" + +#, python-format +msgid "Certificate format error: %(error)s" +msgstr "Помилка форматування сертифіката: %(error)s" + +msgid "Already registered" +msgstr "Вже зареєстровано" + +msgid "Not registered yet" +msgstr "Ще не зареєстровано" + +#, python-format +msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it" +msgstr "" +"%(key)s неможливо вилучити, оскільки він потрібен для %(dependent)s %(label)s" #, python-format msgid "" -" Alternatively, following servers are capable of running this command: " -"%(masters)s" -msgstr " Крім того, цю команду можуть виконати такі сервери: %(masters)s" - -msgid "AD Trust setup" -msgstr "Налаштування довіри AD" - -msgid "" -"Cannot perform the selected command without Samba 4 support installed. Make " -"sure you have installed server-trust-ad sub-package of IPA." +"%(key)s cannot be deleted or disabled because it is the last member of " +"%(label)s %(container)s" msgstr "" -"Виконати вибрану команду без встановленої підтримки Samba 4 неможливо. " -"Переконайтеся, що вами встановлено підпакунок IPA server-trust-ad." - -msgid "" -"Cannot perform the selected command without Samba 4 instance configured on " -"this machine. Make sure you have run ipa-adtrust-install on this server." -msgstr "" -"Вибрану команду не можна виконати без екземпляра Samba 4, встановленого у " -"цій системі. Переконайтеся, що на цьому сервері було виконано ipa-adtrust-" -"install." - -msgid "" -"Fetching domains from trusted forest failed. See details in the error_log" -msgstr "" -"Спроба отримати список доменів із довіреного лісу зазнала невдачі. Подробиці " -"можна знайти у error_log" - -msgid "trust" -msgstr "довіра" - -msgid "trusts" -msgstr "записи довіри" - -msgid "Trust" -msgstr "Довіра" - -msgid "UPN suffixes" -msgstr "Суфікси UPN" +"%(key)s не може бути вилучено або вимкнено, оскільки він є останнім у " +"%(container)s %(label)s" #, python-format -msgid "invalid SID: %(value)s" -msgstr "некоректний SID: %(value)s" - -#, python-brace-format -msgid "Type of trusted domain ID range, one of {vals}" -msgstr "" -"Тип діапазону ідентифікаторів довіреного домену, одне з таких значень: {vals}" - -msgid "External trust" -msgstr "Зовнішня довіра" - -msgid "" -"Establish external trust to a domain in another forest. The trust is not " -"transitive beyond the domain." -msgstr "" -"Встановити зовнішню довіру до домену у іншому лісі. Довіра не переходить за " -"межі домену." +msgid "%(label)s %(key)s cannot be deleted/modified: %(reason)s" +msgstr "%(key)s %(label)s не можна вилучати або змінювати: %(reason)s" #, python-format -msgid "Added Active Directory trust for realm \"%(value)s\"" -msgstr "Додано запис довіри Active Directory для області «%(value)s»" +msgid "%(name)s certificate is not valid" +msgstr "Сертифікат %(name)s не є чинним" #, python-format -msgid "Re-established trust to domain \"%(value)s\"" -msgstr "Відновлено довіру до домену «%(value)s»" - -msgid "missing base_id" -msgstr "не вистачає base_id" - -msgid "pysss_murmur is not available on the server and no base-id is given." -msgstr "pysss_murmur на сервері не доступний, отже base-id не надано." - -msgid "trust type" -msgstr "тип довіри" - -msgid "only \"ad\" is supported" -msgstr "передбачено підтримку лише «ad»" - -msgid "" -"Cannot establish a trust to AD deployed in the same domain as IPA. Such " -"setup is not supported." +msgid "Schema is up to date (FP '%(fingerprint)s', TTL %(ttl)s s)" msgstr "" -"Не можна встановлювати довіру до AD, розгорнутою у тому самому домені, що і " -"IPA. Підтримки такої можливості не передбачено." +"Схема не потребує оновлення (Відбиток «%(fingerprint)s», TTL %(ttl)s с)" -msgid "Realm-domain mismatch" -msgstr "Невідповідність між областю і доменом" +#, python-format +msgid "Host '%(hostname)s' does not have corresponding DNS A/AAAA record" +msgstr "На вузлі «%(hostname)s» немає відповідного запису DNS A/AAAA" -msgid "" -"To establish trust with Active Directory, the domain name and the realm name " -"of the IPA server must match" +#, python-format +msgid "DNS check failed: Expected {%(expected)s} got {%(got)s}" msgstr "" -"Для встановлення довіри з Active Directory назва домену і назва області " -"сервера IPA мають збігатися" +"Перевірка DNS зазнала невдачі: мало бути {%(expected)s}, отримано {%(got)s}" + +#, python-format +msgid "%(exception)s" +msgstr "%(exception)s" #, python-format msgid "" -"Trusted domain %(domain)s is included among IPA realm domains. It needs to " -"be removed prior to establishing the trust. See the \"ipa realmdomains-mod --" -"del-domain\" command." +"Forest '%(forest)s' has existing trust to forest(s) %(domains)s which " +"prevents a trust to '%(conflict)s'" msgstr "" -"До доменів області IPA включено домен %(domain)s. Перш ніж встановлювати " -"довіру, це включення слід усунути. Див. команду «ipa realmdomains-mod --del-" -"domain»." +"У лісу «%(forest)s» наявні відносини довіри з лісами %(domains)s, що не дає " +"змоги встановити довіру до «%(conflict)s»" -msgid "Trusted domain and administrator account use different realms" -msgstr "" -"Довіреним доменом і обліковим записом адміністратора використовуються різні " -"області" +msgid "Out of memory\n" +msgstr "Не вистачає пам'яті\n" -msgid "Realm administrator password should be specified" -msgstr "Має бути вказано пароль адміністратора області" +msgid "Warning unrecognized encryption type.\n" +msgstr "Попередження: невідомий тип шифрування.\n" -msgid "id range type" -msgstr "тип діапазону ідентифікаторів" +msgid "Warning unrecognized salt type.\n" +msgstr "Попередження: невідомий тип солі (salt).\n" -msgid "" -"Only the ipa-ad-trust and ipa-ad-trust-posix are allowed values for --range-" -"type when adding an AD trust." -msgstr "" -"Якщо додається зв’язок довіри AD, значенням --range-type має бути лише ipa-" -"ad-trust або ipa-ad-trust-posix." +msgid "Out of memory!?\n" +msgstr "Не вистачає пам'яті!?\n" -msgid "id range" -msgstr "діапазон ідентифікаторів" +msgid "Enctype comparison failed!\n" +msgstr "Спроба порівняння значень типу шифрування зазнала невдачі!\n" -msgid "" -"An id range already exists for this trust. You should either delete the old " -"range, or exclude --base-id/--range-size options from the command." -msgstr "" -"Для цього зв’язку довіри вже існує діапазон ідентифікаторів. Вам слід або " -"вилучити попередній діапазон, або виключити з команди параметри --base-id/--" -"range-size." +msgid "Failed to create random key!\n" +msgstr "Не вдалося створити випадковий ключ!\n" -msgid "range exists" -msgstr "діапазон вже існує" +msgid "Failed to create key!\n" +msgstr "Не вдалося створити ключ!\n" -msgid "" -"ID range with the same name but different domain SID already exists. The ID " -"range for the new trusted domain must be created manually." -msgstr "" -"Вже існує діапазон ідентифікаторів з тією самою назвою але іншим доменом " -"SID. Діапазон ідентифікаторів для нового довіреного домену має бути створено " -"вручну." - -msgid "range type change" -msgstr "зміна типу діапазону" - -msgid "" -"ID range for the trusted domain already exists, but it has a different type. " -"Please remove the old range manually, or do not enforce type via --range-" -"type option." -msgstr "" -"Діапазон ідентифікаторів для довіреного домену вже існує, але належить до " -"іншого типу. Будь ласка, вилучіть попередній діапазон вручну або не " -"визначайте тип у примусовому порядку за допомогою параметра --range-type." - -#, python-format -msgid "Unable to resolve domain controller for '%s' domain. " -msgstr "Не вдалося визначити контролер домену для домену «%s». " - -msgid "" -"Forward policy is defined for it in IPA DNS, perhaps forwarder points to " -"incorrect host?" -msgstr "" -"Для нього у DNS IPA визначено правила переспрямовування. Можливо, " -"переспрямовувач вказує не помилковий вузол?" - -#, python-format -msgid "" -"IPA manages DNS, please verify your DNS configuration and make sure that " -"service records of the '%(domain)s' domain can be resolved. Examples how to " -"configure DNS with CLI commands or the Web UI can be found in the " -"documentation. " -msgstr "" -"IPA керує DNS. Будь ласка, переконайтеся, що поточні налаштування DNS " -"уможливлюють визначення адрес службових записів домену «%(domain)s». " -"Приклади налаштовування DNS за допомогою командного інтерфейсу або " -"вебінтерфейсу наведено у документації. " - -#, python-format -msgid "" -"Since IPA does not manage DNS records, ensure DNS is configured to resolve " -"'%(domain)s' domain from IPA hosts and back." -msgstr "" -"Оскільки IPA не керує записами DNS, слід налаштувати DNS так, щоб система " -"визначала адресу домену «%(domain)s» за даними щодо вузлів IPA, і навпаки." - -msgid "Unable to verify write permissions to the AD" -msgstr "Не вдалося перевірити права доступу на запис до AD" - -msgid "Not enough arguments specified to perform trust setup" -msgstr "Вказано недостатньо аргументів для виконання налаштовування довіри" - -#, python-format -msgid "Deleted trust \"%(value)s\"" -msgstr "Вилучено запис довіри «%(value)s»" - -msgid "" -"\n" -" Modify a trust (for future use).\n" -"\n" -" Currently only the default option to modify the LDAP attributes is\n" -" available. More specific options will be added in coming releases.\n" -" " -msgstr "" -"\n" -" Змінити запис довіри (для наступного використання).\n" -"\n" -" У поточній версії можлива зміна лише типова зміна атрибутів LDAP.\n" -" Додаткові варіанти буде додано у наступних випусках.\n" -" " - -#, python-format -msgid "Modified trust \"%(value)s\" (change will be effective in 60 seconds)" -msgstr "Змінено довіру «%(value)s» (зміни набудуть чинності за 60 секунд)" - -#, python-format -msgid "%(count)d trust matched" -msgid_plural "%(count)d trusts matched" -msgstr[0] "встановлено відповідність %(count)d запису довіри" -msgstr[1] "встановлено відповідність %(count)d записів довіри" -msgstr[2] "встановлено відповідність %(count)d записів довіри" - -msgid "trust configuration" -msgstr "довірені налаштування" - -msgid "Global Trust Configuration" -msgstr "Загальні довірені налаштування" - -msgid "IPA AD trust agents" -msgstr "Агенти довіри AD IPA" - -msgid "IPA servers configured as AD trust agents" -msgstr "Сервери IPA, які налаштовано як агенти довіри AD" - -msgid "IPA AD trust controllers" -msgstr "Контролери довіри AD IPA" - -msgid "IPA servers configured as AD trust controllers" -msgstr "Сервери IPA, які налаштовано як контролери довіри AD" - -msgid "unsupported trust type" -msgstr "непідтримуваний тип довіри" - -#, python-format -msgid "Modified \"%(value)s\" trust configuration" -msgstr "Змінено налаштування довіри «%(value)s»" - -msgid "SID" -msgstr "SID" - -msgid "sidgen_was_run" -msgstr "sidgen_was_run" - -msgid "" -"This command relies on the existence of the \"editors\" group, but this " -"group was not found." -msgstr "" -"Для виконання цієї команди має існувати група «editors», але групи з такою " -"назвою не знайдено." - -msgid "trust domain" -msgstr "довірений домен" - -msgid "trust domains" -msgstr "довірені домени" - -msgid "Trusted domains" -msgstr "Довірені домени" - -msgid "Trusted domain" -msgstr "Довірений домен" - -msgid "Domain enabled" -msgstr "Домен увімкнено" - -#, python-format -msgid "Removed information about the trusted domain \"%(value)s\"" -msgstr "Дані щодо довіреного домену «%(value)s» вилучено" - -msgid "" -"cannot delete root domain of the trust, use trust-del to delete the trust " -"itself" -msgstr "" -"вилучення кореневого домену правила довіри неможливе, скористайтеся trust-" -"del для вилучення самого правила довіри" - -msgid "" -"List of trust domains successfully refreshed. Use trustdomain-find command " -"to list them." -msgstr "" -"Список довірених доменів успішно оновлено. Для отримання поточного списку " -"цих доменів скористайтеся командою trustdomain-find." - -#, python-format -msgid "Enabled trust domain \"%(value)s\"" -msgstr "Увімкнено домен довіри «%(value)s»" - -msgid "Root domain of the trust is always enabled for the existing trust" -msgstr "" -"Кореневий домен правила довіри для наявного правила довіри завжди увімкнено" - -#, python-format -msgid "Disabled trust domain \"%(value)s\"" -msgstr "Домен довіри «%(value)s» вимкнено" - -msgid "" -"cannot disable root domain of the trust, use trust-del to delete the trust " -"itself" -msgstr "" -"вимикання кореневого домену правила довіри неможливе, скористайтеся trust-" -"del для вилучення самого правила довіри" - -msgid "configuration options" -msgstr "параметри налаштування" - -msgid "Configuration" -msgstr "Налаштування" - -msgid "IPA masters" -msgstr "Основні вузли IPA" - -msgid "List of all IPA masters" -msgstr "Список усіх основних вузлів IPA" - -msgid "IPA CA servers" -msgstr "Сервери CA IPA" - -msgid "IPA servers configured as certificate authority" -msgstr "Сервери IPA, які налаштовано як центри сертифікації" - -msgid "IPA NTP servers" -msgstr "Сервери NTP IPA" - -msgid "IPA servers with enabled NTP" -msgstr "Сервери IPA із увімкненим NTP" - -msgid "IPA CA renewal master" -msgstr "Основних вузол відновлення CA IPA" - -msgid "Renewal master for IPA certificate authority" -msgstr "Основний сервер відновлення для центру сертифікації IPA" - -msgid "Empty domain is not allowed" -msgstr "Не можна використовувати порожні домени" - -#, python-format -msgid "Invalid domain name '%(domain)s': %(e)s" -msgstr "Некоректна назва домену, «%(domain)s»: %(e)s" - -#, python-format -msgid "Server has no information about domain '%(domain)s'" -msgstr "На сервері немає інформації щодо домену «%(domain)s»" - -#, python-format -msgid "Disabled domain '%(domain)s' is not allowed" -msgstr "Вимкнений домен «%(domain)s» не можна використовувати" - -msgid "The group doesn't exist" -msgstr "Такої групи не існує" - -#, python-format -msgid "attribute \"%s\" not allowed" -msgstr "не можна використовувати атрибут «%s»" - -msgid "May not be empty" -msgstr "Не може бути порожнім" - -#, python-format -msgid "%(obj)s default attribute %(attr)s would not be allowed!" -msgstr "Типовий атрибут %(obj)s, %(attr)s, не буде дозволено!" - -msgid "A list of SELinux users delimited by $ expected" -msgstr "" -"Мало бути вказано список користувачів SELinux, записи якого відокремлено " -"символом $" - -#, python-format -msgid "SELinux user '%(user)s' is not valid: %(error)s" -msgstr "Користувач SELinux «%(user)s» є некоректним: %(error)s" - -msgid "SELinux user map default user not in order list" -msgstr "" -"Типового користувача типової карти користувачів SELinux немає у порядковому " -"списку" - -msgid "" -"\n" -"Stageusers\n" -"\n" -"Manage stage user entries.\n" -"\n" -"Stage user entries are directly under the container: \"cn=stage users,\n" -"cn=accounts, cn=provisioning, SUFFIX\".\n" -"Users can not authenticate with those entries (even if the entries\n" -"contain credentials). Those entries are only candidate to become Active " -"entries.\n" -"\n" -"Active user entries are Posix users directly under the container: " -"\"cn=accounts, SUFFIX\".\n" -"Users can authenticate with Active entries, at the condition they have\n" -"credentials.\n" -"\n" -"Deleted user entries are Posix users directly under the container: " -"\"cn=deleted users,\n" -"cn=accounts, cn=provisioning, SUFFIX\".\n" -"Users can not authenticate with those entries, even if the entries contain " -"credentials.\n" -"\n" -"The stage user container contains entries:\n" -" - created by 'stageuser-add' commands that are Posix users,\n" -" - created by external provisioning system.\n" -"\n" -"A valid stage user entry MUST have:\n" -" - entry RDN is 'uid',\n" -" - ipaUniqueID is 'autogenerate'.\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" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new stageuser:\n" -" ipa stageuser-add --first=Tim --last=User --password tuser1\n" -"\n" -" Add a stageuser from the deleted users container:\n" -" ipa stageuser-add --first=Tim --last=User --from-delete tuser1\n" -"\n" -msgstr "" -"\n" -"Користувачі етапу\n" -"\n" -"Керування записами користувачів етапу.\n" -"\n" -"Записи користувачів етапу перебувають безпосередньо у контейнері:\n" -"\"cn=stage users, cn=accounts, cn=provisioning, SUFFIX\".\n" -"Користувач не може пройти розпізнавання за допомогою цих записів\n" -"(навіть якщо записи містять реєстраційні дані) і є кандидатами на\n" -"перетворення на активні записи.\n" -"\n" -"Записи активних користувачів є користувачами Posix, що перебувають\n" -"безпосередньо у контейнері: \"cn=accounts, SUFFIX\".\n" -"Користувач може пройти розпізнавання за допомогою активних записів,\n" -"якщо для них передбачено реєстраційні дані\n" -"\n" -"Вилучені записи користувачів є записами користувачів Posix, що\n" -"перебувають безпосередньо у контейнері: \"cn=deleted users,\n" -"cn=accounts, cn=provisioning, SUFFIX\".\n" -"Користувачі не можуть проходити розпізнавання за допомогою цих\n" -"записів (навіть якщо записи містять реєстраційні дані)\n" -"\n" -"Контейнер користувачів етапу містить записи\n" -" - створені командами 'stageuser-add', які є користувачами Posix\n" -" - створені зовнішньою системою забезпечення\n" -"\n" -"Коректний запис користувача етапу МАЄ відповідати таким вимогам:\n" -" - RDN запису має значення 'uid'\n" -" - ipaUniqueID має значення 'autogenerate'\n" -"\n" -"У IPA передбачено підтримку широкого діапазону форматів імен користувачів,\n" -"але слід зважати на різноманітні обмеження, які можуть стосуватися " -"середовища,\n" -"у якому ви працюєте. Наприклад, імена користувачів, що починаються з цифри,\n" -"або імена користувачів, довжина яких перевищує певну довжину, можуть\n" -"призвести до проблем у деяких системах UNIX.\n" -"Для зміни формату, який дозволено інструментами IPA, скористайтеся командою\n" -"'ipa config-mod'.\n" -"\n" -"\n" -"ПРИКЛАДИ:\n" -"\n" -" Додати нового користувача етапу:\n" -" ipa stageuser-add --first=Tim --last=User --password tuser1\n" -"\n" -" Додати користувача етапу з контейнера вилучених користувачів\n" -" ipa stageuser-add --first=Tim --last=User --from-delete tuser1\n" -"\n" - -msgid "Stage Users" -msgstr "Користувачі етапу" - -msgid "Stage User" -msgstr "Користувач етапу" - -msgid "stage user" -msgstr "користувач етапу" - -msgid "stage users" -msgstr "користувачі етапу" - -#, python-format -msgid "Added stage user \"%(value)s\"" -msgstr "Додано користувача етапу «%(value)s»" - -msgid "givenname is required" -msgstr "слід вказати ім’я" - -msgid "sn is required" -msgstr "слід вказати sn" - -#, python-format -msgid "Deleted stage user \"%(value)s\"" -msgstr "Вилучено запис користувача етапу «%(value)s»" - -#, python-format -msgid "Modified stage user \"%(value)s\"" -msgstr "Змінено запис користувача етапу «%(value)s»" - -#, python-format -msgid "Activate a stage user \"%(value)s\"" -msgstr "Активувати користувача етапу «%(value)s»" - -msgid "Entry RDN is not 'uid'" -msgstr "RDN запису не належить до «uid»" - -#, python-format -msgid "Entry has no '%(attribute)s'" -msgstr "У запису немає атрибута «%(attribute)s»" - -#, python-format -msgid "active user with name \"%(user)s\" already exists" -msgstr "запис активного користувача із іменем «%(user)s» вже існує" - -#, python-format -msgid "Stage user %s activated" -msgstr "Активовано користувача етапу %s" - -msgid "Add one or more certificates to the stageuser entry" -msgstr "Додати один або декілька сертифікатів запису користувача етапу" - -#, python-format -msgid "Added certificates to stageuser \"%(value)s\"" -msgstr "Додано сертифікати до запису користувача етапу «%(value)s»" - -msgid "Remove one or more certificates to the stageuser entry" -msgstr "Вилучити один або декілька сертифікатів запису користувача етапу" - -#, python-format -msgid "Removed certificates from stageuser \"%(value)s\"" -msgstr "Вилучено сертифікати із запису користувача етапу «%(value)s»" - -msgid "Add new principal alias to the stageuser entry" -msgstr "" -"Додати новий псевдонім реєстраційного запису до запису користувача етапу" - -#, python-format -msgid "Added new aliases to stageuser \"%(value)s\"" -msgstr "Додано нові псевдоніми до запису користувача етапу «%(value)s»" - -msgid "Remove principal alias from the stageuser entry" -msgstr "Вилучити псевдонім реєстраційного запису із запису користувача етапу" - -#, python-format -msgid "Removed aliases from stageuser \"%(value)s\"" -msgstr "Вилучено псевдоніми із запису користувача етапу «%(value)s»" - -msgid "Add one or more certificate mappings to the stage user entry." -msgstr "" -"Додати одну або декілька прив’язок сертифікатів до запису користувача етапу." - -msgid "Remove one or more certificate mappings from the stage user entry." -msgstr "" -"Вилучити одну або декілька прив’язок сертифікатів із запису користувача " -"етапу." - -msgid "Request must be a dict" -msgstr "Запит має належати до типу словника (dict)" - -msgid "Request is missing \"method\"" -msgstr "У запиті не вказано метод (\"method\")" - -msgid "Request is missing \"params\"" -msgstr "У запиті не вказано параметри (\"params\")" - -msgid "params must be a list" -msgstr "params має бути списком (list)" - -msgid "params must contain [args, options]" -msgstr "params має містити записи [аргументи, параметри]" - -msgid "params[0] (aka args) must be a list" -msgstr "params[0] (або аргументи) має бути списком (list)" - -msgid "params[1] (aka options) must be a dict" -msgstr "params[1] (або параметри) має належати до типу словника (dict)" - -#, python-format -msgid "Unable to communicate with CMS (status %d)" -msgstr "Не вдалося обмінятися даними з CMS (стан %d)" +msgid "Bad or unsupported salt type.\n" +msgstr "Помилковий або непідтримуваний тип солі (salt).\n" diff --git a/po/zh_CN.po b/po/zh_CN.po index f01e985c8..004cffb7c 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -4,9 +4,9 @@ # Pavel Vomacka , 2017. #zanata msgid "" msgstr "" -"Project-Id-Version: freeipa 4.5.90.dev201709011157+git5dcb0e6fc\n" +"Project-Id-Version: freeipa 4.6.1.dev201712121258+gitb2d3b568c\n" "Report-Msgid-Bugs-To: https://fedorahosted.org/freeipa/newticket\n" -"POT-Creation-Date: 2017-09-01 13:58+0200\n" +"POT-Creation-Date: 2017-12-12 14:00+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -17,922 +17,256 @@ msgstr "" "X-Generator: Zanata 3.9.6\n" "Plural-Forms: nplurals=1; plural=0\n" -#, python-format -msgid "Retrieving CA cert chain failed: %s" -msgstr "检索CA证书链失败:%s" +#, c-format +msgid "Kerberos context initialization failed: %1$s (%2$d)\n" +msgstr "Kerberos文本初始化失败:%1$s (%2$d)\n" -#, python-format -msgid "request failed with HTTP status %d" -msgstr "请求失败HTTP状态%d" +#, c-format +msgid "Unable to parse principal: %1$s (%2$d)\n" +msgstr "不能解析主体:%1$s (%2$d)\n" -#, python-format -msgid "Retrieving CA status failed: %s" -msgstr "检索CA状态失败:%s" +#, c-format +msgid "No keys accepted by KDC\n" +msgstr "没有KDC可接受的密钥\n" -#, python-format -msgid "Retrieving CA status failed with status %d" -msgstr "检索CA状态失败%d" +#, c-format +msgid "Out of memory \n" +msgstr "内存不足\n" -#, python-format -msgid "objectclass %s not found" -msgstr "对象类%s没找到" +#, c-format +msgid "Unable to set LDAP_OPT_X_TLS\n" +msgstr "不能设置LDAP_OPT_X_TLS\n" -#, python-format -msgid "%(filename)s: file not found" -msgstr "%(filename)s:文件没找到" +#, c-format +msgid "Unable to set LDAP_OPT_X_TLS_CERTIFICATE\n" +msgstr "不能设置LDAP_OPT_X_TLS_CERTIFICATE\n" -msgid "Show environment variables." -msgstr "显示环境变量。" +#, c-format +msgid "Unable to initialize ldap library!\n" +msgstr "不能初始化ldap库!\n" -#, python-format -msgid "%(count)d variables" -msgstr "%(count)d个变量" +#, c-format +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "不能设置LDAP_OPT_X_SASL_NOCANON\n" -msgid "" -"retrieve and print all attributes from the server. Affects command output." -msgstr "从服务器检索和打印所有属性。影响命令输出。" +#, c-format +msgid "Unable to set LDAP_OPT_PROTOCOL_VERSION\n" +msgstr "不能设置LDAP_OPT_PROTOCOL_VERSION\n" -msgid "Total number of variables env (>= count)" -msgstr "env变量总数(>= count)" +#, c-format +msgid "Simple bind failed\n" +msgstr "简单绑定失败\n" -msgid "Number of variables returned (<= total)" -msgstr "返回变量数(<= total)" +#, c-format +msgid "Operation failed: %s\n" +msgstr "操作失败:%s\n" -msgid "Show all loaded plugins." -msgstr "显示所有加载的插件。" +#, c-format +msgid "Failed to get result: %s\n" +msgstr "获取结果失败:%s\n" -#, python-format -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "已加载%(count)d个插件" +#, c-format +msgid "Timeout exceeded." +msgstr "严重超时" -msgid "Number of plugins loaded" -msgstr "已加载插件数" +#, c-format +msgid "Failed to parse extended result: %s\n" +msgstr "解析扩展结果失败:%s\n" -#, python-format -msgid "%(cver)s client incompatible with %(sver)s server at '%(server)s'" -msgstr "%(cver)s客户端和在'%(server)s'的%(sver)s服务器不兼容" +#, c-format +msgid "Failed to parse result: %s\n" +msgstr "解析结果失败:%s\n" -#, python-format -msgid "unknown error %(code)d from %(server)s: %(error)s" -msgstr "%(server)s上未知的错误%(code)d:%(error)s" +#, c-format +msgid "Missing reply control list!\n" +msgstr "缺少应答控制列表!\n" -msgid "an internal error has occurred" -msgstr "发生了内部错误" +#, c-format +msgid "Missing reply control!\n" +msgstr "缺少应答控制!\n" -#, python-format -msgid "an internal error has occurred on server at '%(server)s'" -msgstr "服务器 '%(server)s' 已经发生了一次内部错误" +#, c-format +msgid "Out of Memory!\n" +msgstr "内存不足!\n" -#, python-format -msgid "unknown command '%(name)s'" -msgstr "未知的命令'%(name)s'" +#, c-format +msgid "Failed to create control!\n" +msgstr "创建控制失败!\n" -#, python-format -msgid "error on server '%(server)s': %(error)s" -msgstr "服务器'%(server)s'错误:%(error)s" +#, c-format +msgid "Failed to bind to server!\n" +msgstr "绑定服务器失败!\n" -#, python-format -msgid "cannot connect to '%(uri)s': %(error)s" -msgstr "不能连接到'%(uri)s':%(error)s" +#, c-format +msgid "Failed to get keytab!\n" +msgstr "获取keytab失败!\n" -#, python-format -msgid "Invalid JSON-RPC request: %(error)s" -msgstr "无效的JSON-RPC请求: %(error)s" +#, c-format +msgid "ber_init() failed, Invalid control ?!\n" +msgstr "ber_init()失败,无效的控制?!\n" -#, python-format -msgid "error marshalling data for XML-RPC transport: %(error)s" -msgstr "XML-RPC传输数据整理错误:%(error)s" +#, c-format +msgid "ber_scanf() failed, unable to find kvno ?!\n" +msgstr "ber_scanf()失败,没有找到kvno?!\n" -#, python-format -msgid "Missing or invalid HTTP Referer, %(referer)s" -msgstr "丢失或者无效的 HTTP Referer, %(referer)s" +#, c-format +msgid "Failed to retrieve encryption type type #%d\n" +msgstr "检索加密类型#%d失败\n" -#, python-format -msgid "Kerberos error: %(major)s/%(minor)s" -msgstr "Kerberos 错误: %(major)s/%(minor)s" +#, c-format +msgid "Failed to retrieve encryption type %1$s (#%2$d)\n" +msgstr "检索加密类型%1$s (#%2$d)失败\n" -msgid "did not receive Kerberos credentials" -msgstr "没有收到Kerberos凭证" +#, c-format +msgid "Failed to retrieve any keys" +msgstr "未能检索任何密钥" -#, python-format -msgid "Service '%(service)s' not found in Kerberos database" -msgstr "在Kerberos数据库中没有找到服务'%(service)s'" +msgid "Failed to decode control reply!\n" +msgstr "解码控制应答失败!\n" -msgid "No credentials cache found" -msgstr "没有找到凭证缓存" +msgid "New Principal Password" +msgstr "新的主体密码" -msgid "Ticket expired" -msgstr "票据过期" - -msgid "Credentials cache permissions incorrect" -msgstr "凭证缓存权限不正确" - -msgid "Bad format in credentials cache" -msgstr "凭证缓存格式错误" - -msgid "Cannot resolve KDC for requested realm" -msgstr "请求域中不能解析KDC" - -msgid "Session error" -msgstr "会话错误" - -#, python-format -msgid "Principal %(principal)s cannot be authenticated: %(message)s" -msgstr "不能认证主体%(principal)s:%(message)s" - -#, python-format -msgid "Insufficient access: %(info)s" -msgstr "访问受限:%(info)s" - -#, python-format -msgid "command '%(name)s' takes no arguments" -msgstr "命令'%(name)s'没有参数" - -#, python-format -msgid "command '%(name)s' takes at most %(count)d argument" -msgid_plural "command '%(name)s' takes at most %(count)d arguments" -msgstr[0] "命令'%(name)s'最多能带%(count)d个参数" - -#, python-format -msgid "overlapping arguments and options: %(names)s" -msgstr "覆盖参数和选项:%(names)s" - -#, python-format -msgid "'%(name)s' is required" -msgstr "需要'%(name)s'" - -#, python-format -msgid "invalid '%(name)s': %(error)s" -msgstr "无效的'%(name)s':%(error)s" - -#, python-format -msgid "api has no such namespace: '%(name)s'" -msgstr "api没有这样的命名空间:'%(name)s'" - -msgid "Passwords do not match" -msgstr "密码不匹配" - -msgid "Command not implemented" -msgstr "命令没有实现" - -msgid "Client is not configured. Run ipa-client-install." -msgstr "客户端没有配置。运行ipa-client-install。" - -#, python-format -msgid "Could not get %(name)s interactively" -msgstr "不能交互式地获取%(name)s" - -#, python-format -msgid "Command '%(name)s' has been deprecated" -msgstr "命令'%(name)s'已被弃用" - -#, python-format -msgid "Domain '%(domain)s' is not a root domain for forest '%(forest)s'" -msgstr "域'%(domain)s'不是一个森林'%(forest)s'的根域" - -#, python-format -msgid "%(reason)s" -msgstr "%(reason)s" - -msgid "This entry already exists" -msgstr "条目已经存在" - -msgid "You must enroll a host in order to create a host service" -msgstr "要创建一个主机服务,你必须注册一个主机" - -#, python-format -msgid "" -"Service principal is not of the form: service/fully-qualified host name: " -"%(reason)s" -msgstr "服务主体不是这种格式:服务名/完全限定的主机名:%(reason)s" - -msgid "" -"The realm for the principal does not match the realm for this IPA server" -msgstr "主体域在该IPA服务器域中不匹配" - -msgid "This command requires root access" -msgstr "该命令需要root访问权限" - -msgid "This is already a posix group" -msgstr "这已经是一个posix组" - -#, python-format -msgid "Principal is not of the form user@REALM: '%(principal)s'" -msgstr "主体不是这种格式user@REALM:'%(principal)s'" - -msgid "This entry is already enabled" -msgstr "条目已启用" - -msgid "This entry is already disabled" -msgstr "条目已禁用" - -msgid "This entry cannot be enabled or disabled" -msgstr "条目不能被启用或禁用" - -msgid "This entry is not a member" -msgstr "条目不是一个成员" - -msgid "A group may not be a member of itself" -msgstr "一个组不能是自己的成员" - -msgid "This entry is already a member" -msgstr "条目已经时一个成员" - -#, python-format -msgid "Base64 decoding failed: %(reason)s" -msgstr "Base64解码失败: %(reason)s" - -msgid "A group may not be added as a member of itself" -msgstr "一个组不能是自己的成员" - -msgid "The default users group cannot be removed" -msgstr "默认的用户组不成被删除" - -msgid "Deleting a managed group is not allowed. It must be detached first." -msgstr "删除一个管理组时不允许的。它必须先分离出来。" - -msgid "A managed group cannot have a password policy." -msgstr "管理组不能有密码策略。" - -#, python-format -msgid "'%(entry)s' doesn't have a certificate." -msgstr "'%(entry)s'没有证书。" - -#, python-format -msgid "Unable to create private group. A group '%(group)s' already exists." -msgstr "不能创建私有组。组'%(group)s'已存在。" - -#, python-format -msgid "" -"A problem was encountered when verifying that all members were %(verb)s: " -"%(exc)s" -msgstr "遇到的问题是什么时候验证所有成员是%(verb)s:%(exc)s" - -#, python-format -msgid "%(attr)s does not contain '%(value)s'" -msgstr "%(attr)s没有包含'%(value)s'" - -#, python-format -msgid "" -"The search criteria was not specific enough. Expected 1 and found %(found)d." -msgstr "查找条件不够具体。预期1和找到%(found)d。" - -msgid "This group already allows external members" -msgstr "该组已允许外部成员" - -msgid "This group cannot be posix because it is external" -msgstr "该组不是posix因为它是外部的" - -msgid "This is already a posix group and cannot be converted to external one" -msgstr "这已经是一个posix组了,并且不能转换为外部的" - -#, python-format -msgid "Server removal aborted: %(reason)s." -msgstr "服务器删除失败:%(reason)s。" - -#, python-format -msgid "%(operation)s is not supported for %(principal_type)s principals" -msgstr "%(operation)s不支持主体 %(principal_type)s" - -#, python-format -msgid "Request failed with status %(status)s: %(reason)s" -msgstr "请求失败状态%(status)s:%(reason)s" - -#, python-format -msgid "no command nor help topic '%(topic)s'" -msgstr "没有命令也没有帮助主题'%(topic)s'" - -msgid "change collided with another change" -msgstr "修改冲突" - -msgid "no modifications to be performed" -msgstr "没有修改" - -msgid "limits exceeded for this query" -msgstr "超出该查询的限制" - -#, python-format -msgid "%(info)s" -msgstr "%(info)s" - -msgid "modifying primary key is not allowed" -msgstr "修改主键是不允许的" - -#, python-format -msgid "%(attr)s: Only one value allowed." -msgstr "%(attr)s:仅允许一个值。" - -#, python-format -msgid "%(attr)s: Invalid syntax." -msgstr "%(attr)s:无效的语法。" - -#, python-format -msgid "Bad search filter %(info)s" -msgstr "不正确的查询筛选器%(info)s" - -msgid "Not allowed on non-leaf entry" -msgstr "在非叶子条目上是不允许的" - -msgid "LDAP timeout" -msgstr "LDAP超时" - -#, python-format -msgid "%(task)s LDAP task timeout, Task DN: '%(task_dn)s'" -msgstr "%(task)s LDAP任务超时,任务DN:'%(task_dn)s'" - -msgid "Configured time limit exceeded" -msgstr "配置时间超出限制" - -msgid "Configured size limit exceeded" -msgstr "配置大小超出限制" - -msgid "Configured administrative server limit exceeded" -msgstr "配置管理服务器超出限制" - -#, python-format -msgid "Certificate operation cannot be completed: %(error)s" -msgstr "证书操作没有完成:%(error)s" - -#, python-format -msgid "Certificate format error: %(error)s" -msgstr "证书格式错误:%(error)s" - -msgid "Already registered" -msgstr "已注册" - -msgid "Not registered yet" -msgstr "尚未注册" - -#, python-format -msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it" -msgstr "%(key)s不能被删除因为%(label)s %(dependent)s需要它" - -#, python-format -msgid "" -"%(key)s cannot be deleted or disabled because it is the last member of " -"%(label)s %(container)s" -msgstr "%(key)s不能被删除或禁用因为它是%(label)s %(container)s的最后一个成员" - -#, python-format -msgid "%(label)s %(key)s cannot be deleted/modified: %(reason)s" -msgstr "%(label)s %(key)s不能被删除/修改:%(reason)s" - -#, python-format -msgid "%(name)s certificate is not valid" -msgstr "%(name)s证书无效" - -#, python-format -msgid "Schema is up to date (FP '%(fingerprint)s', TTL %(ttl)s s)" -msgstr "模式是最新的(FP '%(fingerprint)s', TTL %(ttl)s s)" - -#, python-format -msgid "Host '%(hostname)s' does not have corresponding DNS A/AAAA record" -msgstr "主机'%(hostname)s'没有相配的DNS A/AAAA记录" - -#, python-format -msgid "DNS check failed: Expected {%(expected)s} got {%(got)s}" -msgstr "DNS检测失败:预期的{%(expected)s},得到的{%(got)s}" - -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "再次输入 %(label)s进行校验: " +msgid "Verify Principal Password" +msgstr "验证主体密码" #, c-format msgid "Passwords do not match!" msgstr "密码不匹配!" -msgid "No matching entries found" -msgstr "发现了不匹配的条目" - -msgid "Topic or Command" -msgstr "主题或命令" - -msgid "The topic or command name." -msgstr "主题或命令名。" - -msgid "Topic commands:" -msgstr "主题命令:" - -msgid "To get command help, use:" -msgstr "获取命令帮助,使用:" - -msgid "Command name" -msgstr "命令名" - -msgid "Positional arguments" -msgstr "位置参数" - -#, python-format -msgid "Same as --%s" -msgstr "相同于 --%s" - -msgid "Deprecated options" -msgstr "已弃用的选项" - -msgid "No file to read" -msgstr "无文件可读" - -msgid "any of the configured servers" -msgstr "任何已配置的服务器" - -msgid "Additional instructions:" -msgstr "附加指示:" - -#, python-format -msgid "" -"API Version number was not sent, forward compatibility not guaranteed. " -"Assuming server's API version, %(server_version)s" -msgstr "" -"没有发送API版本号,不能保证向前兼容。假定服务器的API版本%(server_version)s" - -msgid "" -"DNS forwarder semantics changed since IPA 4.0.\n" -"You may want to use forward zones (dnsforwardzone-*) instead.\n" -"For more details read the docs." -msgstr "" -"自从IPA 4.0后DNS转发器语义改变了。你可以使用正向区域(dnsforwardzone-*)来替" -"代。查看帮助文档获取更多详细信息。" - -#, python-format -msgid "" -"DNSSEC support is experimental.\n" -"%(additional_info)s" -msgstr "DNSSEC支持是实验性的。%(additional_info)s" - -#, python-format -msgid "'%(option)s' option is deprecated. %(additional_info)s" -msgstr "'%(option)s'选项已弃用。%(additional_info)s" - -#, python-format -msgid "" -"Semantic of %(label)s was changed. %(current_behavior)s\n" -"%(hint)s" -msgstr "%(label)s语义已改变了。%(current_behavior)s %(hint)s" - -#, python-format -msgid "DNS server %(server)s: %(error)s." -msgstr "DNS服务器%(server)s:%(error)s。" - -#, python-format -msgid "" -"DNS server %(server)s does not support DNSSEC: %(error)s.\n" -"If DNSSEC validation is enabled on IPA server(s), please disable it." -msgstr "" -"DNS服务器%(server)s不支持DNSSEC:%(error)s。如果DNSSEC认证在IPA服务器上启用" -"了,请禁用它。" - -#, python-format -msgid "" -"forward zone \"%(fwzone)s\" is not effective because of missing proper NS " -"delegation in authoritative zone \"%(authzone)s\". Please add NS record " -"\"%(ns_rec)s\" to parent zone \"%(authzone)s\"." -msgstr "" -"正向\"%(fwzone)s\"无效因为在认证区域\"%(authzone)s\"缺少合适的NS记录。请添加" -"NS记录\"%(ns_rec)s\"到父区域\"%(authzone)s\"。" - -#, python-format -msgid "" -"DNS server %(server)s does not support EDNS0 (RFC 6891): %(error)s.\n" -"If DNSSEC validation is enabled on IPA server(s), please disable it." -msgstr "" -"DNS服务器%(server)s不支持EDNS0 (RFC 6891):%(error)s。如果DNSSEC认证在IPA服务" -"器上启用了,请禁用它。" - -#, python-format -msgid "" -"DNSSEC validation failed: %(error)s.\n" -"Please verify your DNSSEC configuration or disable DNSSEC validation on all " -"IPA servers." -msgstr "" -"DNSSEC认证失败:%(error)s。请确认你的DNSSEC配置或者在所有IPA服务器中禁用" -"DNSSEC认证。" - -#, python-format -msgid "" -"The _kerberos TXT record from domain %(domain)s could not be created " -"(%(error)s).\n" -"This can happen if the zone is not managed by IPA. Please create the record " -"manually, containing the following value: '%(realm)s'" -msgstr "" -"不能创建域%(domain)s中的_kerberos TXT记录(%(error)s)。可能是因为该区域没有被" -"IPA管理。请手动创建该记录,包含下面值:'%(realm)s'" - -#, python-format -msgid "" -"The _kerberos TXT record from domain %(domain)s could not be removed " -"(%(error)s).\n" -"This can happen if the zone is not managed by IPA. Please remove the record " -"manually." -msgstr "" -"不能移除域%(domain)s中的_kerberos TXT记录(%(error)s)。可能是因为该区域没有被" -"IPA管理。请手动移除该记录。" - -msgid "" -"No DNSSEC key master is installed. DNSSEC zone signing will not work until " -"the DNSSEC key master is installed." -msgstr "没有安装DNSSEC密钥主机。DNSSEC区域签名不会工作直到安装DNSSEC密钥主机。" - -#, python-format -msgid "" -"Relative record name '%(record)s' contains the zone name '%(zone)s' as a " -"suffix, which results in FQDN '%(fqdn)s'. This is usually a mistake caused " -"by a missing dot at the end of the name specification." -msgstr "" -"相对记录名'%(record)s'将区域名'%(zone)s'当作一个后缀,导致FQDN '%(fqdn)s'。这" -"通常是由于在名称规范后缺少一个点号引起的错误。" - -#, python-format -msgid "'%(command)s' is deprecated. %(additional_info)s" -msgstr "'%(command)s'已被弃用。%(additional_info)s" - -#, python-format -msgid "Search result has been truncated: %(reason)s" -msgstr "查找结果被截断:%(reason)s" - -#, python-format -msgid "" -"Your trust to %(domain)s is broken. Please re-create it by running 'ipa " -"trust-add' again." -msgstr "你对域%(domain)s的信任已中断。请再次运行'ipa trust-add'来重新创建它。" - -#, python-format -msgid "DNS record(s) of host %(host)s could not be removed. (%(reason)s)" -msgstr "主机%(host)s的DNS记录不能被移除。(%(reason)s)" - -#, python-format -msgid "Update of system record '%(record)s' failed with error: %(error)s" -msgstr "更新系统记录'%(record)s'失败:%(error)s" - -#, python-format -msgid "" -"IPA does not manage the zone %(zone)s, please add records to your DNS server " -"manually" -msgstr "IPA没有管理区域%(zone)s,请手动在你的DNS服务器上添加记录" - -msgid "" -"Automatic update of DNS system records failed. Please re-run update of " -"system records manually to get list of missing records." -msgstr "自动更新DNS系统记录失败。请手动重新运行更新系统记录来获取缺少的记录。" - -#, python-format -msgid "" -"Service %(service)s requires restart on IPA server %(server)s to apply " -"configuration changes." -msgstr "应用改变的配置需要在IPA服务器%(server)s上重启服务%(service)s。" - -#, python-format -msgid "" -"No DNS servers in IPA location %(location)s. Without DNS servers location is " -"not working as expected." -msgstr "" -"在IPA位置%(location)s没有DNS服务器。没有DNS服务器位置是不会按预期工作的。" - -#, python-format -msgid "%(subject)s: Invalid certificate. %(reason)s" -msgstr "%(subject)s:无效的证书。%(reason)s" - -msgid "Results are truncated, try a more specific search" -msgstr "结果被截断,请尝试更明确的搜索" - -#, python-format -msgid "Unknown option: %(option)s" -msgstr "未知的选项:%(option)s" - -msgid "" -"Retrieve and print all attributes from the server. Affects command output." -msgstr "从服务器检索和打印所有属性。影响命令输出。" - -msgid "Print entries as stored on the server. Only affects output format." -msgstr "打印存储在服务器上的条目。仅影响输出格式。" - -msgid "Client version. Used to determine if server will accept request." -msgstr "客户端版本。用来确定是否服务器接受请求。" - -msgid "Forward to server instead of running locally" -msgstr "转发到服务器而不是在本地运行" - -msgid "incorrect type" -msgstr "不正确的类型" - -msgid "Only one value is allowed" -msgstr "只允许一个值" - -msgid "this option is deprecated" -msgstr "该选项已被弃用" - -msgid "must be True or False" -msgstr "必须是True或False" - -msgid "must be an integer" -msgstr "必须是一个整数" - -#, python-format -msgid "must be at least %(minvalue)d" -msgstr "必须至少%(minvalue)d" - -#, python-format -msgid "can be at most %(maxvalue)d" -msgstr "最多%(maxvalue)d" - -msgid "must be a decimal number" -msgstr "必须是一个十进制数" - -#, python-format -msgid "must be at least %(minvalue)s" -msgstr "必须至少%(minvalue)s" - -#, python-format -msgid "can be at most %(maxvalue)s" -msgstr "最多%(maxvalue)s" - -#, python-format -msgid "" -"number class '%(cls)s' is not included in a list of allowed number classes: " -"%(allowed)s" -msgstr "数字类'%(cls)s'不在允许的数字类列表中:%(allowed)s" - -#, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "必须匹配模式\"%(pattern)s\"" - -msgid "must be binary data" -msgstr "必须是二进制数据" - -#, python-format -msgid "must be at least %(minlength)d bytes" -msgstr "必须至少%(minlength)d字节" - -#, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "最多%(maxlength)d字节" - -#, python-format -msgid "must be exactly %(length)d bytes" -msgstr "必须恰好是%(length)d字节" - -msgid "must be Unicode text" -msgstr "必须是Unicode文本" - -msgid "Leading and trailing spaces are not allowed" -msgstr "开头和结尾空格是不允许的" - -#, python-format -msgid "must be at least %(minlength)d characters" -msgstr "必须至少%(minlength)d字符" - -#, python-format -msgid "can be at most %(maxlength)d characters" -msgstr "最多%(maxlength)d字符" - -#, python-format -msgid "must be exactly %(length)d characters" -msgstr "必须恰好是%(length)d字符" - -#, python-format -msgid "The character %(char)r is not allowed." -msgstr "字符%(char)r是不允许的。" - -#, python-format -msgid "must be '%(value)s'" -msgstr "必须是'%(value)s'" - -#, python-format -msgid "must be one of %(values)s" -msgstr "必须是%(values)s中的一个" - -msgid "must be datetime value" -msgstr "必须是时间值" - -msgid "does not match any of accepted formats: " -msgstr "不匹配任何可接受的格式:" - -msgid "incomplete time value" -msgstr "不完整的时间值" - -msgid "must be DNS name" -msgstr "必须是DNS名" - -msgid "must be absolute" -msgstr "必须是绝对的" - -msgid "must be relative" -msgstr "必须是相对的" - -msgid "must be dictionary" -msgstr "必须是字典" - -msgid "must be Kerberos principal" -msgstr "必须是Kerberos主体" - -#, python-format -msgid "Malformed principal: '%(value)s'" -msgstr "有缺陷的主体:'%(value)s'" - -msgid "Service principal is required" -msgstr "需要服务主体" - -msgid "A string searched in all relevant object attributes" -msgstr "在所有相关对象中搜索字符串" - -msgid "A dictionary representing an LDAP entry" -msgstr "一个字典代表一个LDAP条目" - -msgid "A list of LDAP entries" -msgstr "LDAP条目列表" - -msgid "All commands should at least have a result" -msgstr "所有命令至少有一个返回值" - -msgid "User-friendly description of action performed" -msgstr "方便用户的执行操作描述" - -msgid "Number of entries returned" -msgstr "返回的条目数" - -msgid "True if not all results were returned" -msgstr "如果不是所有结果都返回了,那么为真" - -msgid "List of deletions that failed" -msgstr "删除失败的列表" - -msgid "True means the operation was successful" -msgstr "正确的表示操作成功" - -msgid "Filename is empty" -msgstr "文件名为空" - -#, python-format -msgid "Permission denied: %(file)s" -msgstr "权限阻止:%(file)s" - -msgid "empty DNS label" -msgstr "空的DNS标签" - -msgid "DNS label cannot be longer that 63 characters" -msgstr "DNS标签不能长于63个字符" - -#, python-format -msgid "" -"only letters, numbers, %(chars)s are allowed. DNS label may not start or end " -"with %(chars2)s" -msgstr "只允许字母,数字和%(chars)s。DNS标签不能以%(chars2)s开始或结束" - -msgid "too many '@' characters" -msgstr "太多'@'字符" - -msgid "cannot be longer that 255 characters" -msgstr "不能长于255个字符" - -msgid "hostname contains empty label (consecutive dots)" -msgstr "主机名包含空的标签(连续的点)" - -msgid "not fully qualified" -msgstr "没有完全限制" - -msgid "invalid SSH public key" -msgstr "无效的SSH公钥" - -msgid "options are not allowed" -msgstr "选项是不允许的" - -msgid "invalid hostmask" -msgstr "无效的hostmask" - -#, python-format -msgid "query '%(owner)s %(rtype)s': %(error)s" -msgstr "查询'%(owner)s %(rtype)s':%(error)s" - -#, python-format -msgid "query '%(owner)s %(rtype)s' with EDNS0: %(error)s" -msgstr "用EDNS0查询'%(owner)s %(rtype)s':%(error)s" - -#, python-format -msgid "" -"answer to query '%(owner)s %(rtype)s' is missing DNSSEC signatures (no RRSIG " -"data)" -msgstr "查询答案'%(owner)s %(rtype)s'缺少DNSSEC签名(没有RRSIG数据)" - -#, python-format -msgid "record '%(owner)s %(rtype)s' failed DNSSEC validation on server %(ip)s" -msgstr "记录'%(owner)s %(rtype)s'DNSSEC验证服务器 %(ip)s失败" - -msgid "invalid escape code in domain name" -msgstr "无效的域名转换代码" - -msgid "domain name cannot be longer than 255 characters" -msgstr "域名不能长于255个字符" - -msgid "DNS label cannot be longer than 63 characters" -msgstr "DNS标签不能长于63个字符" - -msgid "invalid domain name" -msgstr "无效的域名" - -#, python-format -msgid "domain name '%(domain)s' should be normalized to: %(normalized)s" -msgstr "域名'%(domain)s'应该规范化:%(normalized)s" - -#, python-format -msgid "invalid domain-name: %s" -msgstr "无效的域名:%s" - -#, python-format -msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!" -msgstr "无效的IP地址版本(是%(value)d,必须是%(required_value)d)!" - -msgid "invalid IP address format" -msgstr "无效的IP地址格式" - -#, python-format -msgid "%(port)s is not a valid port" -msgstr "%(port)s不是一个有效的端口" - -msgid "" -"at least one value equal to the canonical principal name must be present" -msgstr "必须存在至少一个值等同规范主体名称" - -msgid "realm or UPN suffix overlaps with trusted domain namespace" -msgstr "域或UPN后缀覆盖信任域命名空间" +#, c-format +msgid "Failed to open config file %s\n" +msgstr "打开配置文件%s失败\n" #, c-format -msgid "cannot open configuration file %s\n" -msgstr "不能打开配置文件%s\n" +msgid "Failed to parse config file %s\n" +msgstr "解析配置文件%s失败\n" -#, c-format -msgid "cannot stat() configuration file %s\n" -msgstr "不能stat()配置文件%s\n" +msgid "Print as little as possible" +msgstr "打印尽可能少" -#, c-format -msgid "out of memory\n" -msgstr "内存不足\n" +msgid "Output only on errors" +msgstr "仅输出错误" -#, c-format -msgid "read error\n" -msgstr "读取错误\n" +msgid "Contact this specific KDC Server" +msgstr "无法连接指定的KDC服务器" -#, c-format -msgid "Unable to parse principal name\n" -msgstr "无法解析主体名\n" +msgid "Server Name" +msgstr "服务器名" -#, c-format -msgid "Removing principal %s\n" -msgstr "删除主体%s\n" - -#, c-format -msgid "Failed to open keytab\n" -msgstr "打开keytab失败\n" - -#, c-format -msgid "principal not found\n" -msgstr "主体没有找到\n" - -#, c-format -msgid "Unable to remove entry\n" -msgstr "无法删除条目\n" - -#, c-format -msgid "Unable to parse principal\n" -msgstr "服务解析主体\n" - -#, c-format -msgid "realm not found\n" -msgstr "域找不到\n" - -msgid "Print debugging information" -msgstr "打印调试信息" - -msgid "Debugging output" -msgstr "调试输出" - -msgid "" -"The principal to remove from the keytab (ex: ftp/ftp.example.com@EXAMPLE.COM)" -msgstr "从keytab中待删除的主体(例如:ftp/ftp.example.com@EXAMPLE.COM)" +msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" +msgstr "为主体获取一个keytab(例如:ftp/ftp.example.com@EXAMPLE.COM)" msgid "Kerberos Service Principal Name" msgstr "Kerberos服务主体名" +msgid "File were to store the keytab information" +msgstr "用以存储keytab信息的文件" + msgid "Keytab File Name" msgstr "Keytab文件名" -msgid "Remove all principals in this realm" -msgstr "删除该域中的所有主体" +msgid "Encryption types to request" +msgstr "加密类型要求" -msgid "Realm name" -msgstr "域名" +msgid "Comma separated encryption types list" +msgstr "以逗号分隔的加密类型列表" + +msgid "Show the list of permitted encryption types and exit" +msgstr "显示允许的加密类型列表并退出" + +msgid "Permitted Encryption Types" +msgstr "允许的加密类型" + +msgid "Asks for a non-random password to use for the principal" +msgstr "要求一个非随机密码用于主体" + +msgid "DN to bind as if not using kerberos" +msgstr "DN绑定好像没有使用kerberos" + +msgid "LDAP password" +msgstr "LDAP密码" + +msgid "password to use if not using kerberos" +msgstr "如果没有使用kerberos,则使用密码" + +msgid "Retrieve current keys without changing them" +msgstr "检索当前密钥不去改变它们" #, c-format msgid "Kerberos context initialization failed\n" msgstr "Kerberos文本初始化失败\n" #, c-format -msgid "Failed to open keytab '%1$s': %2$s\n" -msgstr "打开keytab'%1$s':%2$s失败\n" +msgid "No system preferred enctypes ?!\n" +msgstr "没有系统首选的加密类型?!\n" #, c-format -msgid "Closing keytab failed\n" +msgid "Supported encryption types:\n" +msgstr "支持的加密类型:\n" + +#, c-format +msgid "Warning: failed to convert type (#%d)\n" +msgstr "警告:转换类型失败(#%d)\n" + +#, c-format +msgid "Bind password required when using a bind DN.\n" +msgstr "在使用一个绑定DN时需要绑定密码。\n" + +#, c-format +msgid "Server name not provided and unavailable\n" +msgstr "服务器名没有提供或不可用\n" + +#, c-format +msgid "Incompatible options provided (-r and -P)\n" +msgstr "提供了不兼容的选项(-r和-P)\n" + +#, c-format +msgid "" +"Warning: salt types are not honored with randomized passwords (see opt. -P)\n" +msgstr "警告:盐值类型没有授予随机密码(查看选项-P)\n" + +#, c-format +msgid "Invalid Service Principal Name\n" +msgstr "无效的服务主体名\n" + +#, c-format +msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" +msgstr "没有找到Kerberos凭证缓存。你有Kerberos票据吗?\n" + +#, c-format +msgid "" +"Kerberos User Principal not found. Do you have a valid Credential Cache?\n" +msgstr "没有找到Kerberos用户主体。你有有效的凭证缓存吗?\n" + +#, c-format +msgid "Failed to open Keytab\n" +msgstr "打开Keytab失败\n" + +#, c-format +msgid "Retrying with pre-4.0 keytab retrieval method...\n" +msgstr "用pre-4.0 keytab检索方法重试...\n" + +#, c-format +msgid "Failed to create key material\n" +msgstr "创建密钥材料失败\n" + +#, c-format +msgid "Failed to get keytab\n" +msgstr "获取keytab失败\n" + +#, c-format +msgid "Failed to add key to the keytab\n" +msgstr "向keytab中添加密钥失败\n" + +#, c-format +msgid "Failed to close the keytab\n" msgstr "关闭keytab失败\n" +#, c-format +msgid "Keytab successfully retrieved and stored in: %s\n" +msgstr "Keytab检索成功并将其存储在:%s\n" + #, c-format msgid "No permission to join this host to the IPA domain.\n" msgstr "没有权限将该主机加入到IPA域。\n" @@ -953,10 +287,6 @@ msgstr "不能初始化连接到ldap服务器:%s" msgid "Unable to enable SSL in LDAP\n" msgstr "在LDAP中不能启用SSL\n" -#, c-format -msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" -msgstr "不能设置LDAP_OPT_X_SASL_NOCANON\n" - #, c-format msgid "Unable to set LDAP version\n" msgstr "不能设置LDAP版本\n" @@ -1133,267 +463,275 @@ msgid "password" msgstr "密码" #, c-format -msgid "Kerberos context initialization failed: %1$s (%2$d)\n" -msgstr "Kerberos文本初始化失败:%1$s (%2$d)\n" +msgid "Unable to parse principal name\n" +msgstr "无法解析主体名\n" #, c-format -msgid "Unable to parse principal: %1$s (%2$d)\n" -msgstr "不能解析主体:%1$s (%2$d)\n" +msgid "Removing principal %s\n" +msgstr "删除主体%s\n" #, c-format -msgid "No keys accepted by KDC\n" -msgstr "没有KDC可接受的密钥\n" +msgid "Failed to open keytab\n" +msgstr "打开keytab失败\n" #, c-format -msgid "Out of memory \n" -msgstr "内存不足\n" +msgid "principal not found\n" +msgstr "主体没有找到\n" #, c-format -msgid "Unable to set LDAP_OPT_X_TLS\n" -msgstr "不能设置LDAP_OPT_X_TLS\n" +msgid "Unable to remove entry\n" +msgstr "无法删除条目\n" #, c-format -msgid "Unable to set LDAP_OPT_X_TLS_CERTIFICATE\n" -msgstr "不能设置LDAP_OPT_X_TLS_CERTIFICATE\n" +msgid "Unable to parse principal\n" +msgstr "服务解析主体\n" #, c-format -msgid "Unable to initialize ldap library!\n" -msgstr "不能初始化ldap库!\n" +msgid "realm not found\n" +msgstr "域找不到\n" -#, c-format -msgid "Unable to set LDAP_OPT_PROTOCOL_VERSION\n" -msgstr "不能设置LDAP_OPT_PROTOCOL_VERSION\n" +msgid "Print debugging information" +msgstr "打印调试信息" -#, c-format -msgid "Simple bind failed\n" -msgstr "简单绑定失败\n" +msgid "Debugging output" +msgstr "调试输出" -#, c-format -msgid "Operation failed: %s\n" -msgstr "操作失败:%s\n" - -#, c-format -msgid "Failed to get result: %s\n" -msgstr "获取结果失败:%s\n" - -#, c-format -msgid "Timeout exceeded." -msgstr "严重超时" - -#, c-format -msgid "Failed to parse extended result: %s\n" -msgstr "解析扩展结果失败:%s\n" - -#, c-format -msgid "Failed to parse result: %s\n" -msgstr "解析结果失败:%s\n" - -#, c-format -msgid "Missing reply control list!\n" -msgstr "缺少应答控制列表!\n" - -#, c-format -msgid "Missing reply control!\n" -msgstr "缺少应答控制!\n" - -#, c-format -msgid "Out of Memory!\n" -msgstr "内存不足!\n" - -#, c-format -msgid "Failed to create control!\n" -msgstr "创建控制失败!\n" - -#, c-format -msgid "Failed to bind to server!\n" -msgstr "绑定服务器失败!\n" - -#, c-format -msgid "Failed to get keytab!\n" -msgstr "获取keytab失败!\n" - -#, c-format -msgid "ber_init() failed, Invalid control ?!\n" -msgstr "ber_init()失败,无效的控制?!\n" - -#, c-format -msgid "ber_scanf() failed, unable to find kvno ?!\n" -msgstr "ber_scanf()失败,没有找到kvno?!\n" - -#, c-format -msgid "Failed to retrieve encryption type type #%d\n" -msgstr "检索加密类型#%d失败\n" - -#, c-format -msgid "Failed to retrieve encryption type %1$s (#%2$d)\n" -msgstr "检索加密类型%1$s (#%2$d)失败\n" - -#, c-format -msgid "Failed to retrieve any keys" -msgstr "未能检索任何密钥" - -msgid "Failed to decode control reply!\n" -msgstr "解码控制应答失败!\n" - -msgid "New Principal Password" -msgstr "新的主体密码" - -msgid "Verify Principal Password" -msgstr "验证主体密码" - -#, c-format -msgid "Failed to open config file %s\n" -msgstr "打开配置文件%s失败\n" - -#, c-format -msgid "Failed to parse config file %s\n" -msgstr "解析配置文件%s失败\n" - -msgid "Print as little as possible" -msgstr "打印尽可能少" - -msgid "Output only on errors" -msgstr "仅输出错误" - -msgid "Contact this specific KDC Server" -msgstr "无法连接指定的KDC服务器" - -msgid "Server Name" -msgstr "服务器名" - -msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" -msgstr "为主体获取一个keytab(例如:ftp/ftp.example.com@EXAMPLE.COM)" - -msgid "File were to store the keytab information" -msgstr "用以存储keytab信息的文件" - -msgid "Encryption types to request" -msgstr "加密类型要求" - -msgid "Comma separated encryption types list" -msgstr "以逗号分隔的加密类型列表" - -msgid "Show the list of permitted encryption types and exit" -msgstr "显示允许的加密类型列表并退出" - -msgid "Permitted Encryption Types" -msgstr "允许的加密类型" - -msgid "Asks for a non-random password to use for the principal" -msgstr "要求一个非随机密码用于主体" - -msgid "DN to bind as if not using kerberos" -msgstr "DN绑定好像没有使用kerberos" - -msgid "LDAP password" -msgstr "LDAP密码" - -msgid "password to use if not using kerberos" -msgstr "如果没有使用kerberos,则使用密码" - -msgid "Retrieve current keys without changing them" -msgstr "检索当前密钥不去改变它们" - -#, c-format -msgid "No system preferred enctypes ?!\n" -msgstr "没有系统首选的加密类型?!\n" - -#, c-format -msgid "Supported encryption types:\n" -msgstr "支持的加密类型:\n" - -#, c-format -msgid "Warning: failed to convert type (#%d)\n" -msgstr "警告:转换类型失败(#%d)\n" - -#, c-format -msgid "Bind password required when using a bind DN.\n" -msgstr "在使用一个绑定DN时需要绑定密码。\n" - -#, c-format -msgid "Server name not provided and unavailable\n" -msgstr "服务器名没有提供或不可用\n" - -#, c-format -msgid "Incompatible options provided (-r and -P)\n" -msgstr "提供了不兼容的选项(-r和-P)\n" - -#, c-format msgid "" -"Warning: salt types are not honored with randomized passwords (see opt. -P)\n" -msgstr "警告:盐值类型没有授予随机密码(查看选项-P)\n" +"The principal to remove from the keytab (ex: ftp/ftp.example.com@EXAMPLE.COM)" +msgstr "从keytab中待删除的主体(例如:ftp/ftp.example.com@EXAMPLE.COM)" + +msgid "Remove all principals in this realm" +msgstr "删除该域中的所有主体" + +msgid "Realm name" +msgstr "域名" #, c-format -msgid "Invalid Service Principal Name\n" -msgstr "无效的服务主体名\n" +msgid "Failed to open keytab '%1$s': %2$s\n" +msgstr "打开keytab'%1$s':%2$s失败\n" #, c-format -msgid "Kerberos Credential Cache not found. Do you have a Kerberos Ticket?\n" -msgstr "没有找到Kerberos凭证缓存。你有Kerberos票据吗?\n" - -#, c-format -msgid "" -"Kerberos User Principal not found. Do you have a valid Credential Cache?\n" -msgstr "没有找到Kerberos用户主体。你有有效的凭证缓存吗?\n" - -#, c-format -msgid "Failed to open Keytab\n" -msgstr "打开Keytab失败\n" - -#, c-format -msgid "Retrying with pre-4.0 keytab retrieval method...\n" -msgstr "用pre-4.0 keytab检索方法重试...\n" - -#, c-format -msgid "Failed to create key material\n" -msgstr "创建密钥材料失败\n" - -#, c-format -msgid "Failed to get keytab\n" -msgstr "获取keytab失败\n" - -#, c-format -msgid "Failed to add key to the keytab\n" -msgstr "向keytab中添加密钥失败\n" - -#, c-format -msgid "Failed to close the keytab\n" +msgid "Closing keytab failed\n" msgstr "关闭keytab失败\n" #, c-format -msgid "Keytab successfully retrieved and stored in: %s\n" -msgstr "Keytab检索成功并将其存储在:%s\n" +msgid "cannot open configuration file %s\n" +msgstr "不能打开配置文件%s\n" + +#, c-format +msgid "cannot stat() configuration file %s\n" +msgstr "不能stat()配置文件%s\n" + +#, c-format +msgid "out of memory\n" +msgstr "内存不足\n" + +#, c-format +msgid "read error\n" +msgstr "读取错误\n" + +#, python-format +msgid "objectclass %s not found" +msgstr "对象类%s没找到" + +#, python-format +msgid "Retrieving CA cert chain failed: %s" +msgstr "检索CA证书链失败:%s" + +#, python-format +msgid "request failed with HTTP status %d" +msgstr "请求失败HTTP状态%d" + +#, python-format +msgid "Retrieving CA status failed: %s" +msgstr "检索CA状态失败:%s" + +#, python-format +msgid "Retrieving CA status failed with status %d" +msgstr "检索CA状态失败%d" + +msgid "Failed members" +msgstr "失败的成员" + +msgid "Failed source hosts/hostgroups" +msgstr "失败的源主机/主机组" + +msgid "Failed hosts/hostgroups" +msgstr "失败的主机/主机组" + +msgid "Failed users/groups" +msgstr "失败的用户/用户组" + +msgid "Failed service/service groups" +msgstr "失败的服务/服务组" + +msgid "Failed to remove" +msgstr "移除失败" + +msgid "Failed RunAs" +msgstr "作为其他用户运行失败" + +msgid "Failed RunAsGroup" +msgstr "作为其他用户组运行失败" + +msgid "Failed profiles" +msgstr "错误的配置文件" + +msgid "Failed allowed to retrieve keytab" +msgstr "不允许检索keytab" + +msgid "Failed allowed to create keytab" +msgstr "不允许创建keytab" + +msgid "Failed targets" +msgstr "失败的目标" + +msgid "Failed owners" +msgstr "错误的所有者" + +msgid "Delegation name" +msgstr "授权名" + +msgid "Allowed Target" +msgstr "允许的目标" + +msgid "Create a new service delegation rule." +msgstr "创建一个新的服务授权规则。" msgid "" -"\n" -"Plugins not accessible directly through the CLI, commands used internally\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" -"通过CLI不能直接访问插件,需要使用内部命令\n" +"一个属性设置为一个名称/值对。格式是属性=值。对于多值属性,命令替换已存在的" +"值。" -msgid "Dict of I18N messages" -msgstr "国际化消息字典" +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." +msgstr "添加一个属性/值对。格式是属性=值。属性必须时模式的一部分。" -msgid "Export plugin meta-data for the webUI." -msgstr "webUI中导出插件元数据。" +msgid "" +"Retrieve and print all attributes from the server. Affects command output." +msgstr "从服务器检索和打印所有属性。影响命令输出。" -msgid "Name of object to export" -msgstr "导出对象的名称" +msgid "Print entries as stored on the server. Only affects output format." +msgstr "打印存储在服务器上的条目。仅影响输出格式。" -msgid "Name of method to export" -msgstr "导出方法的名称" +msgid "Suppress processing of membership attributes." +msgstr "抑制成员属性的处理。" -msgid "Name of command to export" -msgstr "导出命令的名称" +msgid "User-friendly description of action performed" +msgstr "方便用户的执行操作描述" -msgid "Dict of JSON encoded IPA Objects" -msgstr "JSON编码IPA对象字典" +msgid "Add member to a named service delegation rule." +msgstr "向一个命名服务授权规则中添加成员。" -msgid "Dict of JSON encoded IPA Methods" -msgstr "JSON编码IPA方法字典" +msgid "member principal" +msgstr "成员主体" -msgid "Dict of JSON encoded IPA Commands" -msgstr "JSON编码IPA命令字典" +msgid "principal to add" +msgstr "待添加主体" + +msgid "Members that could not be added" +msgstr "不能被添加的成员" + +msgid "Number of members added" +msgstr "已添加的成员数" + +msgid "Add target to a named service delegation rule." +msgstr "向一个命名服务授权规则中添加目标。" + +msgid "member service delegation target" +msgstr "成员服务授权目标" + +msgid "service delegation targets to add" +msgstr "待添加的服务授权目标" + +msgid "Delete service delegation." +msgstr "删除服务授权。" + +msgid "Continuous mode: Don't stop on errors." +msgstr "连续模式:有错误不停止。" + +msgid "List of deletions that failed" +msgstr "删除失败的列表" + +msgid "Search for service delegations rule." +msgstr "查找服务授权规则。" + +msgid "A string searched in all relevant object attributes" +msgstr "在所有相关对象中搜索字符串" + +msgid "Time Limit" +msgstr "时间限制" + +msgid "Time limit of search in seconds (0 is unlimited)" +msgstr "时间限制在几秒钟内的搜索(0代表无限制)" + +msgid "Size Limit" +msgstr "大小限制" + +msgid "Maximum number of entries returned (0 is unlimited)" +msgstr "返回的最大条目数(0代表无限制)" + +msgid "Primary key only" +msgstr "主键唯一" + +msgid "Results should contain primary key attribute only (\"delegation-name\")" +msgstr "结果应该只包括主键属性(\"delegation-name\")" + +msgid "Number of entries returned" +msgstr "返回的条目数" + +msgid "True if not all results were returned" +msgstr "如果不是所有结果都返回了,那么为真" + +msgid "Remove member from a named service delegation rule." +msgstr "从一个命名服务授权规则中移除成员。" + +msgid "principal to remove" +msgstr "待移除的主体" + +msgid "Members that could not be removed" +msgstr "不能被移除的成员" + +msgid "Number of members removed" +msgstr "已移除成员数" + +msgid "Remove target from a named service delegation rule." +msgstr "从一个命名服务授权规则中移除目标。" + +msgid "service delegation targets to remove" +msgstr "待移除的服务授权目标" + +msgid "Display information about a named service delegation rule." +msgstr "显示一个命名服务授权规则信息。" + +msgid "Rights" +msgstr "权限" + +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." +msgstr "显示该条目的访问权限(需要--all)。更详细的信息请查看ipa帮助页。" + +msgid "Create a new service delegation target." +msgstr "创建一个新的服务授权目标。" + +msgid "Add member to a named service delegation target." +msgstr "向一个命名服务授权规则中添加成员。" + +msgid "Delete service delegation target." +msgstr "删除服务授权目标。" + +msgid "Search for service delegation target." +msgstr "查找服务授权目标。" + +msgid "Remove member from a named service delegation target." +msgstr "从一个命名服务授权目标中移除成员。" + +msgid "Display information about a named service delegation target." +msgstr "显示一个命名服务授权目标信息。" msgid "User name" msgstr "用户名" @@ -1410,1273 +748,208 @@ msgstr "票据最长存活期(秒)" msgid "Modify Kerberos ticket policy." msgstr "修改Kerberos票据策略。" -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 "" -"一个属性设置为一个名称/值对。格式是属性=值。对于多值属性,命令替换已存在的" -"值。" - -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute\n" -"must be part of the schema." -msgstr "添加一个属性/值对。格式是属性=值。属性必须时模式的一部分。" - -msgid "Rights" -msgstr "权限" - -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." -msgstr "显示该条目的访问权限(需要--all)。更详细的信息请查看ipa帮助页。" - msgid "Reset Kerberos ticket policy to the default values." msgstr "重置Kerberos票据策略为默认值。" msgid "Display the current Kerberos ticket policy." msgstr "显示当前Kerberos票据策略。" -msgid "Range name" -msgstr "范围名称" - -msgid "First Posix ID of the range" -msgstr "该范围的第一个Posix ID" - -msgid "Number of IDs in the range" -msgstr "该范围的ID数" - -msgid "First RID of the corresponding RID range" -msgstr "匹配RID范围的第一个RID" - -msgid "First RID of the secondary RID range" -msgstr "次要RID范围的第一个RID" - -msgid "Domain SID of the trusted domain" -msgstr "信任域的域SID" - -msgid "Range type" -msgstr "范围类型" - -msgid "Delete an ID range." -msgstr "删除一个ID范围。" - -msgid "Continuous mode: Don't stop on errors." -msgstr "连续模式:有错误不停止。" - -msgid "Search for ranges." -msgstr "查找范围。" - -msgid "Time Limit" -msgstr "时间限制" - -msgid "Size Limit" -msgstr "大小限制" - -msgid "Maximum number of entries returned" -msgstr "返回的最大条目数" - -msgid "Primary key only" -msgstr "主键唯一" - -msgid "Results should contain primary key attribute only (\"name\")" -msgstr "结果应该只包括主键属性(\"name\")" - -msgid "Modify ID range." -msgstr "修改ID范围。" - -msgid "Display information about a range." -msgstr "显示范围信息。" - -msgid "Quantity" -msgstr "数量" - -msgid "Search for entitlement accounts." -msgstr "查找权利账户。" - -msgid "Retrieve the entitlement certs." -msgstr "检索权利证书。" - -msgid "Import an entitlement certificate." -msgstr "导入一个权利证书。" - -msgid "Enrollment UUID" -msgstr "注册UUID" - -msgid "Username" -msgstr "用户名" - -msgid "Enrollment UUID (not implemented)" -msgstr "注册UUID(没有实现)" - -msgid "Password" -msgstr "密码" - -msgid "Registration password" -msgstr "注册密码" - -msgid "Display current entitlements." -msgstr "显示当前权利。" - -msgid "Re-sync the local entitlement cache with the entitlement server." -msgstr "重新同步在权利服务器上的本地权利缓存。" - -msgid "Principal" -msgstr "主体" - -msgid "Service principal" -msgstr "服务主体" - -msgid "Certificate" -msgstr "证书" - -msgid "Base-64 encoded server certificate" -msgstr "Base-64 编码格式的服务器证书" - -msgid "PAC type" -msgstr "PAC类型" - -msgid "" -"Override default list of supported PAC types. Use 'NONE' to disable PAC " -"support for this service" -msgstr "覆盖默认支持的PAC类型列表。使用'NONE'来禁用该服务的PAC支持" - -msgid "Add a new IPA new service." -msgstr "添加一个新的IPA服务。" - -msgid "Force" -msgstr "强制" - -msgid "force principal name even if not in DNS" -msgstr "即使主体名在DNS中不存在,也强制添加它" - -msgid "Add hosts that can manage this service." -msgstr "添加可以管理该服务的主机。" - -msgid "member host" -msgstr "成员主机" - -msgid "comma-separated list of hosts to add" -msgstr "待添加的以逗号分隔的主机列表" - -msgid "Members that could not be added" -msgstr "不能被添加的成员" - -msgid "Number of members added" -msgstr "已添加的成员数" - -msgid "Delete an IPA service." -msgstr "删除一个IPA服务。" - -msgid "Disable the Kerberos key and SSL certificate of a service." -msgstr "禁用一个服务的Kerberos密钥和SSL证书。" - -msgid "Search for IPA services." -msgstr "查找IPA服务。" - -msgid "Results should contain primary key attribute only (\"principal\")" -msgstr "结果应该只包括主键属性(\"principal\")" - -msgid "host" -msgstr "主机" - -msgid "Search for services with these managed by hosts." -msgstr "查找那些由主机管理的服务。" - -msgid "Search for services without these managed by hosts." -msgstr "查找那些不由主机管理的服务。" - -msgid "Modify an existing IPA service." -msgstr "修改一个已存在的IPA服务。" - -msgid "Remove hosts that can manage this service." -msgstr "移除可以管理该服务的主机。" - -msgid "comma-separated list of hosts to remove" -msgstr "待移除的以逗号分隔的主机列表" - -msgid "Members that could not be removed" -msgstr "不能被移除的成员" - -msgid "Number of members removed" -msgstr "已移除成员数" - -msgid "Display information about an IPA service." -msgstr "显示一个IPA服务信息。" - -msgid "file to store certificate in" -msgstr "存储证书文件" - -msgid "Rule name" -msgstr "规则名" - msgid "Description" msgstr "描述" -msgid "Enabled" -msgstr "启用" +msgid "Group name" +msgstr "组名" -msgid "User category" -msgstr "用户类别" +msgid "GID" +msgstr "GID" -msgid "User category the rule applies to" -msgstr "规则应用的用户类别" +msgid "Group ID Number" +msgstr "组ID号码" -msgid "Host category" -msgstr "主机类别" +msgid "User login" +msgstr "用户登录名" -msgid "Host category the rule applies to" -msgstr "规则应用的主机类别" +msgid "UID" +msgstr "UID" -msgid "Command category" -msgstr "命令类别" +msgid "User ID Number" +msgstr "用户ID号码" -msgid "Command category the rule applies to" -msgstr "规则适用的命令类别" +msgid "Home directory" +msgstr "主目录" -msgid "RunAs User category" -msgstr "作为用户类别来运行" - -msgid "RunAs User category the rule applies to" -msgstr "作为规则适用的用户类别来运行" - -msgid "RunAs Group category" -msgstr "作为用户组类别来运行" - -msgid "RunAs Group category the rule applies to" -msgstr "作为规则适用的用户组类别来运行" - -msgid "Sudo order" -msgstr "Sudo命令" - -msgid "Users" -msgstr "用户" - -msgid "User Groups" -msgstr "用户组" - -msgid "Hosts" -msgstr "主机" - -msgid "Host Groups" -msgstr "主机组" - -msgid "Sudo Allow Commands" -msgstr "Sudo允许命令" - -msgid "Sudo Deny Commands" -msgstr "Sudo阻止命令" - -msgid "Sudo Allow Command Groups" -msgstr "Sudo运行命令组" - -msgid "Sudo Deny Command Groups" -msgstr "Sudo阻止命令组" - -msgid "RunAs Users" -msgstr "作为用户来运行" - -msgid "Run as a user" -msgstr "作为一个用户来运行" - -msgid "Groups of RunAs Users" -msgstr "作为用户来运行的用户组" - -msgid "Run as any user within a specified group" -msgstr "作为任何一个有指定组用户来运行" - -msgid "External User" -msgstr "外部用户" - -msgid "External User the rule applies to (sudorule-find only)" -msgstr "规则适用的外部用户(只是sudorule-find)" - -msgid "RunAs External User" -msgstr "作为外部用户来运行" - -msgid "External User the commands can run as (sudorule-find only)" -msgstr "外部用户可以运行的命令(只是sudorule-find)" - -msgid "RunAs External Group" -msgstr "作为外部用户组来运行" - -msgid "External Group the commands can run as (sudorule-find only)" -msgstr "外部用户组可以运行的命令(只是sudorule-find)" - -msgid "Sudo Option" -msgstr "Sudo选项" - -msgid "RunAs Groups" -msgstr "作为用户组来运行" - -msgid "Run with the gid of a specified POSIX group" -msgstr "以一个指定POSIX组的gid来运行" - -msgid "External host" -msgstr "外部主机" - -msgid "Create new Sudo Rule." -msgstr "创建新的Sudo规则。" - -msgid "Add commands and sudo command groups affected by Sudo Rule." -msgstr "添加受Sudo规则影响的命令和sudo命令组。" - -msgid "member sudo command" -msgstr "成员sudo命令" - -msgid "comma-separated list of sudo commands to add" -msgstr "待添加的以逗号分隔的sudo命令列表" - -msgid "member sudo command group" -msgstr "成员sudo命令组" - -msgid "comma-separated list of sudo command groups to add" -msgstr "待添加的以逗号分隔的sudo命令组列表" - -msgid "Add hosts and hostgroups affected by Sudo Rule." -msgstr "添加受Sudo规则影响的主机和主机组。" - -msgid "member host group" -msgstr "成员主机组" - -msgid "comma-separated list of host groups to add" -msgstr "待添加的以逗号分隔的主机组列表" - -msgid "Add an option to the Sudo Rule." -msgstr "向Sudo规则中添加一个选项。" - -msgid "member group" -msgstr "成员组" - -msgid "comma-separated list of groups to add" -msgstr "待添加的以逗号分隔的用户组列表" - -msgid "member user" -msgstr "成员用户" - -msgid "comma-separated list of users to add" -msgstr "待添加的以逗号分隔的用户列表" - -msgid "Add users and groups affected by Sudo Rule." -msgstr "添加受Sudo规则影响的用户和用户组。" - -msgid "Delete Sudo Rule." -msgstr "删除Sudo规则。" - -msgid "Disable a Sudo Rule." -msgstr "禁用一个Sudo规则。" - -msgid "Enable a Sudo Rule." -msgstr "启用一个Sudo规则。" - -msgid "Search for Sudo Rule." -msgstr "查找Sudo规则。" - -msgid "Results should contain primary key attribute only (\"sudorule-name\")" -msgstr "结果应该只包括主键属性(\"sudorule-name\")" - -msgid "Modify Sudo Rule." -msgstr "修改Sudo规则。" - -msgid "Remove commands and sudo command groups affected by Sudo Rule." -msgstr "移除受Sudo规则影响的命令和命令组。" - -msgid "comma-separated list of sudo commands to remove" -msgstr "待移除的以逗号分隔的sudo命令列表" - -msgid "comma-separated list of sudo command groups to remove" -msgstr "待移除的以逗号分隔的sudo命令组列表" - -msgid "Remove hosts and hostgroups affected by Sudo Rule." -msgstr "移除受Sudo规则影响的主机和主机组。" - -msgid "comma-separated list of host groups to remove" -msgstr "待移除的以逗号分隔的主机组列表" - -msgid "Remove an option from Sudo Rule." -msgstr "从Sudo规则中移除一个选项。" - -msgid "comma-separated list of groups to remove" -msgstr "待移除的以逗号分隔的用户组列表" - -msgid "comma-separated list of users to remove" -msgstr "待移除的以逗号分隔的用户列表" - -msgid "Remove users and groups affected by Sudo Rule." -msgstr "移除受Sudo规则影响的用户和用户组。" - -msgid "Display Sudo Rule." -msgstr "显示Sudo规则。" - -msgid "Sudo Command Group" -msgstr "Sudo命令组" - -msgid "Group description" -msgstr "组描述" - -msgid "Commands" -msgstr "命令" - -msgid "Sudo Command Groups" -msgstr "Sudo命令组" - -msgid "Member Sudo commands" -msgstr "成员Sudo命令" - -msgid "Create new Sudo Command Group." -msgstr "创建新的Sudo命令组。" - -msgid "Add members to Sudo Command Group." -msgstr "向Sudo命令组中添加成员。" - -msgid "Delete Sudo Command Group." -msgstr "删除Sudo命令组。" - -msgid "Search for Sudo Command Groups." -msgstr "查找Sudo命令组。" - -msgid "" -"Results should contain primary key attribute only (\"sudocmdgroup-name\")" -msgstr "结果应该只包括主键属性(\"sudocmdgroup-name\")" - -msgid "Modify Sudo Command Group." -msgstr "修改Sudo命令组。" - -msgid "Remove members from Sudo Command Group." -msgstr "从Sudo命令组中移除成员。" - -msgid "Display Sudo Command Group." -msgstr "显示Sudo命令组。" - -msgid "Permission name" -msgstr "权限名称" - -msgid "Permissions" -msgstr "权限" - -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" -msgstr "以逗号分隔的授权列表(读,写,添加,删除,全部)" - -msgid "Attributes" -msgstr "属性" - -msgid "Comma-separated list of attributes" -msgstr "以逗号分隔的属性列表" - -msgid "Type" -msgstr "类型" - -msgid "" -"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" -msgstr "IPA对象类型(用户,用户组,主机,主机组,服务,网络组,dns)" - -msgid "Member of group" -msgstr "组成员" - -msgid "Target members of a group" -msgstr "一个组的目标成员" - -msgid "Filter" -msgstr "过滤" - -msgid "Legal LDAP filter (e.g. ou=Engineering)" -msgstr "合法的LDAP过滤(例如:ou=Engineering)" - -msgid "Subtree" -msgstr "子树" - -msgid "Target group" -msgstr "目标组" - -msgid "User group to apply permissions to" -msgstr "待应用权限的用户组" - -msgid "Granted to Privilege" -msgstr "授于特权" - -msgid "Indirect Member of roles" -msgstr "间接角色成员" - -msgid "Add a new permission." -msgstr "添加一个新的权限。" - -msgid "Add members to a permission." -msgstr "将成员添加到权限。" - -msgid "member privilege" -msgstr "成员特权" - -msgid "comma-separated list of privileges to add" -msgstr "待添加的以逗号分隔的权限列表" - -msgid "Add a system permission without an ACI" -msgstr "添加一个没有ACI的系统权限" - -msgid "Permission type" -msgstr "权限类型" - -msgid "Delete a permission." -msgstr "删除一个权限。" - -msgid "force delete of SYSTEM permissions" -msgstr "强制删除系统权限" - -msgid "Search for permissions." -msgstr "查找权限。" - -msgid "Modify a permission." -msgstr "修改一个权限。" - -msgid "Rename" -msgstr "重命名" - -msgid "Rename the permission object" -msgstr "重命名权限对象" - -msgid "Remove members from a permission." -msgstr "从一个权限中移除成员。" - -msgid "comma-separated list of privileges to remove" -msgstr "待移除的以逗号分隔的权限列表" - -msgid "Display information about a permission." -msgstr "显示一个权限信息。" - -msgid "Enable or Disable Anonymous PKINIT." -msgstr "启用或禁用匿名PKINIT。" - -msgid "Ping a remote server." -msgstr "Ping一台远程服务器。" - -msgid "Self-service name" -msgstr "自助服务名" - -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is write." -msgstr "以逗号分隔的授权列表(读,写)。默认是写。" - -msgid "Add a new self-service permission." -msgstr "添加一个新的自助服务权限。" - -msgid "Delete a self-service permission." -msgstr "删除一个自助服务权限。" - -msgid "Search for a self-service permission." -msgstr "查找一个自助服务权限。" - -msgid "Modify a self-service permission." -msgstr "修改一个自助服务权限。" - -msgid "Display information about a self-service permission." -msgstr "显示一个自助服务权限信息。" - -msgid "SELinux User" -msgstr "SELinux用户" - -msgid "HBAC Rule" -msgstr "HBAC规则" - -msgid "HBAC Rule that defines the users, groups and hostgroups" -msgstr "HBAC规则定义了用户,用户组和主机组" - -msgid "Create a new SELinux User Map." -msgstr "创建一个新的SELinux用户映射。" - -msgid "Add target hosts and hostgroups to an SELinux User Map rule." -msgstr "向SELinux用户映射规则中添加目标主机和主机组。" - -msgid "Add users and groups to an SELinux User Map rule." -msgstr "向SELinux用户映射规则中添加用户和用户组。" - -msgid "Delete a SELinux User Map." -msgstr "删除一个SELinux用户映射。" - -msgid "Disable an SELinux User Map rule." -msgstr "禁用一个SELinux用户映射规则。" - -msgid "Enable an SELinux User Map rule." -msgstr "启用一个SELinux用户映射规则。" - -msgid "Search for SELinux User Maps." -msgstr "查找SELinux用户映射。" - -msgid "Modify a SELinux User Map." -msgstr "修改一个SELinux用户映射。" - -msgid "Remove target hosts and hostgroups from an SELinux User Map rule." -msgstr "从一个SELinux用户映射规则中移除目标主机和主机组。" - -msgid "Remove users and groups from an SELinux User Map rule." -msgstr "向SELinux用户映射规则中移除用户和用户组。" - -msgid "Display the properties of a SELinux User Map rule." -msgstr "显示一个SELinux用户映射规则的属性。" - -msgid "Host name" -msgstr "主机名" - -msgid "A description of this host" -msgstr "该主机的描述" - -msgid "Locality" -msgstr "位置" - -msgid "Host locality (e.g. \"Baltimore, MD\")" -msgstr "主机地点(如\"Baltimore, MD\")" - -msgid "Location" -msgstr "位置" - -msgid "Host location (e.g. \"Lab 2\")" -msgstr "主机位置(如\"Lab 2\")" - -msgid "Platform" -msgstr "平台" - -msgid "Host hardware platform (e.g. \"Lenovo T61\")" -msgstr "主机硬件平台 (e.g. \"Lenovo T61\")" - -msgid "Operating system" -msgstr "操作系统" - -msgid "Host operating system and version (e.g. \"Fedora 9\")" -msgstr "主机操作系统及版本(e.g. \"Fedora 9\")" - -msgid "User password" -msgstr "用户密码" - -msgid "Password used in bulk enrollment" -msgstr "密码用于批量注册" - -msgid "Generate a random password to be used in bulk enrollment" -msgstr "生成一个随机密码用于批量注册" - -msgid "Random password" -msgstr "随机密码" - -msgid "Principal name" -msgstr "主机名" - -msgid "MAC address" -msgstr "MAC地址" - -msgid "Hardware MAC address(es) on this host" -msgstr "主机硬件MAC地址" +msgid "Login shell" +msgstr "登录shell" msgid "SSH public key" msgstr "SSH公钥" -msgid "Member of host-groups" -msgstr "主机组成员" +msgid "ID View Name" +msgstr "ID视图名称" -msgid "Roles" -msgstr "角色" +msgid "Add a new Group ID override." +msgstr "添加一个新的组ID覆盖。" -msgid "Member of netgroups" -msgstr "网络组成员" +msgid "Fallback to AD DC LDAP" +msgstr "回退到AD DC LDAP" -msgid "Member of Sudo rule" -msgstr "Sudo规则的成员" +msgid "" +"Allow falling back to AD DC LDAP when resolving AD trusted objects. For two-" +"way trusts only." +msgstr "当解析AD信任对象时允许回退到AD DC LDAP。仅供双向信任。" -msgid "Member of HBAC rule" -msgstr "HBAC规则的成员" +msgid "Delete an Group ID override." +msgstr "删除一个组ID覆盖。" -msgid "Indirect Member of netgroup" -msgstr "间接网络组成员" +msgid "Search for an Group ID override." +msgstr "查找一个组ID覆盖。" -msgid "Indirect Member of host-group" -msgstr "间接主机组成员" +msgid "Results should contain primary key attribute only (\"anchor\")" +msgstr "结果应该只包括主键属性(\"anchor\")" -msgid "Indirect Member of role" -msgstr "间接角色成员" +msgid "Modify an Group ID override." +msgstr "修改一个组ID覆盖。" -msgid "Indirect Member of Sudo rule" -msgstr "间接Sudo规则成员" +msgid "Rename" +msgstr "重命名" -msgid "Indirect Member of HBAC rule" -msgstr "间接HBAC规则成员" +msgid "Rename the Group ID override object" +msgstr "重命名组ID覆盖对象" -msgid "Managing" -msgstr "管理" +msgid "Display information about an Group ID override." +msgstr "显示一个组ID覆盖信息。" -msgid "Add a new host." -msgstr "添加一个新主机。" +msgid "Add a new User ID override." +msgstr "添加一个新的用户ID覆盖。" -msgid "skip reverse DNS detection" -msgstr "忽略反向DNS检测" +msgid "Delete an User ID override." +msgstr "删除一个用户ID覆盖。" -msgid "IP Address" -msgstr "IP 地址" +msgid "Search for an User ID override." +msgstr "查找一个用户ID覆盖。" -msgid "Add the host to DNS with this IP address" -msgstr "用该IP地址将主机添加到DNS中" +msgid "Modify an User ID override." +msgstr "修改一个用户ID覆盖。" -msgid "Add hosts that can manage this host." -msgstr "添加可以管理该主机的主机。" +msgid "Rename the User ID override object" +msgstr "重命名用户ID覆盖对象" -msgid "Delete a host." -msgstr "删除一个主机。" +msgid "Display information about an User ID override." +msgstr "显示一个用户ID覆盖信息。" -msgid "Remove entries from DNS" -msgstr "从DNS中移除条目" +msgid "Add a new ID View." +msgstr "添加一个新的ID视图。" -msgid "Disable the Kerberos key, SSL certificate and all services of a host." -msgstr "禁用该主机的Kerberos密钥,SSL证书和所有的服务。" +msgid "" +"Applies ID View to specified hosts or current members of specified " +"hostgroups. If any other ID View is applied to the host, it is overridden." +msgstr "" +"ID视图适用于指定的主机或指定主机组的当前成员。如果该主机已有其他ID视图,则覆" +"盖它。" -msgid "Search for hosts." -msgstr "查找主机。" +msgid "hosts" +msgstr "主机" -msgid "Results should contain primary key attribute only (\"hostname\")" -msgstr "结果应该只包括主键属性(\"hostname\")" +msgid "Hosts to apply the ID View to" +msgstr "主机应用ID视图" -msgid "host group" +msgid "hostgroups" msgstr "主机组" -msgid "Search for hosts with these member of host groups." -msgstr "查找包含这些主机组成员的主机。" +msgid "" +"Hostgroups to whose hosts apply the ID View to. Please note that view is not " +"applied automatically to any hosts added to the hostgroup after running the " +"idview-apply command." +msgstr "" +"主机组的主机应用ID视图。请注意运行命令idview-apply后,视图并不会自动应用到主" +"机组中的主机中去。" -msgid "Search for hosts without these member of host groups." -msgstr "查找不包含这些主机组成员的主机。" +msgid "Hosts that this ID View was applied to." +msgstr "应用过该ID视图的主机。" -msgid "netgroup" -msgstr "网络组" +msgid "Hosts or hostgroups that this ID View could not be applied to." +msgstr "不能应用该ID视图的主机或主机组。" -msgid "Search for hosts with these member of netgroups." -msgstr "查找包含这些网络组成员的主机。" +msgid "Number of hosts the ID View was applied to:" +msgstr "应用过该ID视图的主机数量:" -msgid "Search for hosts without these member of netgroups." -msgstr "查找不包含这些网络组成员的主机。" +msgid "Delete an ID View." +msgstr "删除一个ID视图。" -msgid "role" -msgstr "角色" +msgid "Search for an ID View." +msgstr "查找一个ID视图。" -msgid "Search for hosts with these member of roles." -msgstr "查找包含这些角色成员的主机。" +msgid "Results should contain primary key attribute only (\"name\")" +msgstr "结果应该只包括主键属性(\"name\")" -msgid "Search for hosts without these member of roles." -msgstr "查找不包含这些角色成员的主机。" +msgid "Modify an ID View." +msgstr "修改一个ID视图。" -msgid "HBAC rule" -msgstr "HBAC规则" +msgid "Rename the ID View object" +msgstr "重命名ID视图对象" -msgid "Search for hosts with these member of HBAC rules." -msgstr "查找包含这些HBAC规则成员的主机。" +msgid "Display information about an ID View." +msgstr "显示一个ID视图信息。" -msgid "Search for hosts without these member of HBAC rules." -msgstr "查找不包含这些HBAC规则成员的主机。" +msgid "Enumerate all the hosts the view applies to." +msgstr "列举应用视图的所有主机。" -msgid "sudo rule" -msgstr "sudo规则" +msgid "" +"Clears ID View from specified hosts or current members of specified " +"hostgroups." +msgstr "从指定主机或指定主机组的当前成员中清除ID视图。" -msgid "Search for hosts with these member of sudo rules." -msgstr "查找包含这些sudo规则成员的主机。" +msgid "Hosts or hostgroups that ID View could not be cleared from." +msgstr "ID视图不能被清除的主机或主机组。" -msgid "Search for hosts without these member of sudo rules." -msgstr "查找不包含这些sudo规则成员的主机。" +msgid "Number of hosts that had a ID View was unset:" +msgstr "有ID视图未被设置的主机数量:" -msgid "user" -msgstr "用户" +msgid "TOTP authentication Window" +msgstr "TOTP认证窗口" -msgid "Search for hosts with these enrolled by users." -msgstr "查找包含用户注册的主机。" +msgid "TOTP authentication time variance (seconds)" +msgstr "TOTP认证时间差异(秒)" -msgid "Search for hosts without these enrolled by users." -msgstr "查找不包含用户注册的主机。" +msgid "TOTP Synchronization Window" +msgstr "TOTP同步窗口" -msgid "Search for hosts with these managed by hosts." -msgstr "查找由该主机管理的主机。" +msgid "TOTP synchronization time variance (seconds)" +msgstr "TOTP同步时间差异(秒)" -msgid "Search for hosts without these managed by hosts." -msgstr "查找不由该主机管理的主机。" +msgid "HOTP Authentication Window" +msgstr "HOTP认证窗口" -msgid "Search for hosts with these managing hosts." -msgstr "查找管理该主机的主机。" +msgid "HOTP Synchronization Window" +msgstr "HOTP同步窗口" -msgid "Search for hosts without these managing hosts." -msgstr "查找不管理该主机的主机。" +msgid "Modify OTP configuration options." +msgstr "修改OTP配置选项。" -msgid "Modify information about a host." -msgstr "修改主机信息" - -msgid "Kerberos principal name for this host" -msgstr "该主机的Kerberos主体名" - -msgid "Update DNS entries" -msgstr "更新DNS条目" - -msgid "Remove hosts that can manage this host." -msgstr "移除可以管理该主机的主机。" - -msgid "Display information about a host." -msgstr "显示一个主机信息。" - -msgid "Service group name" -msgstr "服务组名称" - -msgid "HBAC service group description" -msgstr "HBAC服务组描述" - -msgid "Member HBAC service" -msgstr "成员HBAC服务" - -msgid "Add a new HBAC service group." -msgstr "添加一个新的HBAC服务组。" - -msgid "Add members to an HBAC service group." -msgstr "在一个HBAC服务组中添加成员。" - -msgid "member HBAC service" -msgstr "成员HBAC服务" - -msgid "comma-separated list of HBAC services to add" -msgstr "待添加的以逗号分隔的HBAC服务列表" - -msgid "Delete an HBAC service group." -msgstr "删除一个HBAC服务组。" - -msgid "Search for an HBAC service group." -msgstr "查找一个HBAC服务组。" - -msgid "Modify an HBAC service group." -msgstr "修改一个HBAC服务组。" - -msgid "Remove members from an HBAC service group." -msgstr "从一个HBAC服务组中移除成员。" - -msgid "comma-separated list of HBAC services to remove" -msgstr "待移除的以逗号分隔的HBAC服务列表" - -msgid "Display information about an HBAC service group." -msgstr "显示一个HBAC服务组信息。" - -msgid "Nested Methods to execute" -msgstr "以嵌套的方法来执行" +msgid "Show the current OTP configuration." +msgstr "显示当前OTP配置。" msgid "" "\n" -"Misc plug-ins\n" +"Joining an IPA domain\n" msgstr "" "\n" -"Misc插件\n" +"加入一个IPA域\n" -msgid "RPC command used to log the current user out of their session." -msgstr "RPC命令用于记录当前用户的会话。" +msgid "Join an IPA domain" +msgstr "加入一个IPA域" -msgid "ACI name" -msgstr "ACI名称" +msgid "The IPA realm" +msgstr "IPA域" -msgid "Permission" -msgstr "权限" +msgid "Hardware platform of the host (e.g. Lenovo T61)" +msgstr "主机硬件平台(例如:联想T61)" -msgid "Permission ACI grants access to" -msgstr "ACI授予访问的权限" +msgid "Operating System and version of the host (e.g. Fedora 9)" +msgstr "主机操作系统版本(例如:Fedora 9)" -msgid "User group" -msgstr "用户组" - -msgid "User group ACI grants access to" -msgstr "ACI授予访问的用户组" - -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" -msgstr "以逗号分隔的授权列表(读,写,添加,删除,全部)" - -msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" -msgstr "IPA对象类型(用户,用户组,主机,主机组,服务,网络组)" - -msgid "Member of" -msgstr "隶属于" - -msgid "Member of a group" -msgstr "组成员" - -msgid "Target your own entry (self)" -msgstr "设定你自己的条目" - -msgid "Apply ACI to your own entry (self)" -msgstr "应用ACI到你自己的条目" - -msgid "Create new ACI." -msgstr "创建新的ACI。" - -msgid "ACI prefix" -msgstr "ACI前缀" - -msgid "" -"Prefix used to distinguish ACI types (permission, delegation, selfservice, " -"none)" -msgstr "前缀用来区分ACI类型(权限,授权,自助,无)" - -msgid "Test the ACI syntax but don't write anything" -msgstr "测试ACI语法但不写任何东西" - -msgid "Delete ACI." -msgstr "删除ACI。" - -msgid "Modify ACI." -msgstr "修改ACI。" - -msgid "Rename an ACI." -msgstr "重命名一个ACI。" - -msgid "New ACI name" -msgstr "新的ACI名" - -msgid "Display a single ACI given an ACI name." -msgstr "给出一个ACI名显示一个单一的ACI。" - -msgid "Service name" -msgstr "服务名" - -msgid "HBAC service" -msgstr "HBAC服务" - -msgid "HBAC service description" -msgstr "HBAC服务描述" - -msgid "Member of HBAC service groups" -msgstr "HBAC服务组成员" - -msgid "Add a new HBAC service." -msgstr "添加一个新的HBAC服务。" - -msgid "Delete an existing HBAC service." -msgstr "删除一个存在的HBAC服务。" - -msgid "Search for HBAC services." -msgstr "查找HBAC服务。" - -msgid "Results should contain primary key attribute only (\"service\")" -msgstr "结果应该只包括主键属性(\"service\")" - -msgid "Modify an HBAC service." -msgstr "修改一个HBAC服务。" - -msgid "Display information about an HBAC service." -msgstr "显示一个HBAC服务信息。" - -msgid "Migrate users and groups from DS to IPA." -msgstr "将DS中的用户和用户组移植到IPA。" - -msgid "LDAP URI" -msgstr "LDAP URI" - -msgid "bind password" -msgstr "绑定密码" - -msgid "Bind DN" -msgstr "绑定DN" - -msgid "User container" -msgstr "用户容器" - -msgid "DN of container for users in DS relative to base DN" -msgstr "在DS中与基类DN相关的用户容器DN" - -msgid "Group container" -msgstr "组容器" - -msgid "DN of container for groups in DS relative to base DN" -msgstr "在DS中与基类DN相关的用户组容器DN" - -msgid "User object class" -msgstr "用户对象类" - -msgid "" -"Comma-separated list of objectclasses used to search for user entries in DS" -msgstr "在DS中用于查找用户条目以逗号分隔的对象类" - -msgid "Group object class" -msgstr "组对象类" - -msgid "" -"Comma-separated list of objectclasses used to search for group entries in DS" -msgstr "在DS中用于查找用户组条目以逗号分隔的对象类" - -msgid "Ignore user object class" -msgstr "忽略用户对象类" - -msgid "" -"Comma-separated list of objectclasses to be ignored for user entries in DS" -msgstr "在DS中被用户条目所忽略以逗号分隔的对象类" - -msgid "Ignore user attribute" -msgstr "忽略用户属性" - -msgid "Comma-separated list of attributes to be ignored for user entries in DS" -msgstr "在DS中被用户条目所忽略以逗号分隔的属性" - -msgid "Ignore group object class" -msgstr "忽略组对象类" - -msgid "" -"Comma-separated list of objectclasses to be ignored for group entries in DS" -msgstr "在DS中被组条目所忽略以逗号分隔的对象类" - -msgid "Ignore group attribute" -msgstr "忽略组属性" - -msgid "" -"Comma-separated list of attributes to be ignored for group entries in DS" -msgstr "在DS中被组条目所忽略以逗号分隔的属性" - -msgid "Overwrite GID" -msgstr "覆盖GID" - -msgid "" -"When migrating a group already existing in IPA domain overwrite the group " -"GID and report as success" -msgstr "当移植一个在IPA域中已存在的组时覆盖组GID并报告成功" - -msgid "LDAP schema" -msgstr "LDAP模式" - -msgid "" -"The schema used on the LDAP server. Supported values are RFC2307 and " -"RFC2307bis. The default is RFC2307bis" -msgstr "" -"用在LDAP服务器上的模式。支持值是RFC2307和RFC2307bis。默认值时RFC2307bis" - -msgid "Continue" -msgstr "连续" - -msgid "" -"Continuous operation mode. Errors are reported but the process continues" -msgstr "连续操作模式。报告错误但这个过程仍在继续" - -msgid "Base DN" -msgstr "基DN" - -msgid "Base DN on remote LDAP server" -msgstr "远程LDAP服务器上的基DN" - -msgid "Ignore compat plugin" -msgstr "忽略兼容插件" - -msgid "Allows migration despite the usage of compat plugin" -msgstr "即使使用兼容插件也允许迁移" - -msgid "comma-separated list of groups to exclude from migration" -msgstr "允许迁移的以逗号分隔的用户组列表" - -msgid "comma-separated list of users to exclude from migration" -msgstr "允许迁移的以逗号分隔的用户列表" - -msgid "Lists of objects migrated; categorized by type." -msgstr "对象移植列表;按类型分类。" - -msgid "Lists of objects that could not be migrated; categorized by type." -msgstr "不能移植的对象列表;按类型分类。" - -msgid "False if migration mode was disabled." -msgstr "如果移植模式是禁用的,则错误" - -msgid "False if migration fails because the compatibility plug-in is enabled." -msgstr "如果移植失败是因为启用了兼容插件,则错误" - -msgid "A description of this auto member rule" -msgstr "一个自动成员规则的描述" - -msgid "Default (fallback) Group" -msgstr "默认(回退)组" - -msgid "Add an automember rule." -msgstr "添加一个自动成员规则。" - -msgid "Automember Rule" -msgstr "自动成员规则" - -msgid "Grouping Type" -msgstr "组类型" - -msgid "Grouping to which the rule applies" -msgstr "组应用于哪种规则" - -msgid "Add conditions to an automember rule." -msgstr "添加条件到一个自动成员规则。" - -msgid "Inclusive Regex" -msgstr "兼容的正则表达式" - -msgid "Exclusive Regex" -msgstr "独占的正则表达式" - -msgid "Attribute Key" -msgstr "性键值" - -msgid "" -"Attribute to filter via regex. For example fqdn for a host, or manager for a " -"user" -msgstr "" -"通过正则表达式来过滤属性。例如:一个主机的fqdn属性,或者一个用户的manager属性" - -msgid "Conditions that could not be added" -msgstr "不能被添加的条件" - -msgid "Number of conditions added" -msgstr "已添加的条件数" - -msgid "Remove default (fallback) group for all unmatched entries." -msgstr "对所有不匹配的条目移除默认(回退)组。" - -msgid "Set default (fallback) group for all unmatched entries." -msgstr "对所有不匹配的条目设置默认(回退)组。" - -msgid "Display information about the default (fallback) automember groups." -msgstr "显示默认(回退)自动成员组的信息。" - -msgid "Delete an automember rule." -msgstr "删除一个自动成员规则。" - -msgid "Search for automember rules." -msgstr "查找自动成员规则。" - -msgid "Modify an automember rule." -msgstr "修改一个自动成员规则。" - -msgid "Remove conditions from an automember rule." -msgstr "从一个自动成员规则中移除条件。" - -msgid "Conditions that could not be removed" -msgstr "不能被移除的条件" - -msgid "Number of conditions removed" -msgstr "已移除的条件数" - -msgid "Display information about an automember rule." -msgstr "显示一个自动成员规则信息。" - -msgid "Sudo Command" -msgstr "Sudo命令" - -msgid "A description of this command" -msgstr "该命令的一个描述" - -msgid "Create new Sudo Command." -msgstr "创建新的Sudo命令。" - -msgid "Delete Sudo Command." -msgstr "删除Sudo命令。" - -msgid "Search for Sudo Commands." -msgstr "查找Sudo命令。" - -msgid "Results should contain primary key attribute only (\"command\")" -msgstr "结果应该只包括主键属性(\"command\")" - -msgid "Modify Sudo Command." -msgstr "修改Sudo命令。" - -msgid "Display Sudo Command." -msgstr "显示Sudo命令。" - -msgid "Key" -msgstr "键" - -msgid "Automount key name." -msgstr "自动挂载键名。" - -msgid "Mount information" -msgstr "挂载信息" - -msgid "description" -msgstr "描述" - -msgid "Automount location name." -msgstr "自动挂载位置名。" - -msgid "Map" -msgstr "映射" - -msgid "Automount map name." -msgstr "自动挂载映射名。" - -msgid "Create a new automount key." -msgstr "创建一个新的自动挂载键。" - -msgid "Delete an automount key." -msgstr "删除一个自动挂载键。" - -msgid "Search for an automount key." -msgstr "查找一个自动挂载键。" - -msgid "Modify an automount key." -msgstr "修改一个自动挂载键。" - -msgid "New mount information" -msgstr "新的挂载信息" - -msgid "Rename the automount key object" -msgstr "重命名自动挂载键对象" - -msgid "Display an automount key." -msgstr "显示一个自动挂载键。" - -msgid "Create a new automount location." -msgstr "创建一个新的自动挂载位置。" - -msgid "Delete an automount location." -msgstr "删除一个自动挂载位置。" - -msgid "Search for an automount location." -msgstr "查找一个自动挂载位置。" - -msgid "Results should contain primary key attribute only (\"location\")" -msgstr "结果应该只包括主键属性(\"location\")" - -msgid "Display an automount location." -msgstr "显示一个自动挂载位置。" - -msgid "Generate automount files for a specific location." -msgstr "在一特定位置生成自动挂载文件。" - -msgid "Create a new automount map." -msgstr "创建一个新的自动挂载映射。" - -msgid "Create a new indirect mount point." -msgstr "创建一个新的间接挂载点。" - -msgid "Mount point" -msgstr "挂载点" - -msgid "Parent map" -msgstr "父映射" - -msgid "Name of parent automount map (default: auto.master)." -msgstr "父自动挂载映射名(默认:auto.master)。" - -msgid "Delete an automount map." -msgstr "删除一个自动挂载映射。" - -msgid "Search for an automount map." -msgstr "查找一个自动挂载映射。" - -msgid "Results should contain primary key attribute only (\"map\")" -msgstr "结果应该只包括主键属性(\"map\")" - -msgid "Modify an automount map." -msgstr "修改一个自动挂载映射。" - -msgid "Display an automount map." -msgstr "显示一个自动挂载映射。" - -msgid "Delegation name" -msgstr "授权名" - -msgid "Add a new delegation." -msgstr "添加一个新的授权。" - -msgid "Delete a delegation." -msgstr "删除一个授权。" - -msgid "Search for delegations." -msgstr "查找授权。" - -msgid "Modify a delegation." -msgstr "修改一个授权。" - -msgid "Display information about a delegation." -msgstr "显示一个授权信息。" +msgid "Enable or Disable Anonymous PKINIT." +msgstr "启用或禁用匿名PKINIT。" msgid "Group" msgstr "组" @@ -2765,8 +1038,812 @@ msgstr "用户" msgid "Display effective policy for a specific user" msgstr "显示一个指定用户的有效策略" -msgid "User login" -msgstr "用户登录名" +msgid "Rule name" +msgstr "规则名" + +msgid "Enabled" +msgstr "启用" + +msgid "User category" +msgstr "用户类别" + +msgid "User category the rule applies to" +msgstr "规则应用的用户类别" + +msgid "Host category" +msgstr "主机类别" + +msgid "Host category the rule applies to" +msgstr "规则应用的主机类别" + +msgid "Command category" +msgstr "命令类别" + +msgid "Command category the rule applies to" +msgstr "规则适用的命令类别" + +msgid "RunAs User category" +msgstr "作为用户类别来运行" + +msgid "RunAs User category the rule applies to" +msgstr "作为规则适用的用户类别来运行" + +msgid "RunAs Group category" +msgstr "作为用户组类别来运行" + +msgid "RunAs Group category the rule applies to" +msgstr "作为规则适用的用户组类别来运行" + +msgid "Sudo order" +msgstr "Sudo命令" + +msgid "Users" +msgstr "用户" + +msgid "User Groups" +msgstr "用户组" + +msgid "External User" +msgstr "外部用户" + +msgid "External User the rule applies to (sudorule-find only)" +msgstr "规则适用的外部用户(只是sudorule-find)" + +msgid "Hosts" +msgstr "主机" + +msgid "Host Groups" +msgstr "主机组" + +msgid "External host" +msgstr "外部主机" + +msgid "Sudo Allow Commands" +msgstr "Sudo允许命令" + +msgid "Sudo Deny Commands" +msgstr "Sudo阻止命令" + +msgid "Sudo Allow Command Groups" +msgstr "Sudo运行命令组" + +msgid "Sudo Deny Command Groups" +msgstr "Sudo阻止命令组" + +msgid "RunAs Users" +msgstr "作为用户来运行" + +msgid "Run as a user" +msgstr "作为一个用户来运行" + +msgid "Groups of RunAs Users" +msgstr "作为用户来运行的用户组" + +msgid "Run as any user within a specified group" +msgstr "作为任何一个有指定组用户来运行" + +msgid "RunAs External User" +msgstr "作为外部用户来运行" + +msgid "External User the commands can run as (sudorule-find only)" +msgstr "外部用户可以运行的命令(只是sudorule-find)" + +msgid "External Groups of RunAs Users" +msgstr "作为用户来运行的外部用户组" + +msgid "External Groups of users that the command can run as" +msgstr "外部用户组可以运行的命令" + +msgid "RunAs Groups" +msgstr "作为用户组来运行" + +msgid "Run with the gid of a specified POSIX group" +msgstr "以一个指定POSIX组的gid来运行" + +msgid "RunAs External Group" +msgstr "作为外部用户组来运行" + +msgid "External Group the commands can run as (sudorule-find only)" +msgstr "外部用户组可以运行的命令(只是sudorule-find)" + +msgid "Sudo Option" +msgstr "Sudo选项" + +msgid "Create new Sudo Rule." +msgstr "创建新的Sudo规则。" + +msgid "Add commands and sudo command groups affected by Sudo Rule." +msgstr "添加受Sudo规则影响的命令和sudo命令组。" + +msgid "member sudo command" +msgstr "成员sudo命令" + +msgid "sudo commands to add" +msgstr "待添加的sudo命令" + +msgid "member sudo command group" +msgstr "成员sudo命令组" + +msgid "sudo command groups to add" +msgstr "待添加的sudo命令组" + +msgid "Add hosts and hostgroups affected by Sudo Rule." +msgstr "添加受Sudo规则影响的主机和主机组。" + +msgid "member host" +msgstr "成员主机" + +msgid "hosts to add" +msgstr "待添加主机" + +msgid "member host group" +msgstr "成员主机组" + +msgid "host groups to add" +msgstr "待添加主机组" + +msgid "Add an option to the Sudo Rule." +msgstr "向Sudo规则中添加一个选项。" + +msgid "member group" +msgstr "成员组" + +msgid "groups to add" +msgstr "待添加用户组" + +msgid "member user" +msgstr "成员用户" + +msgid "users to add" +msgstr "待添加用户" + +msgid "Add users and groups affected by Sudo Rule." +msgstr "添加受Sudo规则影响的用户和用户组。" + +msgid "Delete Sudo Rule." +msgstr "删除Sudo规则。" + +msgid "Disable a Sudo Rule." +msgstr "禁用一个Sudo规则。" + +msgid "Enable a Sudo Rule." +msgstr "启用一个Sudo规则。" + +msgid "Search for Sudo Rule." +msgstr "查找Sudo规则。" + +msgid "Results should contain primary key attribute only (\"sudorule-name\")" +msgstr "结果应该只包括主键属性(\"sudorule-name\")" + +msgid "Modify Sudo Rule." +msgstr "修改Sudo规则。" + +msgid "Remove commands and sudo command groups affected by Sudo Rule." +msgstr "移除受Sudo规则影响的命令和命令组。" + +msgid "sudo commands to remove" +msgstr "待移除的sudo命令" + +msgid "sudo command groups to remove" +msgstr "待移除的sudo命令组" + +msgid "Remove hosts and hostgroups affected by Sudo Rule." +msgstr "移除受Sudo规则影响的主机和主机组。" + +msgid "hosts to remove" +msgstr "待移除的主机" + +msgid "host groups to remove" +msgstr "待移除的主机组" + +msgid "Remove an option from Sudo Rule." +msgstr "从Sudo规则中移除一个选项。" + +msgid "groups to remove" +msgstr "待移除的用户组" + +msgid "users to remove" +msgstr "待移除的用户" + +msgid "Remove users and groups affected by Sudo Rule." +msgstr "移除受Sudo规则影响的用户和用户组。" + +msgid "Display Sudo Rule." +msgstr "显示Sudo规则。" + +msgid "Role name" +msgstr "角色名" + +msgid "A description of this role-group" +msgstr "该角色组的描述" + +msgid "Member users" +msgstr "成员用户" + +msgid "Member groups" +msgstr "成员组" + +msgid "Member hosts" +msgstr "成员主机" + +msgid "Member host-groups" +msgstr "主机组成员" + +msgid "Privileges" +msgstr "特权" + +msgid "Member services" +msgstr "成员服务" + +msgid "Add a new role." +msgstr "添加一个新角色。" + +msgid "Add members to a role." +msgstr "向角色中添加成员。" + +msgid "member service" +msgstr "成员服务" + +msgid "services to add" +msgstr "待添加服务" + +msgid "Add privileges to a role." +msgstr "向一个角色中添加特权。" + +msgid "privilege" +msgstr "特权" + +msgid "privileges" +msgstr "特权" + +msgid "Number of privileges added" +msgstr "已添加特权数" + +msgid "Delete a role." +msgstr "删除一个角色。" + +msgid "Search for roles." +msgstr "查找角色。" + +msgid "Modify a role." +msgstr "修改一个角色。" + +msgid "Rename the role object" +msgstr "重命名角色对象" + +msgid "Remove members from a role." +msgstr "从一个角色中移除成员。" + +msgid "services to remove" +msgstr "待移除服务" + +msgid "Remove privileges from a role." +msgstr "从一个角色中移除权限。" + +msgid "Number of privileges removed" +msgstr "已移除权限数" + +msgid "Display information about a role." +msgstr "显示一个角色信息。" + +msgid "Netgroup name" +msgstr "网络组名称" + +msgid "Netgroup description" +msgstr "网络组描述" + +msgid "NIS domain name" +msgstr "NIS域名" + +msgid "IPA unique ID" +msgstr "IPA唯一ID" + +msgid "Member netgroups" +msgstr "成员网络组" + +msgid "Member of netgroups" +msgstr "网络组成员" + +msgid "Indirect Member netgroups" +msgstr "间接成员网络组" + +msgid "Member User" +msgstr "成员用户" + +msgid "Member Group" +msgstr "成员组" + +msgid "Member Host" +msgstr "成员主机" + +msgid "Member Hostgroup" +msgstr "成员主机组" + +msgid "Add a new netgroup." +msgstr "添加一个新的网络组。" + +msgid "Add members to a netgroup." +msgstr "向一个网络组添加成员。" + +msgid "member netgroup" +msgstr "成员网络组" + +msgid "netgroups to add" +msgstr "待添加的网络组" + +msgid "Delete a netgroup." +msgstr "删除一个网络组。" + +msgid "Search for a netgroup." +msgstr "查找一个网络组。" + +msgid "search for managed groups" +msgstr "查找管理组" + +msgid "netgroup" +msgstr "网络组" + +msgid "Search for netgroups with these member netgroups." +msgstr "查找包含这些成员网络组的网络组。" + +msgid "Search for netgroups without these member netgroups." +msgstr "查找不包含这些成员网络组的网络组。" + +msgid "user" +msgstr "用户" + +msgid "Search for netgroups with these member users." +msgstr "查找包含这些成员用户的网络组。" + +msgid "Search for netgroups without these member users." +msgstr "查找不包含这些成员用户的网络组。" + +msgid "group" +msgstr "组" + +msgid "Search for netgroups with these member groups." +msgstr "查找包含这些成员用户组的网络组。" + +msgid "Search for netgroups without these member groups." +msgstr "查找不包含这些成员用户组的网络组。" + +msgid "host" +msgstr "主机" + +msgid "Search for netgroups with these member hosts." +msgstr "查找包含这些成员主机的网络组。" + +msgid "Search for netgroups without these member hosts." +msgstr "查找不包含这些成员主机的网络组。" + +msgid "host group" +msgstr "主机组" + +msgid "Search for netgroups with these member host groups." +msgstr "查找包含这些成员主机组的网络组。" + +msgid "Search for netgroups without these member host groups." +msgstr "查找不包含这些成员主机组的网络组。" + +msgid "Search for netgroups with these member of netgroups." +msgstr "查找包含这些网络组成员的网络组。" + +msgid "Search for netgroups without these member of netgroups." +msgstr "查找不包含这些网络组成员的网络组。" + +msgid "Modify a netgroup." +msgstr "修改一个网络组。" + +msgid "Remove members from a netgroup." +msgstr "从一个网络组中移除成员。" + +msgid "netgroups to remove" +msgstr "待移除的网络组" + +msgid "Display information about a netgroup." +msgstr "显示一个网络组信息。" + +msgid "Permissions" +msgstr "权限" + +msgid "Permissions to grant (read, write). Default is write." +msgstr "委托权限(读,写)。默认是写。" + +msgid "Attributes" +msgstr "属性" + +msgid "User group" +msgstr "用户组" + +msgid "User group ACI grants access to" +msgstr "ACI授予访问的用户组" + +msgid "Add a new delegation." +msgstr "添加一个新的授权。" + +msgid "Delete a delegation." +msgstr "删除一个授权。" + +msgid "True means the operation was successful" +msgstr "正确的表示操作成功" + +msgid "Search for delegations." +msgstr "查找授权。" + +msgid "Modify a delegation." +msgstr "修改一个授权。" + +msgid "Display information about a delegation." +msgstr "显示一个授权信息。" + +msgid "Range name" +msgstr "范围名称" + +msgid "First Posix ID of the range" +msgstr "该范围的第一个Posix ID" + +msgid "Number of IDs in the range" +msgstr "该范围的ID数" + +msgid "First RID of the corresponding RID range" +msgstr "匹配RID范围的第一个RID" + +msgid "First RID of the secondary RID range" +msgstr "次要RID范围的第一个RID" + +msgid "Domain SID of the trusted domain" +msgstr "信任域的域SID" + +msgid "Name of the trusted domain" +msgstr "信任域的名称" + +msgid "Range type" +msgstr "范围类型" + +msgid "ID range type, one of ipa-ad-trust-posix, ipa-ad-trust, ipa-local" +msgstr "ID范围类型,是ipa-ad-trust-posix,ipa-ad-trust,ipa-local中的一个" + +msgid "Delete an ID range." +msgstr "删除一个ID范围。" + +msgid "Search for ranges." +msgstr "查找范围。" + +msgid "Display information about a range." +msgstr "显示范围信息。" + +msgid "Principal" +msgstr "主体" + +msgid "Service principal" +msgstr "服务主体" + +msgid "Certificate" +msgstr "证书" + +msgid "Base-64 encoded server certificate" +msgstr "Base-64 编码格式的服务器证书" + +msgid "PAC type" +msgstr "PAC类型" + +msgid "" +"Override default list of supported PAC types. Use 'NONE' to disable PAC " +"support for this service, e.g. this might be necessary for NFS services." +msgstr "" +"覆盖默认支持的PAC类型列表。使用'NONE'来禁用该服务的PAC支持,例如,这可能是NFS" +"服务的必要条件。" + +msgid "Requires pre-authentication" +msgstr "需要预认证" + +msgid "Pre-authentication is required for the service" +msgstr "服务需要预认证" + +msgid "Trusted for delegation" +msgstr "允许授权" + +msgid "Client credentials may be delegated to the service" +msgstr "客户端证书可以授权给服务" + +msgid "Roles" +msgstr "角色" + +msgid "Users allowed to retrieve keytab" +msgstr "允许检索keytab的用户" + +msgid "Groups allowed to retrieve keytab" +msgstr "允许检索keytab的用户组" + +msgid "Hosts allowed to retrieve keytab" +msgstr "允许检索keytab的主机" + +msgid "Host Groups allowed to retrieve keytab" +msgstr "允许检索keytab的主机组" + +msgid "Users allowed to create keytab" +msgstr "允许创建keytab的用户" + +msgid "Groups allowed to create keytab" +msgstr "允许创建keytab的用户组" + +msgid "Hosts allowed to create keytab" +msgstr "允许创建keytab的主机" + +msgid "Host Groups allowed to create keytab" +msgstr "允许创建keytab的主机组" + +msgid "Add a new IPA new service." +msgstr "添加一个新的IPA服务。" + +msgid "Force" +msgstr "强制" + +msgid "force principal name even if not in DNS" +msgstr "即使主体名在DNS中不存在,也强制添加它" + +msgid "Add new certificates to a service" +msgstr "向一个服务中添加新证书" + +msgid "Add hosts that can manage this service." +msgstr "添加可以管理该服务的主机。" + +msgid "" +"Allow users, groups, hosts or host groups to create a keytab of this service." +msgstr "允许用户,用户组,主机或主机组来创建一个该服务的keytab。" + +msgid "" +"Allow users, groups, hosts or host groups to retrieve a keytab of this " +"service." +msgstr "允许用户,用户组,主机或主机组来检索一个该服务的keytab。" + +msgid "Delete an IPA service." +msgstr "删除一个IPA服务。" + +msgid "Disable the Kerberos key and SSL certificate of a service." +msgstr "禁用一个服务的Kerberos密钥和SSL证书。" + +msgid "" +"Disallow users, groups, hosts or host groups to create a keytab of this " +"service." +msgstr "不允许用户,用户组,主机或主机组来创建该服务的keytab。" + +msgid "" +"Disallow users, groups, hosts or host groups to retrieve a keytab of this " +"service." +msgstr "不允许用户,用户组,主机或主机组来检索该服务的keytab。" + +msgid "Search for IPA services." +msgstr "查找IPA服务。" + +msgid "Results should contain primary key attribute only (\"principal\")" +msgstr "结果应该只包括主键属性(\"principal\")" + +msgid "Search for services with these managed by hosts." +msgstr "查找那些由主机管理的服务。" + +msgid "Search for services without these managed by hosts." +msgstr "查找那些不由主机管理的服务。" + +msgid "Modify an existing IPA service." +msgstr "修改一个已存在的IPA服务。" + +msgid "Remove certificates from a service" +msgstr "从一个服务中移除证书" + +msgid "Remove hosts that can manage this service." +msgstr "移除可以管理该服务的主机。" + +msgid "Display information about an IPA service." +msgstr "显示一个IPA服务信息。" + +msgid "file to store certificate in" +msgstr "存储证书文件" + +msgid "" +"\n" +"Raise the IPA Domain Level.\n" +msgstr "" +"\n" +"提高IPA域级别。\n" + +msgid "Query current Domain Level." +msgstr "查询当前域级别。" + +msgid "Current domain level:" +msgstr "当前域级别:" + +msgid "Change current Domain Level." +msgstr "改变当前域级别。" + +msgid "Domain Level" +msgstr "域级别" + +msgid "Rule type" +msgstr "规则类型" + +msgid "Rule type (allow)" +msgstr "规则类型(允许)" + +msgid "Service category" +msgstr "服务类别" + +msgid "Service category the rule applies to" +msgstr "规则应用的服务类别" + +msgid "Services" +msgstr "服务" + +msgid "Service Groups" +msgstr "服务组" + +msgid "Create a new HBAC rule." +msgstr "创建一个新HBAC规则。" + +msgid "Add target hosts and hostgroups to an HBAC rule." +msgstr "在一个HBAC规则中添加目标主机和主机组。" + +msgid "Add services to an HBAC rule." +msgstr "在HBAC规则中添加服务" + +msgid "member HBAC service" +msgstr "成员HBAC服务" + +msgid "HBAC services to add" +msgstr "待添加的HBAC服务" + +msgid "member HBAC service group" +msgstr "成员HBAC服务组" + +msgid "HBAC service groups to add" +msgstr "待添加的HBAC服务组" + +msgid "Add users and groups to an HBAC rule." +msgstr "在一个HBAC规则中添加用户和用户组。" + +msgid "Delete an HBAC rule." +msgstr "删除一个HBAC规则。" + +msgid "Disable an HBAC rule." +msgstr "禁用一个HBAC规则。" + +msgid "Enable an HBAC rule." +msgstr "启用一个HBAC规则。" + +msgid "Search for HBAC rules." +msgstr "查找HBAC规则。" + +msgid "Modify an HBAC rule." +msgstr "修改一个HBAC规则。" + +msgid "Remove target hosts and hostgroups from an HBAC rule." +msgstr "从一个HBAC规则中移除目标主机和主机组。" + +msgid "Remove service and service groups from an HBAC rule." +msgstr "从一个HBAC规则中移除服务和服务组。" + +msgid "HBAC services to remove" +msgstr "待移除的HBAC服务" + +msgid "HBAC service groups to remove" +msgstr "待移除的HBAC服务组" + +msgid "Remove users and groups from an HBAC rule." +msgstr "从一个HBAC规则中移除用户和用户组。" + +msgid "Display the properties of an HBAC rule." +msgstr "显示一个HBAC规则的属性。" + +msgid "RPC command used to log the current user out of their session." +msgstr "RPC命令用于记录当前用户的会话。" + +msgid "Privilege name" +msgstr "特权名" + +msgid "Privilege description" +msgstr "特权描述" + +msgid "Granting privilege to roles" +msgstr "给角色授予特权" + +msgid "Add a new privilege." +msgstr "添加一个新的特权。" + +msgid "Add members to a privilege." +msgstr "向一个特权中添加成员。" + +msgid "member role" +msgstr "成员角色" + +msgid "roles to add" +msgstr "待添加角色" + +msgid "Add permissions to a privilege." +msgstr "向一个特权中添加权限。" + +msgid "permission" +msgstr "权限" + +msgid "permissions" +msgstr "权限" + +msgid "Number of permissions added" +msgstr "已添加权限数" + +msgid "Delete a privilege." +msgstr "删除一个特权。" + +msgid "Search for privileges." +msgstr "查找特权。" + +msgid "Modify a privilege." +msgstr "修改一个特权。" + +msgid "Rename the privilege object" +msgstr "重命名特权对象" + +msgid "Remove members from a privilege" +msgstr "从特权中移除成员" + +msgid "roles to remove" +msgstr "待移除角色" + +msgid "Remove permissions from a privilege." +msgstr "从特权中移除权限。" + +msgid "Number of permissions removed" +msgstr "已移除权限数" + +msgid "Display information about a privilege." +msgstr "显示一个特权信息。" + +msgid "Domain" +msgstr "域" + +msgid "Add domain" +msgstr "添加域" + +msgid "Delete domain" +msgstr "删除域" + +msgid "Modify realm domains." +msgstr "修改realm域。" + +msgid "Force adding domain even if not in DNS" +msgstr "即使域在DNS中不存在,也强制添加它" + +msgid "Display the list of realm domains." +msgstr "显示realm域列表。" + +msgid "Service name" +msgstr "服务名" + +msgid "HBAC service" +msgstr "HBAC服务" + +msgid "HBAC service description" +msgstr "HBAC服务描述" + +msgid "Member of HBAC service groups" +msgstr "HBAC服务组成员" + +msgid "Add a new HBAC service." +msgstr "添加一个新的HBAC服务。" + +msgid "Delete an existing HBAC service." +msgstr "删除一个存在的HBAC服务。" + +msgid "Search for HBAC services." +msgstr "查找HBAC服务。" + +msgid "Results should contain primary key attribute only (\"service\")" +msgstr "结果应该只包括主键属性(\"service\")" + +msgid "Modify an HBAC service." +msgstr "修改一个HBAC服务。" + +msgid "Display information about an HBAC service." +msgstr "显示一个HBAC服务信息。" msgid "First name" msgstr "名" @@ -2783,39 +1860,30 @@ msgstr "显示名称" msgid "Initials" msgstr "名字的首字母" -msgid "Home directory" -msgstr "主目录" - -msgid "GECOS field" -msgstr "GECOS字段" - -msgid "Login shell" -msgstr "登录shell" - msgid "Kerberos principal" msgstr "Kerberos主体" +msgid "Kerberos principal expiration" +msgstr "Kerberos主体过期" + msgid "Email address" msgstr "邮件地址" +msgid "Password" +msgstr "密码" + msgid "Prompt to set the user password" msgstr "提示设置用户密码" msgid "Generate a random user password" msgstr "生成一个随机用户密码" -msgid "UID" -msgstr "UID" +msgid "Random password" +msgstr "随机密码" msgid "User ID Number (system will assign one if not provided)" msgstr "用户ID号码(如果没有提供系统会分配一个)" -msgid "GID" -msgstr "GID" - -msgid "Group ID Number" -msgstr "组ID号码" - msgid "Street address" msgstr "街道地址" @@ -2849,281 +1917,953 @@ msgstr "管理者" msgid "Car License" msgstr "汽车执照" -msgid "Account disabled" -msgstr "禁用账户" +msgid "User authentication types" +msgstr "用户认证类型" + +msgid "Types of supported user authentication" +msgstr "支持的用户认证类型" + +msgid "Class" +msgstr "类" + +msgid "" +"User category (semantics placed on this attribute are for local " +"interpretation)" +msgstr "用户类别(该属性的语义是就近解读)" + +msgid "RADIUS proxy configuration" +msgstr "RADIUS代理配置" + +msgid "RADIUS proxy username" +msgstr "RADIUS代理名称" + +msgid "Department Number" +msgstr "部门编号" + +msgid "Employee Number" +msgstr "员工编号" + +msgid "Employee Type" +msgstr "员工类型" + +msgid "Preferred Language" +msgstr "首选语言" msgid "Member of groups" msgstr "组成员" +msgid "Member of Sudo rule" +msgstr "Sudo规则的成员" + +msgid "Member of HBAC rule" +msgstr "HBAC规则的成员" + msgid "Indirect Member of group" msgstr "间接组成员" +msgid "Indirect Member of netgroup" +msgstr "间接网络组成员" + +msgid "Indirect Member of role" +msgstr "间接角色成员" + +msgid "Indirect Member of Sudo rule" +msgstr "间接Sudo规则成员" + +msgid "Indirect Member of HBAC rule" +msgstr "间接HBAC规则成员" + msgid "Kerberos keys available" msgstr "Kerberos密码可用" -msgid "Add a new user." -msgstr "添加一个新用户。" +msgid "Activate a stage user." +msgstr "激活一个计划用户。" -msgid "Don't create user private group" -msgstr "不创建用户私有组" +msgid "Create Stage user in from a delete user" +msgstr "从一个删除用户中创建计划用户" -msgid "Delete a user." -msgstr "删除一个用户。" +msgid "Add a manager to the stage user entry" +msgstr "向一个计划用户条目中添加一个管理员" -msgid "Disable a user account." -msgstr "禁用一个用户账户。" +msgid "Delete a stage user." +msgstr "删除一个计划用户。" -msgid "Enable a user account." -msgstr "启用一个用户账户。" - -msgid "Search for users." -msgstr "查找用户。" - -msgid "Self" -msgstr "自己" - -msgid "Display user record for current Kerberos principal" -msgstr "显示当前Kerberos主体的用户记录" +msgid "Search for stage users." +msgstr "查找计划用户。" msgid "Results should contain primary key attribute only (\"login\")" msgstr "结果应该只包括主键属性(\"login\")" -msgid "group" -msgstr "组" +msgid "Search for stage users with these member of groups." +msgstr "查找包含这些组成员的计划用户。" -msgid "Search for users with these member of groups." -msgstr "查找包含这些组成员的用户。" +msgid "Search for stage users without these member of groups." +msgstr "查找不包含这些组成员的计划用户。" -msgid "Search for users without these member of groups." -msgstr "查找不包含这些组成员的用户。" +msgid "Search for stage users with these member of netgroups." +msgstr "查找包含这些网络组成员的计划用户。" -msgid "Search for users with these member of netgroups." -msgstr "查找包含这些网络组成员的用户。" +msgid "Search for stage users without these member of netgroups." +msgstr "查找不包含这些网络组成员的计划用户。" -msgid "Search for users without these member of netgroups." -msgstr "查找不包含这些网络组成员的用户。" +msgid "role" +msgstr "角色" -msgid "Search for users with these member of roles." -msgstr "查找包含这些角色成员的用户。" +msgid "Search for stage users with these member of roles." +msgstr "查找包含这些角色成员的计划用户。" -msgid "Search for users without these member of roles." -msgstr "查找不包含这些角色成员的用户。" +msgid "Search for stage users without these member of roles." +msgstr "查找不包含这些角色成员的计划用户。" -msgid "Search for users with these member of HBAC rules." -msgstr "查找包含这些HBAC规则成员的用户。" +msgid "HBAC rule" +msgstr "HBAC规则" -msgid "Search for users without these member of HBAC rules." -msgstr "查找不包含这些HBAC规则成员的用户。" +msgid "Search for stage users with these member of HBAC rules." +msgstr "查找包含这些HBAC规则成员的计划用户。" -msgid "Search for users with these member of sudo rules." -msgstr "查找包含这些sudo规则成员的用户。" +msgid "Search for stage users without these member of HBAC rules." +msgstr "查找不包含这些HBAC规则成员的计划用户。" -msgid "Search for users without these member of sudo rules." -msgstr "查找不包含这些sudo规则成员的用户。" +msgid "sudo rule" +msgstr "sudo规则" -msgid "Modify a user." -msgstr "修改一个用户。" +msgid "Search for stage users with these member of sudo rules." +msgstr "查找包含这些sudo规则成员的计划用户。" -msgid "Rename the user object" -msgstr "重命名用户对象" +msgid "Search for stage users without these member of sudo rules." +msgstr "查找不包含这些sudo规则成员的计划用户。" -msgid "Display information about a user." -msgstr "显示一个用户信息。" +msgid "Modify a stage user." +msgstr "修改一个计划用户。" -msgid "Group name" -msgstr "组名" +msgid "Rename the stage user object" +msgstr "重命名计划用户对象" -msgid "GID (use this option to set it manually)" -msgstr "GID(使用该选项来手动设置它)" +msgid "Remove a manager to the stage user entry" +msgstr "从一个计划用户条目中移除一个管理员" -msgid "Member users" -msgstr "成员用户" +msgid "Display information about a stage user." +msgstr "显示一个计划用户信息。" -msgid "Member groups" -msgstr "成员组" +msgid "RADIUS proxy server name" +msgstr "RADIUS代理服务器名称" -msgid "Indirect Member users" -msgstr "间接成员用户" +msgid "A description of this RADIUS proxy server" +msgstr "该RADIUS代理服务器的描述" -msgid "Indirect Member groups" -msgstr "间接成员组" +msgid "Server" +msgstr "服务器" -msgid "Create a new group." -msgstr "创建一个新组。" +msgid "The hostname or IP (with or without port)" +msgstr "主机名或IP(有或没有端口)" -msgid "Create as a non-POSIX group" -msgstr "创建一个非POSIX组" +msgid "Secret" +msgstr "密码" -msgid "Allow adding external non-IPA members from trusted domains" -msgstr "允许从信任域中添加额外的非IPA成员" +msgid "The secret used to encrypt data" +msgstr "密码用于数据加密" -msgid "Add members to a group." -msgstr "向一个组中添加成员。" +msgid "Timeout" +msgstr "超时" -msgid "External member" -msgstr "额外的成员" +msgid "The total timeout across all retries (in seconds)" +msgstr "所有重试总超时(秒)" -msgid "" -"comma-separated list of members of a trusted domain in DOM\\name or " -"name@domain form" -msgstr "以逗号分隔的信任域成员列表是“DOM\\名称”或“名称@域名”格式" +msgid "Retries" +msgstr "重试" -msgid "Delete group." -msgstr "删除组。" +msgid "The number of times to retry authentication" +msgstr "重试认证的次数" -msgid "Search for groups." -msgstr "查找组。" +msgid "User attribute" +msgstr "用户属性" -msgid "search for private groups" -msgstr "查找私有组" +msgid "The username attribute on the user object" +msgstr "用户对象的用户名属性" -msgid "Results should contain primary key attribute only (\"group-name\")" -msgstr "结果应该只包括主键属性(\"group-name\")" +msgid "Add a new RADIUS proxy server." +msgstr "添加一个新的RADIUS代理服务器。" -msgid "Search for groups with these member users." -msgstr "查找包含这些成员用户的组。" +msgid "Delete a RADIUS proxy server." +msgstr "删除一个RADIUS代理服务器。" -msgid "Search for groups without these member users." -msgstr "查找不包含这些成员用户的组。" +msgid "Search for RADIUS proxy servers." +msgstr "查找RADIUS代理服务器。" -msgid "Search for groups with these member groups." -msgstr "查找包含这些成员用户组的组。" +msgid "Modify a RADIUS proxy server." +msgstr "修改一个RADIUS代理服务器。" -msgid "Search for groups without these member groups." -msgstr "查找不包含这些成员用户组的组。" +msgid "Rename the RADIUS proxy server object" +msgstr "重命名RADIUS代理服务器对象" -msgid "Search for groups with these member of groups." -msgstr "查找包含这些组成员的组。" - -msgid "Search for groups without these member of groups." -msgstr "查找不包含这些组成员的组。" - -msgid "Search for groups with these member of netgroups." -msgstr "查找包含这些网络组成员的组。" - -msgid "Search for groups without these member of netgroups." -msgstr "查找不包含这些网络组成员的组。" - -msgid "Search for groups with these member of roles." -msgstr "查找包含这些角色成员的组。" - -msgid "Search for groups without these member of roles." -msgstr "查找不包含这些角色成员的组。" - -msgid "Search for groups with these member of HBAC rules." -msgstr "查找包含这些HBAC规则成员的组。" - -msgid "Search for groups without these member of HBAC rules." -msgstr "查找不包含这些HBAC规则成员的组。" - -msgid "Search for groups with these member of sudo rules." -msgstr "查找包含这些sudo规则成员的组。" - -msgid "Search for groups without these member of sudo rules." -msgstr "查找不包含这些sudo规则成员的组。" - -msgid "Modify a group." -msgstr "修改一个组。" - -msgid "change to a POSIX group" -msgstr "改变一个POSIX组" - -msgid "change to support external non-IPA members from trusted domains" -msgstr "改变以便从信任域中支持额外的非IPA成员" - -msgid "Rename the group object" -msgstr "重命名组对象" - -msgid "Remove members from a group." -msgstr "从一个组中移除成员。" - -msgid "Display information about a named group." -msgstr "显示指定组信息。" - -msgid "Set a user's password." -msgstr "设置一个用户的密码。" - -msgid "New Password" -msgstr "新密码" - -msgid "Current Password" -msgstr "当前密码" +msgid "Display information about a RADIUS proxy server." +msgstr "显示一个RADIUS代理服务器信息。" msgid "" "\n" -"Joining an IPA domain\n" +"Misc plug-ins\n" msgstr "" "\n" -"加入一个IPA域\n" +"Misc插件\n" -msgid "Join an IPA domain" -msgstr "加入一个IPA域" +msgid "Show environment variables." +msgstr "显示环境变量。" -msgid "The IPA realm" -msgstr "IPA域" +msgid "Forward to server instead of running locally" +msgstr "转发到服务器而不是在本地运行" -msgid "Hardware platform of the host (e.g. Lenovo T61)" -msgstr "主机硬件平台(例如:联想T61)" +msgid "" +"retrieve and print all attributes from the server. Affects command output." +msgstr "从服务器检索和打印所有属性。影响命令输出。" -msgid "Operating System and version of the host (e.g. Fedora 9)" -msgstr "主机操作系统版本(例如:Fedora 9)" +msgid "Total number of variables env (>= count)" +msgstr "env变量总数(>= count)" -msgid "Role name" -msgstr "角色名" +msgid "Number of variables returned (<= total)" +msgstr "返回变量数(<= total)" -msgid "A description of this role-group" -msgstr "该角色组的描述" +msgid "Show all loaded plugins." +msgstr "显示所有加载的插件。" -msgid "Member hosts" -msgstr "成员主机" +msgid "Number of plugins loaded" +msgstr "已加载插件数" -msgid "Member host-groups" +msgid "Profile ID" +msgstr "配置文件ID" + +msgid "Profile ID for referring to this profile" +msgstr "指向该配置文件的配置文件ID" + +msgid "Profile description" +msgstr "配置文件描述" + +msgid "Brief description of this profile" +msgstr "该配置文件的简要描述" + +msgid "Store issued certificates" +msgstr "存储已发布证书" + +msgid "Whether to store certs issued using this profile" +msgstr "是否存储使用该配置文件的证书发布" + +msgid "Delete a Certificate Profile." +msgstr "删除一个证书配置文件。" + +msgid "Search for Certificate Profiles." +msgstr "查找证书配置文件。" + +msgid "Results should contain primary key attribute only (\"id\")" +msgstr "结果应该只包括主键属性(\"id\")" + +msgid "Import a Certificate Profile." +msgstr "导入一个证书配置文件。" + +msgid "Filename of a raw profile. The XML format is not supported." +msgstr "原始配置文件的文件名。不支持XML格式。" + +msgid "Modify Certificate Profile configuration." +msgstr "修改证书配置文件配置。" + +msgid "File containing profile configuration" +msgstr "文件包含配置文件配置" + +msgid "Display the properties of a Certificate Profile." +msgstr "显示一个证书配置文件的属性。" + +msgid "Write profile configuration to file" +msgstr "将配置文件配置写进文件" + +msgid "Unique ID" +msgstr "唯一ID" + +msgid "Type" +msgstr "类型" + +msgid "Type of the token" +msgstr "令牌类型" + +msgid "Token description (informational only)" +msgstr "令牌描述(只是信息)" + +msgid "Owner" +msgstr "所有者" + +msgid "Assigned user of the token (default: self)" +msgstr "分配用户令牌(默认:自己)" + +msgid "Assigned manager of the token (default: self)" +msgstr "分配管理者令牌(默认:自己)" + +msgid "Disabled" +msgstr "禁用" + +msgid "Mark the token as disabled (default: false)" +msgstr "令牌标记为禁用(默认:错误的)" + +msgid "Validity start" +msgstr "有效期开始于" + +msgid "First date/time the token can be used" +msgstr "令牌被第一次使用" + +msgid "Validity end" +msgstr "有效期结束于" + +msgid "Last date/time the token can be used" +msgstr "令牌被最后一次使用" + +msgid "Vendor" +msgstr "供应商" + +msgid "Token vendor name (informational only)" +msgstr "令牌供应商名称(只是信息)" + +msgid "Model" +msgstr "模式" + +msgid "Token model (informational only)" +msgstr "令牌模式(只是信息)" + +msgid "Serial" +msgstr "序列号" + +msgid "Token serial (informational only)" +msgstr "令牌序列号(只是信息)" + +msgid "Key" +msgstr "键" + +msgid "Token secret (Base32; default: random)" +msgstr "令牌密码(Base32;默认:随机)" + +msgid "Algorithm" +msgstr "算法" + +msgid "Token hash algorithm" +msgstr "令牌散列算法" + +msgid "Digits" +msgstr "数字" + +msgid "Number of digits each token code will have" +msgstr "每个令牌码拥有的数字个数" + +msgid "Clock offset" +msgstr "时钟偏移量" + +msgid "TOTP token / FreeIPA server time difference" +msgstr "TOTP令牌/FreeIPA服务器时差" + +msgid "Clock interval" +msgstr "时间间隔" + +msgid "Length of TOTP token code validity" +msgstr "TOTP令牌码有效长度" + +msgid "Counter" +msgstr "计数器" + +msgid "Initial counter for the HOTP token" +msgstr "HOTP令牌初始计数器" + +msgid "Add a new OTP token." +msgstr "添加一个新的OTP令牌。" + +msgid "(deprecated)" +msgstr "(弃用)" + +msgid "Do not display QR code" +msgstr "不显示二维码" + +msgid "Add users that can manage this token." +msgstr "添加可以管理该令牌的用户" + +msgid "Delete an OTP token." +msgstr "删除一个OTP令牌。" + +msgid "Search for OTP token." +msgstr "查找OTP令牌。" + +msgid "Modify a OTP token." +msgstr "修改一个OTP令牌。" + +msgid "Rename the OTP token object" +msgstr "重命名OTP令牌对象" + +msgid "Remove users that can manage this token." +msgstr "移除可以管理该令牌的用户。" + +msgid "Display information about an OTP token." +msgstr "显示一个OTP令牌信息。" + +msgid "" +"\n" +"Plugins not accessible directly through the CLI, commands used internally\n" +msgstr "" +"\n" +"通过CLI不能直接访问插件,需要使用内部命令\n" + +msgid "Dict of I18N messages" +msgstr "国际化消息字典" + +msgid "Export plugin meta-data for the webUI." +msgstr "webUI中导出插件元数据。" + +msgid "Name of object to export" +msgstr "导出对象的名称" + +msgid "Name of method to export" +msgstr "导出方法的名称" + +msgid "Name of command to export" +msgstr "导出命令的名称" + +msgid "Dict of JSON encoded IPA Objects" +msgstr "JSON编码IPA对象字典" + +msgid "Dict of JSON encoded IPA Methods" +msgstr "JSON编码IPA方法字典" + +msgid "Dict of JSON encoded IPA Commands" +msgstr "JSON编码IPA命令字典" + +msgid "A description of this auto member rule" +msgstr "一个自动成员规则的描述" + +msgid "Default (fallback) Group" +msgstr "默认(回退)组" + +msgid "Add an automember rule." +msgstr "添加一个自动成员规则。" + +msgid "Automember Rule" +msgstr "自动成员规则" + +msgid "Grouping Type" +msgstr "组类型" + +msgid "Grouping to which the rule applies" +msgstr "组应用于哪种规则" + +msgid "Add conditions to an automember rule." +msgstr "添加条件到一个自动成员规则。" + +msgid "Inclusive Regex" +msgstr "兼容的正则表达式" + +msgid "Exclusive Regex" +msgstr "独占的正则表达式" + +msgid "Attribute Key" +msgstr "性键值" + +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a " +"user" +msgstr "" +"通过正则表达式来过滤属性。例如:一个主机的fqdn属性,或者一个用户的manager属性" + +msgid "Conditions that could not be added" +msgstr "不能被添加的条件" + +msgid "Number of conditions added" +msgstr "已添加的条件数" + +msgid "Remove default (fallback) group for all unmatched entries." +msgstr "对所有不匹配的条目移除默认(回退)组。" + +msgid "Set default (fallback) group for all unmatched entries." +msgstr "对所有不匹配的条目设置默认(回退)组。" + +msgid "Display information about the default (fallback) automember groups." +msgstr "显示默认(回退)自动成员组的信息。" + +msgid "Delete an automember rule." +msgstr "删除一个自动成员规则。" + +msgid "Search for automember rules." +msgstr "查找自动成员规则。" + +msgid "Modify an automember rule." +msgstr "修改一个自动成员规则。" + +msgid "No wait" +msgstr "无需等待" + +msgid "Remove conditions from an automember rule." +msgstr "从一个自动成员规则中移除条件。" + +msgid "Conditions that could not be removed" +msgstr "不能被移除的条件" + +msgid "Number of conditions removed" +msgstr "已移除的条件数" + +msgid "Display information about an automember rule." +msgstr "显示一个自动成员规则信息。" + +msgid "Permission name" +msgstr "权限名称" + +msgid "Granted rights" +msgstr "授予权限" + +msgid "Rights to grant (read, search, compare, write, add, delete, all)" +msgstr "授予权限(读,查找,比较,写,添加,删除,全部)" + +msgid "Effective attributes" +msgstr "有效属性" + +msgid "All attributes to which the permission applies" +msgstr "权限可以应用所有属性" + +msgid "Included attributes" +msgstr "包含的属性" + +msgid "User-specified attributes to which the permission applies" +msgstr "权限可以应用用户指定属性" + +msgid "Excluded attributes" +msgstr "排除的属性" + +msgid "" +"User-specified attributes to which the permission explicitly does not apply" +msgstr "权限明确不能应用到用户指定的属性" + +msgid "Default attributes" +msgstr "默认属性" + +msgid "Attributes to which the permission applies by default" +msgstr "权限默认应用的属性" + +msgid "Bind rule type" +msgstr "绑定规则类型" + +msgid "Subtree" +msgstr "子树" + +msgid "Extra target filter" +msgstr "额外的目标过滤器" + +msgid "Raw target filter" +msgstr "原始的目标过滤器" + +msgid "Target DN" +msgstr "目标DN" + +msgid "Target DN subtree" +msgstr "目标DN子树" + +msgid "Origin DN subtree" +msgstr "原始DN子树" + +msgid "Member of group" +msgstr "组成员" + +msgid "Target members of a group (sets memberOf targetfilter)" +msgstr "组目标成员(设置隶属于目标过滤器)" + +msgid "Target group" +msgstr "目标组" + +msgid "Type of IPA object (sets subtree and objectClass targetfilter)" +msgstr "IPA目标类型(设置子树和对象类目标过滤器)" + +msgid "Deprecated; use extratargetfilter" +msgstr "过时的;使用额外的目标过滤器" + +msgid "Granted to Privilege" +msgstr "授于特权" + +msgid "Indirect Member of roles" +msgstr "间接角色成员" + +msgid "Add a new permission." +msgstr "添加一个新的权限。" + +msgid "Add members to a permission." +msgstr "将成员添加到权限。" + +msgid "member privilege" +msgstr "成员特权" + +msgid "privileges to add" +msgstr "待添加的特权" + +msgid "Add a system permission without an ACI (internal command)" +msgstr "添加一个没有ACI的系统权限(内部命令)" + +msgid "Permission flags" +msgstr "权限标记" + +msgid "Delete a permission." +msgstr "删除一个权限。" + +msgid "force delete of SYSTEM permissions" +msgstr "强制删除系统权限" + +msgid "Search for permissions." +msgstr "查找权限。" + +msgid "Modify a permission." +msgstr "修改一个权限。" + +msgid "Rename the permission object" +msgstr "重命名权限对象" + +msgid "Remove members from a permission." +msgstr "从一个权限中移除成员。" + +msgid "privileges to remove" +msgstr "待移除的特权" + +msgid "Display information about a permission." +msgstr "显示一个权限信息。" + +msgid "Service group name" +msgstr "服务组名称" + +msgid "HBAC service group description" +msgstr "HBAC服务组描述" + +msgid "Member HBAC service" +msgstr "成员HBAC服务" + +msgid "Add a new HBAC service group." +msgstr "添加一个新的HBAC服务组。" + +msgid "Add members to an HBAC service group." +msgstr "在一个HBAC服务组中添加成员。" + +msgid "Delete an HBAC service group." +msgstr "删除一个HBAC服务组。" + +msgid "Search for an HBAC service group." +msgstr "查找一个HBAC服务组。" + +msgid "Modify an HBAC service group." +msgstr "修改一个HBAC服务组。" + +msgid "Remove members from an HBAC service group." +msgstr "从一个HBAC服务组中移除成员。" + +msgid "Display information about an HBAC service group." +msgstr "显示一个HBAC服务组信息。" + +msgid "Self-service name" +msgstr "自助服务名" + +msgid "Attributes to which the permission applies." +msgstr "权限应用属性。" + +msgid "Add a new self-service permission." +msgstr "添加一个新的自助服务权限。" + +msgid "Delete a self-service permission." +msgstr "删除一个自助服务权限。" + +msgid "Search for a self-service permission." +msgstr "查找一个自助服务权限。" + +msgid "Modify a self-service permission." +msgstr "修改一个自助服务权限。" + +msgid "Display information about a self-service permission." +msgstr "显示一个自助服务权限信息。" + +msgid "ACI name" +msgstr "ACI名称" + +msgid "Permission" +msgstr "权限" + +msgid "Permission ACI grants access to" +msgstr "ACI授予访问的权限" + +msgid "Permissions to grant(read, write, add, delete, all)" +msgstr "授予权限(读,写,添加,删除,全部)" + +msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" +msgstr "IPA对象类型(用户,用户组,主机,主机组,服务,网络组)" + +msgid "Member of" +msgstr "隶属于" + +msgid "Member of a group" +msgstr "组成员" + +msgid "Filter" +msgstr "过滤" + +msgid "Legal LDAP filter (e.g. ou=Engineering)" +msgstr "合法的LDAP过滤(例如:ou=Engineering)" + +msgid "Target your own entry (self)" +msgstr "设定你自己的条目" + +msgid "Apply ACI to your own entry (self)" +msgstr "应用ACI到你自己的条目" + +msgid "Create new ACI." +msgstr "创建新的ACI。" + +msgid "ACI prefix" +msgstr "ACI前缀" + +msgid "" +"Prefix used to distinguish ACI types (permission, delegation, selfservice, " +"none)" +msgstr "前缀用来区分ACI类型(权限,授权,自助,无)" + +msgid "Test the ACI syntax but don't write anything" +msgstr "测试ACI语法但不写任何东西" + +msgid "Delete ACI." +msgstr "删除ACI。" + +msgid "Modify ACI." +msgstr "修改ACI。" + +msgid "Rename an ACI." +msgstr "重命名一个ACI。" + +msgid "New ACI name" +msgstr "新的ACI名" + +msgid "Display a single ACI given an ACI name." +msgstr "给出一个ACI名显示一个单一的ACI。" + +msgid "Location of the ACI" +msgstr "ACI的位置" + +msgid "Server name" +msgstr "服务名称" + +msgid "IPA server hostname" +msgstr "IPA服务主机名" + +msgid "Managed suffixes" +msgstr "已管理的后缀" + +msgid "Min domain level" +msgstr "最低域级别" + +msgid "Minimum domain level" +msgstr "最低域级别" + +msgid "Max domain level" +msgstr "最高域级别" + +msgid "Maximum domain level" +msgstr "最高域级别" + +msgid "Check connection to remote IPA server." +msgstr "检测和远程IPA服务器的连接。" + +msgid "Remote server name" +msgstr "远程服务器名称" + +msgid "Remote IPA server hostname" +msgstr "远程IPA服务器主机名" + +msgid "Delete IPA server." +msgstr "删除IPA服务器。" + +msgid "Search for IPA servers." +msgstr "查找IPA服务器。" + +msgid "suffix" +msgstr "后缀" + +msgid "Search for servers with these managed suffixes." +msgstr "查找包含这些管理后缀的服务器。" + +msgid "Search for servers without these managed suffixes." +msgstr "查找不包含这些管理后缀的服务器。" + +msgid "Show IPA server." +msgstr "显示IPA服务器。" + +msgid "Host name" +msgstr "主机名" + +msgid "A description of this host" +msgstr "该主机的描述" + +msgid "Locality" +msgstr "位置" + +msgid "Host locality (e.g. \"Baltimore, MD\")" +msgstr "主机地点(如\"Baltimore, MD\")" + +msgid "Location" +msgstr "位置" + +msgid "Host location (e.g. \"Lab 2\")" +msgstr "主机位置(如\"Lab 2\")" + +msgid "Platform" +msgstr "平台" + +msgid "Host hardware platform (e.g. \"Lenovo T61\")" +msgstr "主机硬件平台 (e.g. \"Lenovo T61\")" + +msgid "Operating system" +msgstr "操作系统" + +msgid "Host operating system and version (e.g. \"Fedora 9\")" +msgstr "主机操作系统及版本(e.g. \"Fedora 9\")" + +msgid "User password" +msgstr "用户密码" + +msgid "Password used in bulk enrollment" +msgstr "密码用于批量注册" + +msgid "Generate a random password to be used in bulk enrollment" +msgstr "生成一个随机密码用于批量注册" + +msgid "Principal name" +msgstr "主机名" + +msgid "MAC address" +msgstr "MAC地址" + +msgid "Hardware MAC address(es) on this host" +msgstr "主机硬件MAC地址" + +msgid "" +"Host category (semantics placed on this attribute are for local " +"interpretation)" +msgstr "主机类别(该属性的语义是就近解读)" + +msgid "Assigned ID View" +msgstr "已分配的ID视图" + +msgid "Member of host-groups" msgstr "主机组成员" -msgid "Privileges" -msgstr "特权" +msgid "Indirect Member of host-group" +msgstr "间接主机组成员" -msgid "Add a new role." -msgstr "添加一个新角色。" +msgid "Managing" +msgstr "管理" -msgid "Add members to a role." -msgstr "向角色中添加成员。" +msgid "Add a new host." +msgstr "添加一个新主机。" -msgid "Add privileges to a role." -msgstr "向一个角色中添加特权。" +msgid "skip reverse DNS detection" +msgstr "忽略反向DNS检测" -msgid "privilege" -msgstr "特权" +msgid "IP Address" +msgstr "IP 地址" -msgid "comma-separated list of privileges" -msgstr "以逗号分隔的权限列表" +msgid "Add the host to DNS with this IP address" +msgstr "用该IP地址将主机添加到DNS中" -msgid "Number of privileges added" -msgstr "已添加特权数" +msgid "Add certificates to host entry" +msgstr "向主机条目中添加证书" -msgid "Delete a role." -msgstr "删除一个角色。" +msgid "Add hosts that can manage this host." +msgstr "添加可以管理该主机的主机。" -msgid "Search for roles." -msgstr "查找角色。" +msgid "" +"Allow users, groups, hosts or host groups to create a keytab of this host." +msgstr "允许用户,用户组,主机或主机组来创建该主机的keytab。" -msgid "Modify a role." -msgstr "修改一个角色。" +msgid "" +"Allow users, groups, hosts or host groups to retrieve a keytab of this host." +msgstr "允许用户,用户组,主机或主机组来检索该主机的keytab。" -msgid "Rename the role object" -msgstr "重命名角色对象" +msgid "Delete a host." +msgstr "删除一个主机。" -msgid "Remove members from a role." -msgstr "从一个角色中移除成员。" +msgid "Remove entries from DNS" +msgstr "从DNS中移除条目" -msgid "Remove privileges from a role." -msgstr "从一个角色中移除权限。" +msgid "Disable the Kerberos key, SSL certificate and all services of a host." +msgstr "禁用该主机的Kerberos密钥,SSL证书和所有的服务。" -msgid "Number of privileges removed" -msgstr "已移除权限数" +msgid "" +"Disallow users, groups, hosts or host groups to create a keytab of this host." +msgstr "不允许用户,用户组,主机或主机组来创建该主机的keytab。" -msgid "Display information about a role." -msgstr "显示一个角色信息。" +msgid "" +"Disallow users, groups, hosts or host groups to retrieve a keytab of this " +"host." +msgstr "不允许用户,用户组,主机或主机组来检索该主机的keytab。" + +msgid "Search for hosts." +msgstr "查找主机。" + +msgid "Results should contain primary key attribute only (\"hostname\")" +msgstr "结果应该只包括主键属性(\"hostname\")" + +msgid "Search for hosts with these member of host groups." +msgstr "查找包含这些主机组成员的主机。" + +msgid "Search for hosts without these member of host groups." +msgstr "查找不包含这些主机组成员的主机。" + +msgid "Search for hosts with these member of netgroups." +msgstr "查找包含这些网络组成员的主机。" + +msgid "Search for hosts without these member of netgroups." +msgstr "查找不包含这些网络组成员的主机。" + +msgid "Search for hosts with these member of roles." +msgstr "查找包含这些角色成员的主机。" + +msgid "Search for hosts without these member of roles." +msgstr "查找不包含这些角色成员的主机。" + +msgid "Search for hosts with these member of HBAC rules." +msgstr "查找包含这些HBAC规则成员的主机。" + +msgid "Search for hosts without these member of HBAC rules." +msgstr "查找不包含这些HBAC规则成员的主机。" + +msgid "Search for hosts with these member of sudo rules." +msgstr "查找包含这些sudo规则成员的主机。" + +msgid "Search for hosts without these member of sudo rules." +msgstr "查找不包含这些sudo规则成员的主机。" + +msgid "Search for hosts with these enrolled by users." +msgstr "查找包含用户注册的主机。" + +msgid "Search for hosts without these enrolled by users." +msgstr "查找不包含用户注册的主机。" + +msgid "Search for hosts with these managed by hosts." +msgstr "查找由该主机管理的主机。" + +msgid "Search for hosts without these managed by hosts." +msgstr "查找不由该主机管理的主机。" + +msgid "Search for hosts with these managing hosts." +msgstr "查找管理该主机的主机。" + +msgid "Search for hosts without these managing hosts." +msgstr "查找不管理该主机的主机。" + +msgid "Modify information about a host." +msgstr "修改主机信息" + +msgid "Kerberos principal name for this host" +msgstr "该主机的Kerberos主体名" + +msgid "Update DNS entries" +msgstr "更新DNS条目" + +msgid "Remove certificates from host entry" +msgstr "从主机条目中移除证书" + +msgid "Remove hosts that can manage this host." +msgstr "移除可以管理该主机的主机。" + +msgid "Display information about a host." +msgstr "显示一个主机信息。" msgid "Host-group" msgstr "主机组" @@ -3200,1194 +2940,6 @@ msgstr "从一个主机组中移除成员。" msgid "Display information about a hostgroup." msgstr "显示一个主机组信息。" -msgid "Netgroup name" -msgstr "网络组名称" - -msgid "Netgroup description" -msgstr "网络组描述" - -msgid "NIS domain name" -msgstr "NIS域名" - -msgid "IPA unique ID" -msgstr "IPA唯一ID" - -msgid "Member netgroups" -msgstr "成员网络组" - -msgid "Indirect Member netgroups" -msgstr "间接成员网络组" - -msgid "Member User" -msgstr "成员用户" - -msgid "Member Group" -msgstr "成员组" - -msgid "Member Host" -msgstr "成员主机" - -msgid "Member Hostgroup" -msgstr "成员主机组" - -msgid "Add a new netgroup." -msgstr "添加一个新的网络组。" - -msgid "Add members to a netgroup." -msgstr "向一个网络组添加成员。" - -msgid "member netgroup" -msgstr "成员网络组" - -msgid "comma-separated list of netgroups to add" -msgstr "待添加的以逗号分隔的网络组列表" - -msgid "Delete a netgroup." -msgstr "删除一个网络组。" - -msgid "Search for a netgroup." -msgstr "查找一个网络组。" - -msgid "search for managed groups" -msgstr "查找管理组" - -msgid "Search for netgroups with these member netgroups." -msgstr "查找包含这些成员网络组的网络组。" - -msgid "Search for netgroups without these member netgroups." -msgstr "查找不包含这些成员网络组的网络组。" - -msgid "Search for netgroups with these member users." -msgstr "查找包含这些成员用户的网络组。" - -msgid "Search for netgroups without these member users." -msgstr "查找不包含这些成员用户的网络组。" - -msgid "Search for netgroups with these member groups." -msgstr "查找包含这些成员用户组的网络组。" - -msgid "Search for netgroups without these member groups." -msgstr "查找不包含这些成员用户组的网络组。" - -msgid "Search for netgroups with these member hosts." -msgstr "查找包含这些成员主机的网络组。" - -msgid "Search for netgroups without these member hosts." -msgstr "查找不包含这些成员主机的网络组。" - -msgid "Search for netgroups with these member host groups." -msgstr "查找包含这些成员主机组的网络组。" - -msgid "Search for netgroups without these member host groups." -msgstr "查找不包含这些成员主机组的网络组。" - -msgid "Search for netgroups with these member of netgroups." -msgstr "查找包含这些网络组成员的网络组。" - -msgid "Search for netgroups without these member of netgroups." -msgstr "查找不包含这些网络组成员的网络组。" - -msgid "Modify a netgroup." -msgstr "修改一个网络组。" - -msgid "Remove members from a netgroup." -msgstr "从一个网络组中移除成员。" - -msgid "comma-separated list of netgroups to remove" -msgstr "待移除的以逗号分隔的网络组列表" - -msgid "Display information about a netgroup." -msgstr "显示一个网络组信息。" - -msgid "Global forwarders" -msgstr "全局转发器" - -msgid "" -"A list of global forwarders. A custom port can be specified for each " -"forwarder using a standard format \"IP_ADDRESS port PORT\"" -msgstr "" -"一个全局转发器列表。使用标准格式\"IP_ADDRESS port PORT\"为每个转发器指定一个" -"自定义端口" - -msgid "Forward policy" -msgstr "转发器策略" - -msgid "" -"Global forwarding policy. Set to \"none\" to disable any configured global " -"forwarders." -msgstr "全局转发器策略。通过设置\"none\"来禁用全局转发器的所有配置。" - -msgid "Allow PTR sync" -msgstr "允许PTR同步" - -msgid "Allow synchronization of forward (A, AAAA) and reverse (PTR) records" -msgstr "允许同步正向(A,AAAA)和反向(PTR)记录" - -msgid "Zone refresh interval" -msgstr "区域刷新间隔" - -msgid "An interval between regular polls of the name server for new DNS zones" -msgstr "命名服务器新的DNS区域定期调查的间隔" - -msgid "Record name" -msgstr "记录名" - -msgid "Time to live" -msgstr "存活时间" - -msgid "Class" -msgstr "类" - -msgid "DNS class" -msgstr "DNS类" - -msgid "Records" -msgstr "记录" - -msgid "Record type" -msgstr "记录类型" - -msgid "Record data" -msgstr "记录数据" - -msgid "A record" -msgstr "一条记录" - -msgid "Comma-separated list of raw A records" -msgstr "以逗号分隔的原始A记录列表" - -msgid "A IP Address" -msgstr "IP地址" - -msgid "Create reverse record for this IP Address" -msgstr "为该IP地址创建反向记录" - -msgid "AAAA record" -msgstr "AAAA记录" - -msgid "Comma-separated list of raw AAAA records" -msgstr "以逗号分隔的原始AAAA记录列表" - -msgid "AAAA IP Address" -msgstr "AAAA IP地址" - -msgid "A6 record" -msgstr "A6记录" - -msgid "Comma-separated list of raw A6 records" -msgstr "以逗号分隔的原始A6记录列表" - -msgid "A6 Record data" -msgstr "A6记录数据" - -msgid "AFSDB record" -msgstr "AFSDB记录" - -msgid "Comma-separated list of raw AFSDB records" -msgstr "以逗号分隔的原始AFSDB记录列表" - -msgid "AFSDB Subtype" -msgstr "AFSDB子类型" - -msgid "Subtype" -msgstr "子类型" - -msgid "AFSDB Hostname" -msgstr "AFSDB主机名" - -msgid "Hostname" -msgstr "主机名" - -msgid "APL record" -msgstr "APL记录" - -msgid "Comma-separated list of raw APL records" -msgstr "以逗号分隔的原始APL记录列表" - -msgid "CERT record" -msgstr "CERT记录" - -msgid "Comma-separated list of raw CERT records" -msgstr "以逗号分隔的原始CERT记录列表" - -msgid "CERT Certificate Type" -msgstr "CERT证书类型" - -msgid "Certificate Type" -msgstr "证书类型" - -msgid "CERT Key Tag" -msgstr "CERT键标记" - -msgid "Key Tag" -msgstr "键标记" - -msgid "CERT Algorithm" -msgstr "CERT算法" - -msgid "Algorithm" -msgstr "算法" - -msgid "CERT Certificate/CRL" -msgstr "CERT证书/CRL" - -msgid "Certificate/CRL" -msgstr "证书/CRL" - -msgid "CNAME record" -msgstr "CNAME记录" - -msgid "Comma-separated list of raw CNAME records" -msgstr "以逗号分隔的原始CNAME记录列表" - -msgid "CNAME Hostname" -msgstr "CNAME主机名" - -msgid "A hostname which this alias hostname points to" -msgstr "一个别名主机名指向主机名" - -msgid "DHCID record" -msgstr "DHCID记录" - -msgid "Comma-separated list of raw DHCID records" -msgstr "以逗号分隔的原始DHCID记录列表" - -msgid "DLV record" -msgstr "DLV记录" - -msgid "Comma-separated list of raw DLV records" -msgstr "以逗号分隔的原始DLV记录列表" - -msgid "DNAME record" -msgstr "DNAME记录" - -msgid "Comma-separated list of raw DNAME records" -msgstr "以逗号分隔的原始DNAME记录列表" - -msgid "DNAME Target" -msgstr "DNAME目标" - -msgid "Target" -msgstr "目标" - -msgid "DNSKEY record" -msgstr "DNSKEY记录" - -msgid "Comma-separated list of raw DNSKEY records" -msgstr "以逗号分隔的原始DNSKEY记录列表" - -msgid "DS record" -msgstr "DS记录" - -msgid "Comma-separated list of raw DS records" -msgstr "以逗号分隔的原始DS记录列表" - -msgid "DS Key Tag" -msgstr "DS键标记" - -msgid "DS Algorithm" -msgstr "DS算法" - -msgid "DS Digest Type" -msgstr "DS摘要类型" - -msgid "Digest Type" -msgstr "摘要类型" - -msgid "DS Digest" -msgstr "DS摘要" - -msgid "Digest" -msgstr "摘要" - -msgid "HIP record" -msgstr "HIP记录" - -msgid "Comma-separated list of raw HIP records" -msgstr "以逗号分隔的原始HIP记录列表" - -msgid "IPSECKEY record" -msgstr "IPSECKEY记录" - -msgid "Comma-separated list of raw IPSECKEY records" -msgstr "以逗号分隔的原始IPSECKEY记录列表" - -msgid "KEY record" -msgstr "KEY记录" - -msgid "Comma-separated list of raw KEY records" -msgstr "以逗号分隔的原始KEY记录列表" - -msgid "KEY Flags" -msgstr "KEY标记" - -msgid "Flags" -msgstr "标记" - -msgid "KEY Protocol" -msgstr "KEY协议" - -msgid "Protocol" -msgstr "协议" - -msgid "KEY Algorithm" -msgstr "KEY算法" - -msgid "KEY Public Key" -msgstr "KEY公钥" - -msgid "Public Key" -msgstr "公钥" - -msgid "KX record" -msgstr "KX记录" - -msgid "Comma-separated list of raw KX records" -msgstr "以逗号分隔的原始KX记录列表" - -msgid "KX Preference" -msgstr "KX优先权" - -msgid "Preference given to this exchanger. Lower values are more preferred" -msgstr "该交换器的优先级。值越低优先级越高" - -msgid "KX Exchanger" -msgstr "KX交换器" - -msgid "A host willing to act as a key exchanger" -msgstr "主机愿意充当关键交换器" - -msgid "LOC record" -msgstr "LOC记录" - -msgid "Comma-separated list of raw LOC records" -msgstr "以逗号分隔的原始LOC记录列表" - -msgid "LOC Minutes Latitude" -msgstr "LOC分钟纬度" - -msgid "Minutes Latitude" -msgstr "分钟纬度" - -msgid "LOC Seconds Latitude" -msgstr "LOC秒纬度" - -msgid "Seconds Latitude" -msgstr "秒纬度" - -msgid "LOC Direction Latitude" -msgstr "LOC纬度方向" - -msgid "Direction Latitude" -msgstr "纬度方向" - -msgid "LOC Minutes Longitude" -msgstr "LOC分钟经度" - -msgid "Minutes Longitude" -msgstr "分钟经度" - -msgid "LOC Seconds Longitude" -msgstr "LOC秒经度" - -msgid "Seconds Longitude" -msgstr "秒经度" - -msgid "LOC Direction Longitude" -msgstr "LOC经度方向" - -msgid "Direction Longitude" -msgstr "经度方向" - -msgid "LOC Altitude" -msgstr "LOC高度" - -msgid "Altitude" -msgstr "高度" - -msgid "LOC Size" -msgstr "LOC大小" - -msgid "Size" -msgstr "大小" - -msgid "LOC Horizontal Precision" -msgstr "LOC水平精度" - -msgid "Horizontal Precision" -msgstr "水平精度" - -msgid "LOC Vertical Precision" -msgstr "LOC垂直精度" - -msgid "Vertical Precision" -msgstr "垂直精度" - -msgid "MX record" -msgstr "MX记录" - -msgid "Comma-separated list of raw MX records" -msgstr "以逗号分隔的原始MX记录列表" - -msgid "MX Preference" -msgstr "MX优先权" - -msgid "MX Exchanger" -msgstr "MX交换器" - -msgid "A host willing to act as a mail exchanger" -msgstr "主机愿意充当邮件交换器" - -msgid "NAPTR record" -msgstr "NAPTR记录" - -msgid "Comma-separated list of raw NAPTR records" -msgstr "以逗号分隔的原始NAPTR记录列表" - -msgid "NAPTR Order" -msgstr "NAPTR规则" - -msgid "Order" -msgstr "规则" - -msgid "NAPTR Preference" -msgstr "NAPTR优先权" - -msgid "Preference" -msgstr "优先权" - -msgid "NAPTR Flags" -msgstr "NAPTR标记" - -msgid "NAPTR Service" -msgstr "NAPTR服务" - -msgid "Service" -msgstr "服务" - -msgid "NAPTR Regular Expression" -msgstr "NAPTR正则表达式" - -msgid "Regular Expression" -msgstr "正则表达式" - -msgid "NAPTR Replacement" -msgstr "NAPTR替换" - -msgid "Replacement" -msgstr "替换" - -msgid "NS record" -msgstr "NS记录" - -msgid "Comma-separated list of raw NS records" -msgstr "以逗号分隔的原始NS记录列表" - -msgid "NS Hostname" -msgstr "NS主机名" - -msgid "NSEC record" -msgstr "NSEC记录" - -msgid "Comma-separated list of raw NSEC records" -msgstr "以逗号分隔的原始NSEC记录列表" - -msgid "NSEC Next Domain Name" -msgstr "NSEC下一个域名" - -msgid "Next Domain Name" -msgstr "下一个域名" - -msgid "NSEC Type Map" -msgstr "NSEC类型映射" - -msgid "Type Map" -msgstr "类型映射" - -msgid "NSEC3 record" -msgstr "NSEC3记录" - -msgid "Comma-separated list of raw NSEC3 records" -msgstr "以逗号分隔的原始NSEC3记录列表" - -msgid "NSEC3PARAM record" -msgstr "NSEC3PARAM记录" - -msgid "Comma-separated list of raw NSEC3PARAM records" -msgstr "以逗号分隔的原始NSEC3PARAM记录列表" - -msgid "PTR record" -msgstr "PTR记录" - -msgid "Comma-separated list of raw PTR records" -msgstr "以逗号分隔的原始PTR记录列表" - -msgid "PTR Hostname" -msgstr "PTR主机名" - -msgid "The hostname this reverse record points to" -msgstr "反向记录指向的主机名" - -msgid "RRSIG record" -msgstr "RRSIG记录" - -msgid "Comma-separated list of raw RRSIG records" -msgstr "以逗号分隔的原始RRSIG记录列表" - -msgid "RRSIG Type Covered" -msgstr "RRSIG类型覆盖" - -msgid "Type Covered" -msgstr "类型覆盖" - -msgid "RRSIG Algorithm" -msgstr "RRSIG算法" - -msgid "RRSIG Labels" -msgstr "RRSIG分类" - -msgid "Labels" -msgstr "分类" - -msgid "RRSIG Original TTL" -msgstr "RRSIG原始TTL" - -msgid "Original TTL" -msgstr "原始TTL" - -msgid "RRSIG Signature Expiration" -msgstr "RRSIG签名过期" - -msgid "Signature Expiration" -msgstr "签名过期" - -msgid "RRSIG Signature Inception" -msgstr "RRSIG签名开端" - -msgid "Signature Inception" -msgstr "签名开端" - -msgid "RRSIG Key Tag" -msgstr "RRSIG密钥标记" - -msgid "RRSIG Signer's Name" -msgstr "RRSIG签名者的名字" - -msgid "Signer's Name" -msgstr "签名者的名字" - -msgid "RRSIG Signature" -msgstr "RRSIG签名" - -msgid "Signature" -msgstr "签名" - -msgid "RP record" -msgstr "RP记录" - -msgid "Comma-separated list of raw RP records" -msgstr "以逗号分隔的原始RP记录列表" - -msgid "SIG record" -msgstr "SIG记录" - -msgid "Comma-separated list of raw SIG records" -msgstr "以逗号分隔的原始SIG记录列表" - -msgid "SIG Type Covered" -msgstr "SIG类型覆盖" - -msgid "SIG Algorithm" -msgstr "SIG算法" - -msgid "SIG Labels" -msgstr "SIG分类" - -msgid "SIG Original TTL" -msgstr "SIG原始TTL" - -msgid "SIG Signature Expiration" -msgstr "SIG签名过期" - -msgid "SIG Signature Inception" -msgstr "SIG签名开端" - -msgid "SIG Key Tag" -msgstr "SIG密钥标记" - -msgid "SIG Signer's Name" -msgstr "SIG签名者的名字" - -msgid "SIG Signature" -msgstr "SIG签名" - -msgid "SPF record" -msgstr "SPF记录" - -msgid "Comma-separated list of raw SPF records" -msgstr "以逗号分隔的原始SPF记录列表" - -msgid "SRV record" -msgstr "SRV记录" - -msgid "Comma-separated list of raw SRV records" -msgstr "以逗号分隔的原始SRV记录列表" - -msgid "SRV Priority" -msgstr "SRV优先级" - -msgid "SRV Weight" -msgstr "SRV重量" - -msgid "Weight" -msgstr "重量" - -msgid "SRV Port" -msgstr "SRV端口" - -msgid "Port" -msgstr "端口" - -msgid "SRV Target" -msgstr "SRV目标" - -msgid "" -"The domain name of the target host or '.' if the service is decidedly not " -"available at this domain" -msgstr "目标主机的域名或是'.'如果服务在该域中明显不存在" - -msgid "SSHFP record" -msgstr "SSHFP记录" - -msgid "Comma-separated list of raw SSHFP records" -msgstr "以逗号分隔的原始SSHFP记录列表" - -msgid "SSHFP Algorithm" -msgstr "SSHFP算法" - -msgid "SSHFP Fingerprint Type" -msgstr "SSHFP指纹类型" - -msgid "Fingerprint Type" -msgstr "指纹类型" - -msgid "SSHFP Fingerprint" -msgstr "SSHFP指纹" - -msgid "Fingerprint" -msgstr "指纹" - -msgid "TA record" -msgstr "TA记录" - -msgid "Comma-separated list of raw TA records" -msgstr "以逗号分隔的原始TA记录列表" - -msgid "TKEY record" -msgstr "TKEY记录" - -msgid "Comma-separated list of raw TKEY records" -msgstr "以逗号分隔的原始TKEY记录列表" - -msgid "TSIG record" -msgstr "TSIG记录" - -msgid "Comma-separated list of raw TSIG records" -msgstr "以逗号分隔的原始TSIG记录列表" - -msgid "TXT record" -msgstr "TXT记录" - -msgid "Comma-separated list of raw TXT records" -msgstr "以逗号分隔的原始TXT记录列表" - -msgid "TXT Text Data" -msgstr "TXT文本数据" - -msgid "Text Data" -msgstr "文本数据" - -msgid "Zone name" -msgstr "区域名" - -msgid "Zone name (FQDN)" -msgstr "区域名(FQDN)" - -msgid "Reverse zone IP network" -msgstr "反向区域IP网络" - -msgid "IP network to create reverse zone name from" -msgstr "IP网络创建反向区域名" - -msgid "Authoritative nameserver" -msgstr "权威的命名服务器" - -msgid "Authoritative nameserver domain name" -msgstr "权威的命名服务器域名" - -msgid "Administrator e-mail address" -msgstr "管理员电子邮件地址" - -msgid "SOA serial" -msgstr "SOA序列" - -msgid "SOA record serial number" -msgstr "SOA记录编号" - -msgid "SOA refresh" -msgstr "SOA刷新" - -msgid "SOA record refresh time" -msgstr "SOA记录刷新时间" - -msgid "SOA retry" -msgstr "SOA重试" - -msgid "SOA record retry time" -msgstr "SOA记录重试时间" - -msgid "SOA expire" -msgstr "SOA到期" - -msgid "SOA record expire time" -msgstr "SOA记录到期时间" - -msgid "SOA minimum" -msgstr "SOA最低值" - -msgid "How long should negative responses be cached" -msgstr "负面响应应该被缓存多久" - -msgid "SOA time to live" -msgstr "SOA存活时间" - -msgid "SOA record time to live" -msgstr "SOA记录存活时间" - -msgid "SOA class" -msgstr "SOA类" - -msgid "SOA record class" -msgstr "SOA记录类" - -msgid "BIND update policy" -msgstr "BIND更新策略" - -msgid "Active zone" -msgstr "活跃区" - -msgid "Is zone active?" -msgstr "区域活跃吗?" - -msgid "Dynamic update" -msgstr "动态更新" - -msgid "Allow dynamic updates." -msgstr "允许动态更新" - -msgid "Allow query" -msgstr "允许查询" - -msgid "" -"Semicolon separated list of IP addresses or networks which are allowed to " -"issue queries" -msgstr "分号分割的IP地址或网络列表允许被查询" - -msgid "Allow transfer" -msgstr "允许传输" - -msgid "" -"Semicolon separated list of IP addresses or networks which are allowed to " -"transfer the zone" -msgstr "分号分割的IP地址或网络列表允许被传输" - -msgid "Zone forwarders" -msgstr "区域转发器" - -msgid "" -"A list of per-zone forwarders. A custom port can be specified for each " -"forwarder using a standard format \"IP_ADDRESS port PORT\"" -msgstr "" -"一个Per-zone转发器列表。使用标准格式\"IP_ADDRESS port PORT\"为每个转发器指定" -"一个自定义端口" - -msgid "" -"Allow synchronization of forward (A, AAAA) and reverse (PTR) records in the " -"zone" -msgstr "允许在区域中同步正向(A,AAAA)和反向(PTR)记录" - -msgid "Checks if any of the servers has the DNS service enabled." -msgstr "检查是否有任何服务器启用了DNS服务。" - -msgid "Resolve a host name in DNS." -msgstr "在DNS中解析主机名。" - -msgid "Modify global DNS configuration." -msgstr "修改全局DNS配置。" - -msgid "Show the current global DNS configuration." -msgstr "显示当前全局DNS配置。" - -msgid "Add new DNS resource record." -msgstr "添加新的DNS资源记录。" - -msgid "force NS record creation even if its hostname is not in DNS" -msgstr "即使NS记录不在DNS中,也强制创建它。" - -msgid "Structured" -msgstr "有条理的" - -msgid "Parse all raw DNS records and return them in a structured way" -msgstr "解析所有的原始DNS记录并以有条理的方式返回它们" - -msgid "Delete DNS resource record." -msgstr "删除DNS资源记录。" - -msgid "Delete all associated records" -msgstr "删除所有相关记录" - -msgid "Delete DNS record entry." -msgstr "删除DNS记录条目。" - -msgid "Search for DNS resources." -msgstr "查找DNS资源。" - -msgid "Modify a DNS resource record." -msgstr "修改DNS资源记录。" - -msgid "Rename the DNS resource record object" -msgstr "重命名DNS资源记录对象" - -msgid "Display DNS resource." -msgstr "显示DNS资源。" - -msgid "Create new DNS zone (SOA record)." -msgstr "创建新的DNS区域(SOA记录)。" - -msgid "Force DNS zone creation even if nameserver is not resolvable." -msgstr "即使命名服务器无法解析,也强制创建DNS区域。" - -msgid "Add forward record for nameserver located in the created zone" -msgstr "为位于创建区域的命名服务器添加正向记录" - -msgid "Add a permission for per-zone access delegation." -msgstr "为每个区访问授权添加一个权限。" - -msgid "Delete DNS zone (SOA record)." -msgstr "删除DNS区域(SOA记录)。" - -msgid "Disable DNS Zone." -msgstr "禁用DNS区域。" - -msgid "Enable DNS Zone." -msgstr "启用DNS区域。" - -msgid "Search for DNS zones (SOA records)." -msgstr "查找DNS区域(SOA记录)。" - -msgid "Forward zones only" -msgstr "仅正向区域" - -msgid "Search for forward zones only" -msgstr "仅查找正向区域" - -msgid "Modify DNS zone (SOA record)." -msgstr "修改DNS区域(SOA记录)。" - -msgid "Force nameserver change even if nameserver not in DNS" -msgstr "即使命名服务器不在DNS中,也强制改变它" - -msgid "Remove a permission for per-zone access delegation." -msgstr "为每个区访问授权移除一个权限。" - -msgid "Display information about a DNS zone (SOA record)." -msgstr "显示DNS区域(SOA记录)信息。" - -msgid "Rule type" -msgstr "规则类型" - -msgid "Rule type (allow)" -msgstr "规则类型(允许)" - -msgid "Source host category" -msgstr "源主机类别" - -msgid "Source host category the rule applies to" -msgstr "规则应用的源主机类别" - -msgid "Service category" -msgstr "服务类别" - -msgid "Service category the rule applies to" -msgstr "规则应用的服务类别" - -msgid "Source Hosts" -msgstr "源主机" - -msgid "Source Host Groups" -msgstr "源主机组" - -msgid "Services" -msgstr "服务" - -msgid "Service Groups" -msgstr "服务组" - -msgid "Create a new HBAC rule." -msgstr "创建一个新HBAC规则。" - -msgid "Add target hosts and hostgroups to an HBAC rule." -msgstr "在一个HBAC规则中添加目标主机和主机组。" - -msgid "Add services to an HBAC rule." -msgstr "在HBAC规则中添加服务" - -msgid "member HBAC service group" -msgstr "成员HBAC服务组" - -msgid "comma-separated list of HBAC service groups to add" -msgstr "待添加的以逗号分隔的HBAC服务组列表" - -msgid "Add source hosts and hostgroups from a HBAC rule." -msgstr "从一个HBAC规则中添加源主机和主机组。" - -msgid "Add users and groups to an HBAC rule." -msgstr "在一个HBAC规则中添加用户和用户组。" - -msgid "Delete an HBAC rule." -msgstr "删除一个HBAC规则。" - -msgid "Disable an HBAC rule." -msgstr "禁用一个HBAC规则。" - -msgid "Enable an HBAC rule." -msgstr "启用一个HBAC规则。" - -msgid "Search for HBAC rules." -msgstr "查找HBAC规则。" - -msgid "Modify an HBAC rule." -msgstr "修改一个HBAC规则。" - -msgid "Remove target hosts and hostgroups from an HBAC rule." -msgstr "从一个HBAC规则中移除目标主机和主机组。" - -msgid "Remove service and service groups from an HBAC rule." -msgstr "从一个HBAC规则中移除服务和服务组。" - -msgid "comma-separated list of HBAC service groups to remove" -msgstr "待移除的以逗号分隔的HBAC服务组列表" - -msgid "Remove source hosts and hostgroups from an HBAC rule." -msgstr "从一个HBAC规则中移除源主机和主机组。" - -msgid "Remove users and groups from an HBAC rule." -msgstr "从一个HBAC规则中移除用户和用户组。" - -msgid "Display the properties of an HBAC rule." -msgstr "显示一个HBAC规则的属性。" - -msgid "Simulate use of Host-based access controls" -msgstr "模拟使用基于主机访问控制" - -msgid "Source host" -msgstr "源主机" - -msgid "Target host" -msgstr "目标主机" - -msgid "Rules to test. If not specified, --enabled is assumed" -msgstr "带测试规则。如果没有指定,--enable是假定的" - -msgid "Hide details which rules are matched, not matched, or invalid" -msgstr "隐藏规则匹配,不匹配或无效的细节" - -msgid "Include all enabled IPA rules into test [default]" -msgstr "在测试中包含所有启用的IPA规则【默认】" - -msgid "Include all disabled IPA rules into test" -msgstr "在测试中包含所有禁用的IPA规则" - -msgid "Maximum number of rules to process when no --rules is specified" -msgstr "当没有使用--rules来指定规则时,能处理的最大规则数" - -msgid "Warning" -msgstr "警告" - -msgid "Matched rules" -msgstr "已匹配规则" - -msgid "Not matched rules" -msgstr "不匹配规则" - -msgid "Non-existent or invalid rules" -msgstr "不存在或无效的规则" - -msgid "Result of simulation" -msgstr "模拟结果" - -msgid "Privilege name" -msgstr "特权名" - -msgid "Privilege description" -msgstr "特权描述" - -msgid "Granting privilege to roles" -msgstr "给角色授予特权" - -msgid "Add a new privilege." -msgstr "添加一个新的特权。" - -msgid "Add members to a privilege." -msgstr "向一个特权中添加成员。" - -msgid "member role" -msgstr "成员角色" - -msgid "comma-separated list of roles to add" -msgstr "待添加的以逗号分隔的角色列表" - -msgid "Add permissions to a privilege." -msgstr "向一个特权中添加权限。" - -msgid "permission" -msgstr "权限" - -msgid "comma-separated list of permissions" -msgstr "以逗号分隔的权限列表" - -msgid "Number of permissions added" -msgstr "已添加权限数" - -msgid "Delete a privilege." -msgstr "删除一个特权。" - -msgid "Search for privileges." -msgstr "查找特权。" - -msgid "Modify a privilege." -msgstr "修改一个特权。" - -msgid "Rename the privilege object" -msgstr "重命名特权对象" - -msgid "Remove members from a privilege" -msgstr "从特权中移除成员" - -msgid "comma-separated list of roles to remove" -msgstr "待移除的以逗号分隔的角色列表" - -msgid "Remove permissions from a privilege." -msgstr "从特权中移除权限。" - -msgid "Number of permissions removed" -msgstr "已移除权限数" - -msgid "Display information about a privilege." -msgstr "显示一个特权信息。" - -msgid "Serial number" -msgstr "序列号" - -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" -msgstr "十进制序列号或者以0x为前缀的十六进制序列号" - -msgid "Submit a certificate signing request." -msgstr "提交一个证书签名请求。" - -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" -msgstr "该证书服务主体(例如:HTTP/test.example.com)" - -msgid "automatically add the principal if it doesn't exist" -msgstr "若主体不存在,则自动添加" - -msgid "Revoke a certificate." -msgstr "撤销证书。" - -msgid "Reason" -msgstr "原因" - -msgid "Reason for revoking the certificate (0-10)" -msgstr "撤消证书的原因(0-10)" - -msgid "Retrieve an existing certificate." -msgstr "检索一个已存在的证书。" - -msgid "Output filename" -msgstr "输出文件名" - -msgid "File to store the certificate in." -msgstr "存储证书文件。" - -msgid "Check the status of a certificate signing request." -msgstr "检查证书签名请求的状态。" - -msgid "Request id" -msgstr "请求号" - -msgid "Domain NetBIOS name" -msgstr "域NetBIOS名" - -msgid "Domain Security Identifier" -msgstr "域安全标识符" - -msgid "SID blacklist incoming" -msgstr "进来的SID黑名单" - -msgid "SID blacklist outgoing" -msgstr "出去的SID黑名单" - -msgid "Domain" -msgstr "域" - -msgid "Security Identifier" -msgstr "安全标识符" - -msgid "NetBIOS name" -msgstr "NetBIOS名称" - -msgid "Domain GUID" -msgstr "域GUID" - -msgid "Fallback primary group" -msgstr "回退主要的组" - -msgid "Trust type (ad for Active Directory, default)" -msgstr "信任类型(活动目录,默认)" - -msgid "Active Directory domain administrator" -msgstr "活动目录域管理员" - -msgid "Active directory domain administrator's password" -msgstr "活动目录域管理员密码" - -msgid "Domain controller for the Active Directory domain (optional)" -msgstr "活动目录域的域控制器(可选的)" - -msgid "First Posix ID of the range reserved for the trusted domain" -msgstr "信任域范围的第一个Posix ID" - -msgid "Size of the ID range reserved for the trusted domain" -msgstr "信任域ID范围的大小" - -msgid "Delete a trust." -msgstr "删除一个信任。" - -msgid "Search for trusts." -msgstr "查找信任。" - -msgid "Results should contain primary key attribute only (\"realm\")" -msgstr "结果应该只包括主键属性(\"realm\")" - -msgid "Display information about a trust." -msgstr "显示信任信息。" - -msgid "Modify global trust configuration." -msgstr "修改全局信任配置。" - -msgid "Show global trust configuration." -msgstr "显示全局信任配置。" - msgid "Maximum username length" msgstr "最大用户名长度" @@ -4415,15 +2967,14 @@ msgstr "默认的电子邮件域" msgid "Search time limit" msgstr "搜索时间限制" -msgid "" -"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" -msgstr "最大的时间(秒)搜索(>0,或-1表示无限制)" +msgid "Maximum amount of time (seconds) for a search (-1 or 0 is unlimited)" +msgstr "最大的时间(秒)搜索(-1或0表示无限制)" msgid "Search size limit" msgstr "搜索大小限制" -msgid "Maximum number of records to search (-1 is unlimited)" -msgstr "最大数量的搜索记录(-1表示无限制)" +msgid "Maximum number of records to search (-1 or 0 is unlimited)" +msgstr "最大数量的搜索记录(-1或0表示无限制)" msgid "User search fields" msgstr "用户搜索字段" @@ -4473,647 +3024,18 @@ msgstr "默认PAC类型" msgid "Default types of PAC supported for services" msgstr "默认PAC支持服务的类型" +msgid "Default user authentication types" +msgstr "默认用户认证类型" + +msgid "Default types of supported user authentication" +msgstr "默认支持用户认证的类型" + msgid "Modify configuration options." msgstr "修改配置选项" msgid "Show the current configuration." msgstr "显示当前配置。" -msgid "Name of the trusted domain" -msgstr "信任域的名称" - -msgid "ID range type, one of ipa-ad-trust-posix, ipa-ad-trust, ipa-local" -msgstr "ID范围类型,是ipa-ad-trust-posix,ipa-ad-trust,ipa-local中的一个" - -msgid "Time limit of search in seconds (0 is unlimited)" -msgstr "时间限制在几秒钟内的搜索(0代表无限制)" - -msgid "Maximum number of entries returned (0 is unlimited)" -msgstr "返回的最大条目数(0代表无限制)" - -msgid "" -"Override default list of supported PAC types. Use 'NONE' to disable PAC " -"support for this service, e.g. this might be necessary for NFS services." -msgstr "" -"覆盖默认支持的PAC类型列表。使用'NONE'来禁用该服务的PAC支持,例如,这可能是NFS" -"服务的必要条件。" - -msgid "Requires pre-authentication" -msgstr "需要预认证" - -msgid "Pre-authentication is required for the service" -msgstr "服务需要预认证" - -msgid "Trusted for delegation" -msgstr "允许授权" - -msgid "Client credentials may be delegated to the service" -msgstr "客户端证书可以授权给服务" - -msgid "Users allowed to retrieve keytab" -msgstr "允许检索keytab的用户" - -msgid "Groups allowed to retrieve keytab" -msgstr "允许检索keytab的用户组" - -msgid "Hosts allowed to retrieve keytab" -msgstr "允许检索keytab的主机" - -msgid "Host Groups allowed to retrieve keytab" -msgstr "允许检索keytab的主机组" - -msgid "Users allowed to create keytab" -msgstr "允许创建keytab的用户" - -msgid "Groups allowed to create keytab" -msgstr "允许创建keytab的用户组" - -msgid "Hosts allowed to create keytab" -msgstr "允许创建keytab的主机" - -msgid "Host Groups allowed to create keytab" -msgstr "允许创建keytab的主机组" - -msgid "Suppress processing of membership attributes." -msgstr "抑制成员属性的处理。" - -msgid "Add new certificates to a service" -msgstr "向一个服务中添加新证书" - -msgid "hosts to add" -msgstr "待添加主机" - -msgid "" -"Allow users, groups, hosts or host groups to create a keytab of this service." -msgstr "允许用户,用户组,主机或主机组来创建一个该服务的keytab。" - -msgid "users to add" -msgstr "待添加用户" - -msgid "groups to add" -msgstr "待添加用户组" - -msgid "host groups to add" -msgstr "待添加主机组" - -msgid "" -"Allow users, groups, hosts or host groups to retrieve a keytab of this " -"service." -msgstr "允许用户,用户组,主机或主机组来检索一个该服务的keytab。" - -msgid "" -"Disallow users, groups, hosts or host groups to create a keytab of this " -"service." -msgstr "不允许用户,用户组,主机或主机组来创建该服务的keytab。" - -msgid "users to remove" -msgstr "待移除的用户" - -msgid "groups to remove" -msgstr "待移除的用户组" - -msgid "hosts to remove" -msgstr "待移除的主机" - -msgid "host groups to remove" -msgstr "待移除的主机组" - -msgid "" -"Disallow users, groups, hosts or host groups to retrieve a keytab of this " -"service." -msgstr "不允许用户,用户组,主机或主机组来检索该服务的keytab。" - -msgid "Remove certificates from a service" -msgstr "从一个服务中移除证书" - -msgid "External Groups of RunAs Users" -msgstr "作为用户来运行的外部用户组" - -msgid "External Groups of users that the command can run as" -msgstr "外部用户组可以运行的命令" - -msgid "sudo commands to add" -msgstr "待添加的sudo命令" - -msgid "sudo command groups to add" -msgstr "待添加的sudo命令组" - -msgid "sudo commands to remove" -msgstr "待移除的sudo命令" - -msgid "sudo command groups to remove" -msgstr "待移除的sudo命令组" - -msgid "User ID Number" -msgstr "用户ID号码" - -msgid "ID View Name" -msgstr "ID视图名称" - -msgid "Add a new Group ID override." -msgstr "添加一个新的组ID覆盖。" - -msgid "Fallback to AD DC LDAP" -msgstr "回退到AD DC LDAP" - -msgid "" -"Allow falling back to AD DC LDAP when resolving AD trusted objects. For two-" -"way trusts only." -msgstr "当解析AD信任对象时允许回退到AD DC LDAP。仅供双向信任。" - -msgid "Delete an Group ID override." -msgstr "删除一个组ID覆盖。" - -msgid "Search for an Group ID override." -msgstr "查找一个组ID覆盖。" - -msgid "Results should contain primary key attribute only (\"anchor\")" -msgstr "结果应该只包括主键属性(\"anchor\")" - -msgid "Modify an Group ID override." -msgstr "修改一个组ID覆盖。" - -msgid "Rename the Group ID override object" -msgstr "重命名组ID覆盖对象" - -msgid "Display information about an Group ID override." -msgstr "显示一个组ID覆盖信息。" - -msgid "Add a new User ID override." -msgstr "添加一个新的用户ID覆盖。" - -msgid "Delete an User ID override." -msgstr "删除一个用户ID覆盖。" - -msgid "Search for an User ID override." -msgstr "查找一个用户ID覆盖。" - -msgid "Modify an User ID override." -msgstr "修改一个用户ID覆盖。" - -msgid "Rename the User ID override object" -msgstr "重命名用户ID覆盖对象" - -msgid "Display information about an User ID override." -msgstr "显示一个用户ID覆盖信息。" - -msgid "Add a new ID View." -msgstr "添加一个新的ID视图。" - -msgid "" -"Applies ID View to specified hosts or current members of specified " -"hostgroups. If any other ID View is applied to the host, it is overridden." -msgstr "" -"ID视图适用于指定的主机或指定主机组的当前成员。如果该主机已有其他ID视图,则覆" -"盖它。" - -msgid "hosts" -msgstr "主机" - -msgid "Hosts to apply the ID View to" -msgstr "主机应用ID视图" - -msgid "hostgroups" -msgstr "主机组" - -msgid "" -"Hostgroups to whose hosts apply the ID View to. Please note that view is not " -"applied automatically to any hosts added to the hostgroup after running the " -"idview-apply command." -msgstr "" -"主机组的主机应用ID视图。请注意运行命令idview-apply后,视图并不会自动应用到主" -"机组中的主机中去。" - -msgid "Hosts that this ID View was applied to." -msgstr "应用过该ID视图的主机。" - -msgid "Hosts or hostgroups that this ID View could not be applied to." -msgstr "不能应用该ID视图的主机或主机组。" - -msgid "Number of hosts the ID View was applied to:" -msgstr "应用过该ID视图的主机数量:" - -msgid "Delete an ID View." -msgstr "删除一个ID视图。" - -msgid "Search for an ID View." -msgstr "查找一个ID视图。" - -msgid "Modify an ID View." -msgstr "修改一个ID视图。" - -msgid "Rename the ID View object" -msgstr "重命名ID视图对象" - -msgid "Display information about an ID View." -msgstr "显示一个ID视图信息。" - -msgid "Enumerate all the hosts the view applies to." -msgstr "列举应用视图的所有主机。" - -msgid "" -"Clears ID View from specified hosts or current members of specified " -"hostgroups." -msgstr "从指定主机或指定主机组的当前成员中清除ID视图。" - -msgid "Hosts or hostgroups that ID View could not be cleared from." -msgstr "ID视图不能被清除的主机或主机组。" - -msgid "Number of hosts that had a ID View was unset:" -msgstr "有ID视图未被设置的主机数量:" - -msgid "" -"\n" -"Raise the IPA Domain Level.\n" -msgstr "" -"\n" -"提高IPA域级别。\n" - -msgid "Query current Domain Level." -msgstr "查询当前域级别。" - -msgid "Current domain level:" -msgstr "当前域级别:" - -msgid "Change current Domain Level." -msgstr "改变当前域级别。" - -msgid "Domain Level" -msgstr "域级别" - -msgid "Granted rights" -msgstr "授予权限" - -msgid "Rights to grant (read, search, compare, write, add, delete, all)" -msgstr "授予权限(读,查找,比较,写,添加,删除,全部)" - -msgid "Effective attributes" -msgstr "有效属性" - -msgid "All attributes to which the permission applies" -msgstr "权限可以应用所有属性" - -msgid "Included attributes" -msgstr "包含的属性" - -msgid "User-specified attributes to which the permission applies" -msgstr "权限可以应用用户指定属性" - -msgid "Excluded attributes" -msgstr "排除的属性" - -msgid "" -"User-specified attributes to which the permission explicitly does not apply" -msgstr "权限明确不能应用到用户指定的属性" - -msgid "Default attributes" -msgstr "默认属性" - -msgid "Attributes to which the permission applies by default" -msgstr "权限默认应用的属性" - -msgid "Bind rule type" -msgstr "绑定规则类型" - -msgid "Extra target filter" -msgstr "额外的目标过滤器" - -msgid "Raw target filter" -msgstr "原始的目标过滤器" - -msgid "Target DN" -msgstr "目标DN" - -msgid "Target DN subtree" -msgstr "目标DN子树" - -msgid "Origin DN subtree" -msgstr "原始DN子树" - -msgid "Target members of a group (sets memberOf targetfilter)" -msgstr "组目标成员(设置隶属于目标过滤器)" - -msgid "Type of IPA object (sets subtree and objectClass targetfilter)" -msgstr "IPA目标类型(设置子树和对象类目标过滤器)" - -msgid "Deprecated; use extratargetfilter" -msgstr "过时的;使用额外的目标过滤器" - -msgid "privileges to add" -msgstr "待添加的特权" - -msgid "Add a system permission without an ACI (internal command)" -msgstr "添加一个没有ACI的系统权限(内部命令)" - -msgid "Permission flags" -msgstr "权限标记" - -msgid "privileges to remove" -msgstr "待移除的特权" - -msgid "Permissions to grant (read, write). Default is write." -msgstr "委托权限(读,写)。默认是写。" - -msgid "Attributes to which the permission applies." -msgstr "权限应用属性。" - -msgid "" -"Host category (semantics placed on this attribute are for local " -"interpretation)" -msgstr "主机类别(该属性的语义是就近解读)" - -msgid "Assigned ID View" -msgstr "已分配的ID视图" - -msgid "Add certificates to host entry" -msgstr "向主机条目中添加证书" - -msgid "" -"Allow users, groups, hosts or host groups to create a keytab of this host." -msgstr "允许用户,用户组,主机或主机组来创建该主机的keytab。" - -msgid "" -"Allow users, groups, hosts or host groups to retrieve a keytab of this host." -msgstr "允许用户,用户组,主机或主机组来检索该主机的keytab。" - -msgid "" -"Disallow users, groups, hosts or host groups to create a keytab of this host." -msgstr "不允许用户,用户组,主机或主机组来创建该主机的keytab。" - -msgid "" -"Disallow users, groups, hosts or host groups to retrieve a keytab of this " -"host." -msgstr "不允许用户,用户组,主机或主机组来检索该主机的keytab。" - -msgid "Remove certificates from host entry" -msgstr "从主机条目中移除证书" - -msgid "HBAC services to add" -msgstr "待添加的HBAC服务" - -msgid "HBAC services to remove" -msgstr "待移除的HBAC服务" - -msgid "Permissions to grant(read, write, add, delete, all)" -msgstr "授予权限(读,写,添加,删除,全部)" - -msgid "Location of the ACI" -msgstr "ACI的位置" - -msgid "Objectclasses used to search for user entries in DS" -msgstr "在DS中用于查找用户条目的对象类" - -msgid "Objectclasses used to search for group entries in DS" -msgstr "在DS中用户查找用户组条目的对象类" - -msgid "Objectclasses to be ignored for user entries in DS" -msgstr "在DS中被用户条目所忽略的对象类" - -msgid "Attributes to be ignored for user entries in DS" -msgstr "在DS中被用户条目所忽略的属性" - -msgid "Objectclasses to be ignored for group entries in DS" -msgstr "在DS中被用户组条目所忽略的对象类" - -msgid "Attributes to be ignored for group entries in DS" -msgstr "在DS中被用户组条目所忽略的属性" - -msgid "CA certificate" -msgstr "CA证书" - -msgid "Load CA certificate of LDAP server from FILE" -msgstr "从文件加载LDAP服务器的CA证书" - -msgid "Add to default group" -msgstr "添加到默认组" - -msgid "Add migrated users without a group to a default group (default: true)" -msgstr "添加没有组的移植用户到一个默认组(默认:正确的)" - -msgid "Search scope" -msgstr "范围查找" - -msgid "" -"LDAP search scope for users and groups: base, onelevel, or subtree. Defaults " -"to onelevel" -msgstr "用户和用户组的LDAP范围查找:基,一级,或子树。默认是一级" - -msgid "Vault name" -msgstr "库名称" - -msgid "Vault description" -msgstr "库描述" - -msgid "Vault type" -msgstr "库类型" - -msgid "Salt" -msgstr "盐值" - -msgid "Vault salt" -msgstr "库盐值" - -msgid "Public key" -msgstr "公钥" - -msgid "Vault public key" -msgstr "库公钥" - -msgid "Owner users" -msgstr "所有者用户" - -msgid "Owner groups" -msgstr "所有者用户组" - -msgid "Owner services" -msgstr "所有者服务" - -msgid "Failed owners" -msgstr "错误的所有者" - -msgid "Vault service" -msgstr "库服务" - -msgid "Shared vault" -msgstr "共享库" - -msgid "Vault user" -msgstr "共享用户" - -msgid "Member services" -msgstr "成员服务" - -msgid "Service name of the service vault" -msgstr "服务库的服务名" - -msgid "Username of the user vault" -msgstr "用户库的用户名" - -msgid "Add members to a vault." -msgstr "向一个库中添加成员。" - -msgid "member service" -msgstr "成员服务" - -msgid "services to add" -msgstr "待添加服务" - -msgid "Add owners to a vault." -msgstr "向一个库中添加所有者。" - -msgid "owner user" -msgstr "所有者用户" - -msgid "owner group" -msgstr "所有者用户组" - -msgid "owner service" -msgstr "所有者服务" - -msgid "Owners that could not be added" -msgstr "不能被添加的所有者" - -msgid "Number of owners added" -msgstr "已添加的所有者数" - -msgid "Vault data encrypted with session key" -msgstr "库数据用会话密钥加密" - -msgid "Nonce" -msgstr "临时的" - -msgid "Delete a vault." -msgstr "删除一个库。" - -msgid "Search for vaults." -msgstr "查找库。" - -msgid "List all service vaults" -msgstr "所有服务库列表" - -msgid "List all user vaults" -msgstr "所有用户库列表" - -msgid "Remove members from a vault." -msgstr "从一个库中移除成员。" - -msgid "services to remove" -msgstr "待移除服务" - -msgid "Remove owners from a vault." -msgstr "从一个库中移除所有者。" - -msgid "Owners that could not be removed" -msgstr "不能被移除的所有者" - -msgid "Number of owners removed" -msgstr "待移除的所有者数" - -msgid "Display information about a vault." -msgstr "显示一个库信息。" - -msgid "Show vault configuration." -msgstr "显示库配置。" - -msgid "Add owners to a vault container." -msgstr "向一个库容器中添加所有者。" - -msgid "Delete a vault container." -msgstr "删除一个库容器。" - -msgid "Remove owners from a vault container." -msgstr "从一个库容器中移除所有者。" - -msgid "Display information about a vault container." -msgstr "显示一个库容器信息。" - -msgid "No wait" -msgstr "无需等待" - -msgid "Segment name" -msgstr "段名称" - -msgid "Left node" -msgstr "左节点" - -msgid "Left replication node - an IPA server" -msgstr "左复制节点-IPA服务器" - -msgid "Right node" -msgstr "右节点" - -msgid "Right replication node - an IPA server" -msgstr "右复制节点-IPA服务器" - -msgid "Connectivity" -msgstr "连接" - -msgid "" -"A space separated list of attributes which are removed from replication " -"updates." -msgstr "从复制更新中删除的以空格分隔的属性列表。" - -msgid "Attributes to replicate" -msgstr "待复制属性" - -msgid "Attributes for total update" -msgstr "所有更新的属性" - -msgid "Session timeout" -msgstr "会话超时" - -msgid "" -"Number of seconds outbound LDAP operations waits for a response from the " -"remote replica before timing out and failing" -msgstr "在超时和失败前LDAP操作从远程复制服务器等待回应的用去的秒数" - -msgid "Replication agreement enabled" -msgstr "启用复制协议" - -msgid "Suffix name" -msgstr "后缀名称" - -msgid "LDAP suffix to be managed" -msgstr "待管理的LDAP后缀" - -msgid "Add a new segment." -msgstr "添加一个新段。" - -msgid "Delete a segment." -msgstr "删除一个段。" - -msgid "Search for topology segments." -msgstr "查找拓扑段。" - -msgid "Modify a segment." -msgstr "修改一个段。" - -msgid "" -"Request a full re-initialization of the node retrieving data from the other " -"node." -msgstr "请求一个完整的从另一个节点检索数据的节点重初始化。" - -msgid "Initialize left node" -msgstr "左节点初始化" - -msgid "Initialize right node" -msgstr "右节点初始化" - -msgid "Display a segment." -msgstr "显示一个段。" - -msgid "Add a new topology suffix to be managed." -msgstr "添加一个新的拓扑后缀到管理中。" - -msgid "Delete a topology suffix." -msgstr "删除一个拓扑后缀。" - -msgid "Modify a topology suffix." -msgstr "修改一个拓扑后缀。" - -msgid "Show managed suffix." -msgstr "显示已管理的后缀。" - msgid "ACL name" msgstr "ACL名称" @@ -5189,56 +3111,850 @@ msgstr "从一个CA ACL中移除用户和用户组。" msgid "Display the properties of a CA ACL." msgstr "显示一个CA ACL的属性。" -msgid "Kerberos principal expiration" -msgstr "Kerberos主体过期" +msgid "Simulate use of Host-based access controls" +msgstr "模拟使用基于主机访问控制" -msgid "User authentication types" -msgstr "用户认证类型" +msgid "Target host" +msgstr "目标主机" -msgid "Types of supported user authentication" -msgstr "支持的用户认证类型" +msgid "Service" +msgstr "服务" + +msgid "Rules to test. If not specified, --enabled is assumed" +msgstr "带测试规则。如果没有指定,--enable是假定的" + +msgid "Hide details which rules are matched, not matched, or invalid" +msgstr "隐藏规则匹配,不匹配或无效的细节" + +msgid "Include all enabled IPA rules into test [default]" +msgstr "在测试中包含所有启用的IPA规则【默认】" + +msgid "Include all disabled IPA rules into test" +msgstr "在测试中包含所有禁用的IPA规则" + +msgid "Maximum number of rules to process when no --rules is specified" +msgstr "当没有使用--rules来指定规则时,能处理的最大规则数" + +msgid "Warning" +msgstr "警告" + +msgid "Matched rules" +msgstr "已匹配规则" + +msgid "Not matched rules" +msgstr "不匹配规则" + +msgid "Non-existent or invalid rules" +msgstr "不存在或无效的规则" + +msgid "Result of simulation" +msgstr "模拟结果" + +msgid "Migrate users and groups from DS to IPA." +msgstr "将DS中的用户和用户组移植到IPA。" + +msgid "LDAP URI" +msgstr "LDAP URI" + +msgid "bind password" +msgstr "绑定密码" + +msgid "Bind DN" +msgstr "绑定DN" + +msgid "User container" +msgstr "用户容器" + +msgid "DN of container for users in DS relative to base DN" +msgstr "在DS中与基类DN相关的用户容器DN" + +msgid "Group container" +msgstr "组容器" + +msgid "DN of container for groups in DS relative to base DN" +msgstr "在DS中与基类DN相关的用户组容器DN" + +msgid "User object class" +msgstr "用户对象类" + +msgid "Objectclasses used to search for user entries in DS" +msgstr "在DS中用于查找用户条目的对象类" + +msgid "Group object class" +msgstr "组对象类" + +msgid "Objectclasses used to search for group entries in DS" +msgstr "在DS中用户查找用户组条目的对象类" + +msgid "Ignore user object class" +msgstr "忽略用户对象类" + +msgid "Objectclasses to be ignored for user entries in DS" +msgstr "在DS中被用户条目所忽略的对象类" + +msgid "Ignore user attribute" +msgstr "忽略用户属性" + +msgid "Attributes to be ignored for user entries in DS" +msgstr "在DS中被用户条目所忽略的属性" + +msgid "Ignore group object class" +msgstr "忽略组对象类" + +msgid "Objectclasses to be ignored for group entries in DS" +msgstr "在DS中被用户组条目所忽略的对象类" + +msgid "Ignore group attribute" +msgstr "忽略组属性" + +msgid "Attributes to be ignored for group entries in DS" +msgstr "在DS中被用户组条目所忽略的属性" + +msgid "Overwrite GID" +msgstr "覆盖GID" msgid "" -"User category (semantics placed on this attribute are for local " -"interpretation)" -msgstr "用户类别(该属性的语义是就近解读)" +"When migrating a group already existing in IPA domain overwrite the group " +"GID and report as success" +msgstr "当移植一个在IPA域中已存在的组时覆盖组GID并报告成功" -msgid "RADIUS proxy configuration" -msgstr "RADIUS代理配置" +msgid "LDAP schema" +msgstr "LDAP模式" -msgid "RADIUS proxy username" -msgstr "RADIUS代理名称" +msgid "" +"The schema used on the LDAP server. Supported values are RFC2307 and " +"RFC2307bis. The default is RFC2307bis" +msgstr "" +"用在LDAP服务器上的模式。支持值是RFC2307和RFC2307bis。默认值时RFC2307bis" -msgid "Department Number" -msgstr "部门编号" +msgid "Continue" +msgstr "连续" -msgid "Employee Number" -msgstr "员工编号" +msgid "" +"Continuous operation mode. Errors are reported but the process continues" +msgstr "连续操作模式。报告错误但这个过程仍在继续" -msgid "Employee Type" -msgstr "员工类型" +msgid "Base DN" +msgstr "基DN" -msgid "Preferred Language" -msgstr "首选语言" +msgid "Base DN on remote LDAP server" +msgstr "远程LDAP服务器上的基DN" + +msgid "Ignore compat plugin" +msgstr "忽略兼容插件" + +msgid "Allows migration despite the usage of compat plugin" +msgstr "即使使用兼容插件也允许迁移" + +msgid "CA certificate" +msgstr "CA证书" + +msgid "Load CA certificate of LDAP server from FILE" +msgstr "从文件加载LDAP服务器的CA证书" + +msgid "Add to default group" +msgstr "添加到默认组" + +msgid "Add migrated users without a group to a default group (default: true)" +msgstr "添加没有组的移植用户到一个默认组(默认:正确的)" + +msgid "Search scope" +msgstr "范围查找" + +msgid "" +"LDAP search scope for users and groups: base, onelevel, or subtree. Defaults " +"to onelevel" +msgstr "用户和用户组的LDAP范围查找:基,一级,或子树。默认是一级" + +msgid "Lists of objects migrated; categorized by type." +msgstr "对象移植列表;按类型分类。" + +msgid "Lists of objects that could not be migrated; categorized by type." +msgstr "不能移植的对象列表;按类型分类。" + +msgid "False if migration mode was disabled." +msgstr "如果移植模式是禁用的,则错误" + +msgid "False if migration fails because the compatibility plug-in is enabled." +msgstr "如果移植失败是因为启用了兼容插件,则错误" + +msgid "SELinux User" +msgstr "SELinux用户" + +msgid "HBAC Rule" +msgstr "HBAC规则" + +msgid "HBAC Rule that defines the users, groups and hostgroups" +msgstr "HBAC规则定义了用户,用户组和主机组" + +msgid "Create a new SELinux User Map." +msgstr "创建一个新的SELinux用户映射。" + +msgid "Add target hosts and hostgroups to an SELinux User Map rule." +msgstr "向SELinux用户映射规则中添加目标主机和主机组。" + +msgid "Add users and groups to an SELinux User Map rule." +msgstr "向SELinux用户映射规则中添加用户和用户组。" + +msgid "Delete a SELinux User Map." +msgstr "删除一个SELinux用户映射。" + +msgid "Disable an SELinux User Map rule." +msgstr "禁用一个SELinux用户映射规则。" + +msgid "Enable an SELinux User Map rule." +msgstr "启用一个SELinux用户映射规则。" + +msgid "Search for SELinux User Maps." +msgstr "查找SELinux用户映射。" + +msgid "Modify a SELinux User Map." +msgstr "修改一个SELinux用户映射。" + +msgid "Remove target hosts and hostgroups from an SELinux User Map rule." +msgstr "从一个SELinux用户映射规则中移除目标主机和主机组。" + +msgid "Remove users and groups from an SELinux User Map rule." +msgstr "向SELinux用户映射规则中移除用户和用户组。" + +msgid "Display the properties of a SELinux User Map rule." +msgstr "显示一个SELinux用户映射规则的属性。" + +msgid "Sudo Command Group" +msgstr "Sudo命令组" + +msgid "Group description" +msgstr "组描述" + +msgid "Commands" +msgstr "命令" + +msgid "Sudo Command Groups" +msgstr "Sudo命令组" + +msgid "Member Sudo commands" +msgstr "成员Sudo命令" + +msgid "Create new Sudo Command Group." +msgstr "创建新的Sudo命令组。" + +msgid "Add members to Sudo Command Group." +msgstr "向Sudo命令组中添加成员。" + +msgid "Delete Sudo Command Group." +msgstr "删除Sudo命令组。" + +msgid "Search for Sudo Command Groups." +msgstr "查找Sudo命令组。" + +msgid "" +"Results should contain primary key attribute only (\"sudocmdgroup-name\")" +msgstr "结果应该只包括主键属性(\"sudocmdgroup-name\")" + +msgid "Modify Sudo Command Group." +msgstr "修改Sudo命令组。" + +msgid "Remove members from Sudo Command Group." +msgstr "从Sudo命令组中移除成员。" + +msgid "Display Sudo Command Group." +msgstr "显示Sudo命令组。" + +msgid "Account disabled" +msgstr "禁用账户" msgid "Preserved user" msgstr "备用用户" +msgid "Add a new user." +msgstr "添加一个新用户。" + +msgid "Don't create user private group" +msgstr "不创建用户私有组" + msgid "Add one or more certificates to the user entry" msgstr "向用户条目中添加一个或多个证书" +msgid "Add a manager to the user entry" +msgstr "向一个用户条目中添加一个管理员" + +msgid "Delete a user." +msgstr "删除一个用户。" + +msgid "Disable a user account." +msgstr "禁用一个用户账户。" + +msgid "Enable a user account." +msgstr "启用一个用户账户。" + +msgid "Search for users." +msgstr "查找用户。" + +msgid "Self" +msgstr "自己" + +msgid "Display user record for current Kerberos principal" +msgstr "显示当前Kerberos主体的用户记录" + +msgid "Search for users with these member of groups." +msgstr "查找包含这些组成员的用户。" + +msgid "Search for users without these member of groups." +msgstr "查找不包含这些组成员的用户。" + +msgid "Search for users with these member of netgroups." +msgstr "查找包含这些网络组成员的用户。" + +msgid "Search for users without these member of netgroups." +msgstr "查找不包含这些网络组成员的用户。" + +msgid "Search for users with these member of roles." +msgstr "查找包含这些角色成员的用户。" + +msgid "Search for users without these member of roles." +msgstr "查找不包含这些角色成员的用户。" + +msgid "Search for users with these member of HBAC rules." +msgstr "查找包含这些HBAC规则成员的用户。" + +msgid "Search for users without these member of HBAC rules." +msgstr "查找不包含这些HBAC规则成员的用户。" + +msgid "Search for users with these member of sudo rules." +msgstr "查找包含这些sudo规则成员的用户。" + +msgid "Search for users without these member of sudo rules." +msgstr "查找不包含这些sudo规则成员的用户。" + +msgid "Modify a user." +msgstr "修改一个用户。" + +msgid "Rename the user object" +msgstr "重命名用户对象" + msgid "Remove one or more certificates to the user entry" msgstr "向用户条目中移除一个或多个证书" +msgid "Remove a manager to the user entry" +msgstr "向一个用户条目中移除一个管理员" + +msgid "Display information about a user." +msgstr "显示一个用户信息。" + msgid "Move deleted user into staged area" msgstr "将已删除用户移植到计划区域" msgid "Undelete a delete user account." msgstr "恢复删除用户账户。" +msgid "Segment name" +msgstr "段名称" + +msgid "Left node" +msgstr "左节点" + +msgid "Left replication node - an IPA server" +msgstr "左复制节点-IPA服务器" + +msgid "Right node" +msgstr "右节点" + +msgid "Right replication node - an IPA server" +msgstr "右复制节点-IPA服务器" + +msgid "Connectivity" +msgstr "连接" + +msgid "" +"A space separated list of attributes which are removed from replication " +"updates." +msgstr "从复制更新中删除的以空格分隔的属性列表。" + +msgid "Attributes to replicate" +msgstr "待复制属性" + +msgid "Attributes for total update" +msgstr "所有更新的属性" + +msgid "Session timeout" +msgstr "会话超时" + +msgid "" +"Number of seconds outbound LDAP operations waits for a response from the " +"remote replica before timing out and failing" +msgstr "在超时和失败前LDAP操作从远程复制服务器等待回应的用去的秒数" + +msgid "Replication agreement enabled" +msgstr "启用复制协议" + +msgid "Suffix name" +msgstr "后缀名称" + +msgid "Managed LDAP suffix DN" +msgstr "已管理的LDAP后缀DN" + +msgid "Add a new segment." +msgstr "添加一个新段。" + +msgid "Delete a segment." +msgstr "删除一个段。" + +msgid "Search for topology segments." +msgstr "查找拓扑段。" + +msgid "Modify a segment." +msgstr "修改一个段。" + +msgid "" +"Request a full re-initialization of the node retrieving data from the other " +"node." +msgstr "请求一个完整的从另一个节点检索数据的节点重初始化。" + +msgid "Initialize left node" +msgstr "左节点初始化" + +msgid "Initialize right node" +msgstr "右节点初始化" + +msgid "Display a segment." +msgstr "显示一个段。" + +msgid "Add a new topology suffix to be managed." +msgstr "添加一个新的拓扑后缀到管理中。" + +msgid "Delete a topology suffix." +msgstr "删除一个拓扑后缀。" + +msgid "Search for topology suffixes." +msgstr "查找拓扑后缀。" + +msgid "Modify a topology suffix." +msgstr "修改一个拓扑后缀。" + +msgid "Show managed suffix." +msgstr "显示已管理的后缀。" + +msgid "Automount key name." +msgstr "自动挂载键名。" + +msgid "Mount information" +msgstr "挂载信息" + +msgid "description" +msgstr "描述" + +msgid "Automount location name." +msgstr "自动挂载位置名。" + +msgid "Map" +msgstr "映射" + +msgid "Automount map name." +msgstr "自动挂载映射名。" + +msgid "Create a new automount key." +msgstr "创建一个新的自动挂载键。" + +msgid "Delete an automount key." +msgstr "删除一个自动挂载键。" + +msgid "Search for an automount key." +msgstr "查找一个自动挂载键。" + +msgid "Modify an automount key." +msgstr "修改一个自动挂载键。" + +msgid "New mount information" +msgstr "新的挂载信息" + +msgid "Rename the automount key object" +msgstr "重命名自动挂载键对象" + +msgid "Display an automount key." +msgstr "显示一个自动挂载键。" + +msgid "Create a new automount location." +msgstr "创建一个新的自动挂载位置。" + +msgid "Delete an automount location." +msgstr "删除一个自动挂载位置。" + +msgid "Search for an automount location." +msgstr "查找一个自动挂载位置。" + +msgid "Results should contain primary key attribute only (\"location\")" +msgstr "结果应该只包括主键属性(\"location\")" + +msgid "Display an automount location." +msgstr "显示一个自动挂载位置。" + +msgid "Generate automount files for a specific location." +msgstr "在一特定位置生成自动挂载文件。" + +msgid "Create a new automount map." +msgstr "创建一个新的自动挂载映射。" + +msgid "Create a new indirect mount point." +msgstr "创建一个新的间接挂载点。" + +msgid "Mount point" +msgstr "挂载点" + +msgid "Parent map" +msgstr "父映射" + +msgid "Name of parent automount map (default: auto.master)." +msgstr "父自动挂载映射名(默认:auto.master)。" + +msgid "Delete an automount map." +msgstr "删除一个自动挂载映射。" + +msgid "Search for an automount map." +msgstr "查找一个自动挂载映射。" + +msgid "Results should contain primary key attribute only (\"map\")" +msgstr "结果应该只包括主键属性(\"map\")" + +msgid "Modify an automount map." +msgstr "修改一个自动挂载映射。" + +msgid "Display an automount map." +msgstr "显示一个自动挂载映射。" + +msgid "Nested Methods to execute" +msgstr "以嵌套的方法来执行" + +msgid "Vault name" +msgstr "库名称" + +msgid "Vault description" +msgstr "库描述" + +msgid "Vault type" +msgstr "库类型" + +msgid "Salt" +msgstr "盐值" + +msgid "Vault salt" +msgstr "库盐值" + +msgid "Public key" +msgstr "公钥" + +msgid "Vault public key" +msgstr "库公钥" + +msgid "Owner users" +msgstr "所有者用户" + +msgid "Owner groups" +msgstr "所有者用户组" + +msgid "Owner services" +msgstr "所有者服务" + +msgid "Vault service" +msgstr "库服务" + +msgid "Shared vault" +msgstr "共享库" + +msgid "Vault user" +msgstr "共享用户" + +msgid "Service name of the service vault" +msgstr "服务库的服务名" + +msgid "Username of the user vault" +msgstr "用户库的用户名" + +msgid "Add members to a vault." +msgstr "向一个库中添加成员。" + +msgid "Add owners to a vault." +msgstr "向一个库中添加所有者。" + +msgid "owner user" +msgstr "所有者用户" + +msgid "owner group" +msgstr "所有者用户组" + +msgid "owner service" +msgstr "所有者服务" + +msgid "Owners that could not be added" +msgstr "不能被添加的所有者" + +msgid "Number of owners added" +msgstr "已添加的所有者数" + +msgid "Vault data encrypted with session key" +msgstr "库数据用会话密钥加密" + +msgid "Nonce" +msgstr "临时的" + +msgid "Delete a vault." +msgstr "删除一个库。" + +msgid "Search for vaults." +msgstr "查找库。" + +msgid "List all service vaults" +msgstr "所有服务库列表" + +msgid "List all user vaults" +msgstr "所有用户库列表" + +msgid "Remove members from a vault." +msgstr "从一个库中移除成员。" + +msgid "Remove owners from a vault." +msgstr "从一个库中移除所有者。" + +msgid "Owners that could not be removed" +msgstr "不能被移除的所有者" + +msgid "Number of owners removed" +msgstr "待移除的所有者数" + +msgid "Display information about a vault." +msgstr "显示一个库信息。" + +msgid "Show vault configuration." +msgstr "显示库配置。" + +msgid "Add owners to a vault container." +msgstr "向一个库容器中添加所有者。" + +msgid "Delete a vault container." +msgstr "删除一个库容器。" + +msgid "Remove owners from a vault container." +msgstr "从一个库容器中移除所有者。" + +msgid "Display information about a vault container." +msgstr "显示一个库容器信息。" + +msgid "Domain NetBIOS name" +msgstr "域NetBIOS名" + +msgid "Domain Security Identifier" +msgstr "域安全标识符" + +msgid "SID blacklist incoming" +msgstr "进来的SID黑名单" + +msgid "SID blacklist outgoing" +msgstr "出去的SID黑名单" + +msgid "Security Identifier" +msgstr "安全标识符" + +msgid "NetBIOS name" +msgstr "NetBIOS名称" + +msgid "Domain GUID" +msgstr "域GUID" + +msgid "Fallback primary group" +msgstr "回退主要的组" + +msgid "Domain name" +msgstr "域名" + +msgid "Trusted domain partner" +msgstr "信任域合作伙伴" + +msgid "Determine whether ipa-adtrust-install has been run on this system" +msgstr "确定是否在该系统上运行ipa-adtrust-install" + +msgid "" +"Determine whether Schema Compatibility plugin is configured to serve trusted " +"domain users and groups" +msgstr "确定是否将模式兼容插件配置成服务器信任域用户和用户组" + +msgid "Trust type (ad for Active Directory, default)" +msgstr "信任类型(活动目录,默认)" + +msgid "Active Directory domain administrator" +msgstr "活动目录域管理员" + +msgid "Active Directory domain administrator's password" +msgstr "活动目录域管理员密码" + +msgid "Domain controller for the Active Directory domain (optional)" +msgstr "活动目录域的域控制器(可选的)" + +msgid "First Posix ID of the range reserved for the trusted domain" +msgstr "信任域范围的第一个Posix ID" + +msgid "Size of the ID range reserved for the trusted domain" +msgstr "信任域ID范围的大小" + +msgid "" +"Type of trusted domain ID range, one of ipa-ad-trust-posix, ipa-ad-trust" +msgstr "信任域ID范围的类型,是ipa-ad-trust-posix和ipa-ad-trust中的一个" + +msgid "Two-way trust" +msgstr "双向信任" + +msgid "" +"Establish bi-directional trust. By default trust is inbound one-way only." +msgstr "建立双向信任。默认信任仅是单项的。" + +msgid "Delete a trust." +msgstr "删除一个信任。" + +msgid "Refresh list of the domains associated with the trust" +msgstr "刷新与信任相关的域列表" + +msgid "Search for trusts." +msgstr "查找信任。" + +msgid "Results should contain primary key attribute only (\"realm\")" +msgstr "结果应该只包括主键属性(\"realm\")" + +msgid "Resolve security identifiers of users and groups in trusted domains" +msgstr "在信任域中重新解析用户和用户组的安全标识符" + +msgid "Security Identifiers (SIDs)" +msgstr "安全标识符(SIDs)" + +msgid "Display information about a trust." +msgstr "显示信任信息。" + +msgid "Modify global trust configuration." +msgstr "修改全局信任配置。" + +msgid "Show global trust configuration." +msgstr "显示全局信任配置。" + +msgid "Allow access from the trusted domain" +msgstr "允许访问信任域" + +msgid "Remove information about the domain associated with the trust." +msgstr "移除与信任相关的域信息。" + +msgid "Disable use of IPA resources by the domain of the trust" +msgstr "禁止使用信任域中的IPA资源" + +msgid "Allow use of IPA resources by the domain of the trust" +msgstr "允许使用信任域中的IPA资源" + +msgid "Search domains of the trust" +msgstr "查找信任域" + +msgid "Results should contain primary key attribute only (\"domain\")" +msgstr "结果应该只包括主键属性(\"domain\")" + +msgid "Modify trustdomain of the trust" +msgstr "修改信任的信任域" + +msgid "Checks if any of the servers has the CA service enabled." +msgstr "检查是否有任何服务器启用了CA服务。" + +msgid "Search for existing certificates." +msgstr "查找已存在的证书。" + +msgid "Subject" +msgstr "主题" + +msgid "Reason" +msgstr "原因" + +msgid "Reason for revoking the certificate (0-10)" +msgstr "撤消证书的原因(0-10)" + +msgid "minimum serial number" +msgstr "最小序列号" + +msgid "maximum serial number" +msgstr "最大序列号" + +msgid "match the common name exactly" +msgstr "完全匹配常用名" + +msgid "Maximum number of certs returned" +msgstr "返回的最大证书数" + +msgid "Serial number" +msgstr "序列号" + +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +msgstr "十进制序列号或者以0x为前缀的十六进制序列号" + +msgid "Submit a certificate signing request." +msgstr "提交一个证书签名请求。" + +msgid "Principal for this certificate (e.g. HTTP/test.example.com)" +msgstr "该证书的主体(例如:HTTP/test.example.com)" + +msgid "automatically add the principal if it doesn't exist" +msgstr "若主体不存在,则自动添加" + +msgid "Certificate Profile to use" +msgstr "待使用的证书配置文件" + +msgid "Revoke a certificate." +msgstr "撤销证书。" + +msgid "Retrieve an existing certificate." +msgstr "检索一个已存在的证书。" + +msgid "Output filename" +msgstr "输出文件名" + +msgid "File to store the certificate in." +msgstr "存储证书文件。" + +msgid "Check the status of a certificate signing request." +msgstr "检查证书签名请求的状态。" + +msgid "Request id" +msgstr "请求号" + +msgid "Ping a remote server." +msgstr "Ping一台远程服务器。" + +msgid "GID (use this option to set it manually)" +msgstr "GID(使用该选项来手动设置它)" + +msgid "Indirect Member users" +msgstr "间接成员用户" + +msgid "Indirect Member groups" +msgstr "间接成员组" + +msgid "Create a new group." +msgstr "创建一个新组。" + +msgid "Create as a non-POSIX group" +msgstr "创建一个非POSIX组" + +msgid "Allow adding external non-IPA members from trusted domains" +msgstr "允许从信任域中添加额外的非IPA成员" + +msgid "Add members to a group." +msgstr "向一个组中添加成员。" + +msgid "External member" +msgstr "额外的成员" + msgid "Members of a trusted domain in DOM\\name or name@domain form" msgstr "信任域的成员是“DOM\\名称”或“名称@域名”格式" +msgid "Delete group." +msgstr "删除组。" + +msgid "Search for groups." +msgstr "查找组。" + +msgid "search for private groups" +msgstr "查找私有组" + msgid "search for POSIX groups" msgstr "查找POSIX组" @@ -5250,302 +3966,95 @@ msgstr "查找组,该组在信任域中支持额外的非IPA成员" msgid "search for non-POSIX groups" msgstr "查找非POSIX组" -msgid "Add domain" -msgstr "添加域" +msgid "Results should contain primary key attribute only (\"group-name\")" +msgstr "结果应该只包括主键属性(\"group-name\")" -msgid "Delete domain" -msgstr "删除域" +msgid "Search for groups with these member users." +msgstr "查找包含这些成员用户的组。" -msgid "Modify realm domains." -msgstr "修改realm域。" +msgid "Search for groups without these member users." +msgstr "查找不包含这些成员用户的组。" -msgid "Force adding domain even if not in DNS" -msgstr "即使域在DNS中不存在,也强制添加它" +msgid "Search for groups with these member groups." +msgstr "查找包含这些成员用户组的组。" -msgid "Display the list of realm domains." -msgstr "显示realm域列表。" +msgid "Search for groups without these member groups." +msgstr "查找不包含这些成员用户组的组。" -msgid "OTP" -msgstr "OTP" +msgid "Search for groups with these member of groups." +msgstr "查找包含这些组成员的组。" -msgid "One Time Password" -msgstr "一次性密码" +msgid "Search for groups without these member of groups." +msgstr "查找不包含这些组成员的组。" -msgid "Server name" -msgstr "服务名称" +msgid "Search for groups with these member of netgroups." +msgstr "查找包含这些网络组成员的组。" -msgid "IPA server hostname" -msgstr "IPA服务主机名" +msgid "Search for groups without these member of netgroups." +msgstr "查找不包含这些网络组成员的组。" -msgid "Managed suffix" -msgstr "管理的后缀" +msgid "Search for groups with these member of roles." +msgstr "查找包含这些角色成员的组。" -msgid "Min domain level" -msgstr "最低域级别" +msgid "Search for groups without these member of roles." +msgstr "查找不包含这些角色成员的组。" -msgid "Minimum domain level" -msgstr "最低域级别" +msgid "Search for groups with these member of HBAC rules." +msgstr "查找包含这些HBAC规则成员的组。" -msgid "Max domain level" -msgstr "最高域级别" +msgid "Search for groups without these member of HBAC rules." +msgstr "查找不包含这些HBAC规则成员的组。" -msgid "Maximum domain level" -msgstr "最高域级别" +msgid "Search for groups with these member of sudo rules." +msgstr "查找包含这些sudo规则成员的组。" -msgid "Delete IPA server." -msgstr "删除IPA服务器。" +msgid "Search for groups without these member of sudo rules." +msgstr "查找不包含这些sudo规则成员的组。" -msgid "Search for IPA servers." -msgstr "查找IPA服务器。" +msgid "Modify a group." +msgstr "修改一个组。" -msgid "Show IPA server." -msgstr "显示IPA服务器。" +msgid "change to a POSIX group" +msgstr "改变一个POSIX组" -msgid "RADIUS proxy server name" -msgstr "RADIUS代理服务器名称" +msgid "change to support external non-IPA members from trusted domains" +msgstr "改变以便从信任域中支持额外的非IPA成员" -msgid "A description of this RADIUS proxy server" -msgstr "该RADIUS代理服务器的描述" +msgid "Rename the group object" +msgstr "重命名组对象" -msgid "Server" -msgstr "服务器" +msgid "Remove members from a group." +msgstr "从一个组中移除成员。" -msgid "The hostname or IP (with or without port)" -msgstr "主机名或IP(有或没有端口)" +msgid "Display information about a named group." +msgstr "显示指定组信息。" -msgid "Secret" -msgstr "密码" +msgid "Sudo Command" +msgstr "Sudo命令" -msgid "The secret used to encrypt data" -msgstr "密码用于数据加密" +msgid "A description of this command" +msgstr "该命令的一个描述" -msgid "Timeout" -msgstr "超时" +msgid "Create new Sudo Command." +msgstr "创建新的Sudo命令。" -msgid "The total timeout across all retries (in seconds)" -msgstr "所有重试总超时(秒)" +msgid "Delete Sudo Command." +msgstr "删除Sudo命令。" -msgid "Retries" -msgstr "重试" +msgid "Search for Sudo Commands." +msgstr "查找Sudo命令。" -msgid "The number of times to retry authentication" -msgstr "重试认证的次数" +msgid "Results should contain primary key attribute only (\"command\")" +msgstr "结果应该只包括主键属性(\"command\")" -msgid "User attribute" -msgstr "用户属性" +msgid "Modify Sudo Command." +msgstr "修改Sudo命令。" -msgid "The username attribute on the user object" -msgstr "用户对象的用户名属性" +msgid "Display Sudo Command." +msgstr "显示Sudo命令。" -msgid "Add a new RADIUS proxy server." -msgstr "添加一个新的RADIUS代理服务器。" - -msgid "Delete a RADIUS proxy server." -msgstr "删除一个RADIUS代理服务器。" - -msgid "Search for RADIUS proxy servers." -msgstr "查找RADIUS代理服务器。" - -msgid "Modify a RADIUS proxy server." -msgstr "修改一个RADIUS代理服务器。" - -msgid "Rename the RADIUS proxy server object" -msgstr "重命名RADIUS代理服务器对象" - -msgid "Display information about a RADIUS proxy server." -msgstr "显示一个RADIUS代理服务器信息。" - -msgid "Profile ID" -msgstr "配置文件ID" - -msgid "Profile ID for referring to this profile" -msgstr "指向该配置文件的配置文件ID" - -msgid "Profile description" -msgstr "配置文件描述" - -msgid "Brief description of this profile" -msgstr "该配置文件的简要描述" - -msgid "Store issued certificates" -msgstr "存储已发布证书" - -msgid "Whether to store certs issued using this profile" -msgstr "是否存储使用该配置文件的证书发布" - -msgid "Delete a Certificate Profile." -msgstr "删除一个证书配置文件。" - -msgid "Search for Certificate Profiles." -msgstr "查找证书配置文件。" - -msgid "Results should contain primary key attribute only (\"id\")" -msgstr "结果应该只包括主键属性(\"id\")" - -msgid "Import a Certificate Profile." -msgstr "导入一个证书配置文件。" - -msgid "Filename of a raw profile. The XML format is not supported." -msgstr "原始配置文件的文件名。不支持XML格式。" - -msgid "Modify Certificate Profile configuration." -msgstr "修改证书配置文件配置。" - -msgid "File containing profile configuration" -msgstr "文件包含配置文件配置" - -msgid "Display the properties of a Certificate Profile." -msgstr "显示一个证书配置文件的属性。" - -msgid "Write profile configuration to file" -msgstr "将配置文件配置写进文件" - -msgid "privileges" -msgstr "特权" - -msgid "TOTP authentication Window" -msgstr "TOTP认证窗口" - -msgid "TOTP authentication time variance (seconds)" -msgstr "TOTP认证时间差异(秒)" - -msgid "TOTP Synchronization Window" -msgstr "TOTP同步窗口" - -msgid "TOTP synchronization time variance (seconds)" -msgstr "TOTP同步时间差异(秒)" - -msgid "HOTP Authentication Window" -msgstr "HOTP认证窗口" - -msgid "HOTP Synchronization Window" -msgstr "HOTP同步窗口" - -msgid "Modify OTP configuration options." -msgstr "修改OTP配置选项。" - -msgid "Show the current OTP configuration." -msgstr "显示当前OTP配置。" - -msgid "Unique ID" -msgstr "唯一ID" - -msgid "Type of the token" -msgstr "令牌类型" - -msgid "Token description (informational only)" -msgstr "令牌描述(只是信息)" - -msgid "Owner" -msgstr "所有者" - -msgid "Assigned user of the token (default: self)" -msgstr "分配用户令牌(默认:自己)" - -msgid "Assigned manager of the token (default: self)" -msgstr "分配管理者令牌(默认:自己)" - -msgid "Disabled" -msgstr "禁用" - -msgid "Mark the token as disabled (default: false)" -msgstr "令牌标记为禁用(默认:错误的)" - -msgid "Validity start" -msgstr "有效期开始于" - -msgid "First date/time the token can be used" -msgstr "令牌被第一次使用" - -msgid "Validity end" -msgstr "有效期结束于" - -msgid "Last date/time the token can be used" -msgstr "令牌被最后一次使用" - -msgid "Vendor" -msgstr "供应商" - -msgid "Token vendor name (informational only)" -msgstr "令牌供应商名称(只是信息)" - -msgid "Model" -msgstr "模式" - -msgid "Token model (informational only)" -msgstr "令牌模式(只是信息)" - -msgid "Serial" -msgstr "序列号" - -msgid "Token serial (informational only)" -msgstr "令牌序列号(只是信息)" - -msgid "Token secret (Base32; default: random)" -msgstr "令牌密码(Base32;默认:随机)" - -msgid "Token hash algorithm" -msgstr "令牌散列算法" - -msgid "Digits" -msgstr "数字" - -msgid "Number of digits each token code will have" -msgstr "每个令牌码拥有的数字个数" - -msgid "Clock offset" -msgstr "时钟偏移量" - -msgid "TOTP token / FreeIPA server time difference" -msgstr "TOTP令牌/FreeIPA服务器时差" - -msgid "Clock interval" -msgstr "时间间隔" - -msgid "Length of TOTP token code validity" -msgstr "TOTP令牌码有效长度" - -msgid "Counter" -msgstr "计数器" - -msgid "Initial counter for the HOTP token" -msgstr "HOTP令牌初始计数器" - -msgid "Add a new OTP token." -msgstr "添加一个新的OTP令牌。" - -msgid "(deprecated)" -msgstr "(弃用)" - -msgid "Do not display QR code" -msgstr "不显示二维码" - -msgid "Add users that can manage this token." -msgstr "添加可以管理该令牌的用户" - -msgid "Delete an OTP token." -msgstr "删除一个OTP令牌。" - -msgid "Search for OTP token." -msgstr "查找OTP令牌。" - -msgid "Modify a OTP token." -msgstr "修改一个OTP令牌。" - -msgid "Rename the OTP token object" -msgstr "重命名OTP令牌对象" - -msgid "Remove users that can manage this token." -msgstr "移除可以管理该令牌的用户。" - -msgid "Display information about an OTP token." -msgstr "显示一个OTP令牌信息。" - -msgid "netgroups to add" -msgstr "待添加的网络组" - -msgid "netgroups to remove" -msgstr "待移除的网络组" +msgid "Global forwarders" +msgstr "全局转发器" msgid "" "Global forwarders. A custom port can be specified for each forwarder using a " @@ -5554,6 +4063,44 @@ msgstr "" "全局转发器。使用标准格式\"IP_ADDRESS port PORT\"为每个转发器指定一个自定义端" "口" +msgid "Forward policy" +msgstr "转发器策略" + +msgid "" +"Global forwarding policy. Set to \"none\" to disable any configured global " +"forwarders." +msgstr "全局转发器策略。通过设置\"none\"来禁用全局转发器的所有配置。" + +msgid "Allow PTR sync" +msgstr "允许PTR同步" + +msgid "Allow synchronization of forward (A, AAAA) and reverse (PTR) records" +msgstr "允许同步正向(A,AAAA)和反向(PTR)记录" + +msgid "Zone refresh interval" +msgstr "区域刷新间隔" + +msgid "Zone name" +msgstr "区域名" + +msgid "Zone name (FQDN)" +msgstr "区域名(FQDN)" + +msgid "Reverse zone IP network" +msgstr "反向区域IP网络" + +msgid "IP network to create reverse zone name from" +msgstr "IP网络创建反向区域名" + +msgid "Active zone" +msgstr "活跃区" + +msgid "Is zone active?" +msgstr "区域活跃吗?" + +msgid "Zone forwarders" +msgstr "区域转发器" + msgid "" "Per-zone forwarders. A custom port can be specified for each forwarder using " "a standard format \"IP_ADDRESS port PORT\"" @@ -5561,30 +4108,123 @@ msgstr "" "Per-zone转发器。使用标准格式\"IP_ADDRESS port PORT\"为每个转发器指定一个自定" "义端口" +msgid "Record name" +msgstr "记录名" + +msgid "Time to live" +msgstr "存活时间" + +msgid "Records" +msgstr "记录" + +msgid "Record type" +msgstr "记录类型" + +msgid "Record data" +msgstr "记录数据" + +msgid "A record" +msgstr "一条记录" + msgid "Raw A records" msgstr "原始的记录" +msgid "A IP Address" +msgstr "IP地址" + +msgid "Create reverse record for this IP Address" +msgstr "为该IP地址创建反向记录" + +msgid "AAAA record" +msgstr "AAAA记录" + msgid "Raw AAAA records" msgstr "原始的AAAA记录" +msgid "AAAA IP Address" +msgstr "AAAA IP地址" + +msgid "A6 record" +msgstr "A6记录" + msgid "Raw A6 records" msgstr "原始的A6记录" +msgid "A6 Record data" +msgstr "A6记录数据" + +msgid "AFSDB record" +msgstr "AFSDB记录" + msgid "Raw AFSDB records" msgstr "原始的AFSDB记录" +msgid "AFSDB Subtype" +msgstr "AFSDB子类型" + +msgid "Subtype" +msgstr "子类型" + +msgid "AFSDB Hostname" +msgstr "AFSDB主机名" + +msgid "Hostname" +msgstr "主机名" + +msgid "APL record" +msgstr "APL记录" + msgid "Raw APL records" msgstr "原始的APL记录" +msgid "CERT record" +msgstr "CERT记录" + msgid "Raw CERT records" msgstr "原始的CERT记录" +msgid "CERT Certificate Type" +msgstr "CERT证书类型" + +msgid "Certificate Type" +msgstr "证书类型" + +msgid "CERT Key Tag" +msgstr "CERT键标记" + +msgid "Key Tag" +msgstr "键标记" + +msgid "CERT Algorithm" +msgstr "CERT算法" + +msgid "CERT Certificate/CRL" +msgstr "CERT证书/CRL" + +msgid "Certificate/CRL" +msgstr "证书/CRL" + +msgid "CNAME record" +msgstr "CNAME记录" + msgid "Raw CNAME records" msgstr "原始的CNAME记录" +msgid "CNAME Hostname" +msgstr "CNAME主机名" + +msgid "A hostname which this alias hostname points to" +msgstr "一个别名主机名指向主机名" + +msgid "DHCID record" +msgstr "DHCID记录" + msgid "Raw DHCID records" msgstr "原始的DHCID记录" +msgid "DLV record" +msgstr "DLV记录" + msgid "Raw DLV records" msgstr "原始的DLV记录" @@ -5597,63 +4237,302 @@ msgstr "DLV算法" msgid "DLV Digest Type" msgstr "DLV摘要类型" +msgid "Digest Type" +msgstr "摘要类型" + msgid "DLV Digest" msgstr "DLV摘要" +msgid "Digest" +msgstr "摘要" + +msgid "DNAME record" +msgstr "DNAME记录" + msgid "Raw DNAME records" msgstr "原始的DNAME记录" +msgid "DNAME Target" +msgstr "DNAME目标" + +msgid "Target" +msgstr "目标" + +msgid "DS record" +msgstr "DS记录" + msgid "Raw DS records" msgstr "原始的DS记录" +msgid "DS Key Tag" +msgstr "DS键标记" + +msgid "DS Algorithm" +msgstr "DS算法" + +msgid "DS Digest Type" +msgstr "DS摘要类型" + +msgid "DS Digest" +msgstr "DS摘要" + +msgid "HIP record" +msgstr "HIP记录" + msgid "Raw HIP records" msgstr "原始的HIP记录" +msgid "IPSECKEY record" +msgstr "IPSECKEY记录" + msgid "Raw IPSECKEY records" msgstr "原始的IPSECKEY记录" +msgid "KEY record" +msgstr "KEY记录" + msgid "Raw KEY records" msgstr "原始的KEY记录" +msgid "KX record" +msgstr "KX记录" + msgid "Raw KX records" msgstr "原始的KX记录" +msgid "KX Preference" +msgstr "KX优先权" + +msgid "Preference given to this exchanger. Lower values are more preferred" +msgstr "该交换器的优先级。值越低优先级越高" + +msgid "KX Exchanger" +msgstr "KX交换器" + +msgid "A host willing to act as a key exchanger" +msgstr "主机愿意充当关键交换器" + +msgid "LOC record" +msgstr "LOC记录" + msgid "Raw LOC records" msgstr "原始的LOC记录" +msgid "LOC Minutes Latitude" +msgstr "LOC分钟纬度" + +msgid "Minutes Latitude" +msgstr "分钟纬度" + +msgid "LOC Seconds Latitude" +msgstr "LOC秒纬度" + +msgid "Seconds Latitude" +msgstr "秒纬度" + +msgid "LOC Direction Latitude" +msgstr "LOC纬度方向" + +msgid "Direction Latitude" +msgstr "纬度方向" + +msgid "LOC Minutes Longitude" +msgstr "LOC分钟经度" + +msgid "Minutes Longitude" +msgstr "分钟经度" + +msgid "LOC Seconds Longitude" +msgstr "LOC秒经度" + +msgid "Seconds Longitude" +msgstr "秒经度" + +msgid "LOC Direction Longitude" +msgstr "LOC经度方向" + +msgid "Direction Longitude" +msgstr "经度方向" + +msgid "LOC Altitude" +msgstr "LOC高度" + +msgid "Altitude" +msgstr "高度" + +msgid "LOC Size" +msgstr "LOC大小" + +msgid "Size" +msgstr "大小" + +msgid "LOC Horizontal Precision" +msgstr "LOC水平精度" + +msgid "Horizontal Precision" +msgstr "水平精度" + +msgid "LOC Vertical Precision" +msgstr "LOC垂直精度" + +msgid "Vertical Precision" +msgstr "垂直精度" + +msgid "MX record" +msgstr "MX记录" + msgid "Raw MX records" msgstr "原始的MX记录" +msgid "MX Preference" +msgstr "MX优先权" + +msgid "MX Exchanger" +msgstr "MX交换器" + +msgid "A host willing to act as a mail exchanger" +msgstr "主机愿意充当邮件交换器" + +msgid "NAPTR record" +msgstr "NAPTR记录" + msgid "Raw NAPTR records" msgstr "原始的NAPTR记录" +msgid "NAPTR Order" +msgstr "NAPTR规则" + +msgid "Order" +msgstr "规则" + +msgid "NAPTR Preference" +msgstr "NAPTR优先权" + +msgid "Preference" +msgstr "优先权" + +msgid "NAPTR Flags" +msgstr "NAPTR标记" + +msgid "Flags" +msgstr "标记" + +msgid "NAPTR Service" +msgstr "NAPTR服务" + +msgid "NAPTR Regular Expression" +msgstr "NAPTR正则表达式" + +msgid "Regular Expression" +msgstr "正则表达式" + +msgid "NAPTR Replacement" +msgstr "NAPTR替换" + +msgid "Replacement" +msgstr "替换" + +msgid "NS record" +msgstr "NS记录" + msgid "Raw NS records" msgstr "原始的NS记录" +msgid "NS Hostname" +msgstr "NS主机名" + +msgid "NSEC record" +msgstr "NSEC记录" + msgid "Raw NSEC records" msgstr "原始的NSEC记录" +msgid "PTR record" +msgstr "PTR记录" + msgid "Raw PTR records" msgstr "原始的PTR记录" +msgid "PTR Hostname" +msgstr "PTR主机名" + +msgid "The hostname this reverse record points to" +msgstr "反向记录指向的主机名" + +msgid "RRSIG record" +msgstr "RRSIG记录" + msgid "Raw RRSIG records" msgstr "原始的RRSIG记录" +msgid "RP record" +msgstr "RP记录" + msgid "Raw RP records" msgstr "原始的RP记录" +msgid "SIG record" +msgstr "SIG记录" + msgid "Raw SIG records" msgstr "原始的SIG记录" +msgid "SPF record" +msgstr "SPF记录" + msgid "Raw SPF records" msgstr "原始的SPF记录" +msgid "SRV record" +msgstr "SRV记录" + msgid "Raw SRV records" msgstr "原始的SRV记录" +msgid "SRV Priority" +msgstr "SRV优先级" + +msgid "SRV Weight" +msgstr "SRV重量" + +msgid "Weight" +msgstr "重量" + +msgid "SRV Port" +msgstr "SRV端口" + +msgid "Port" +msgstr "端口" + +msgid "SRV Target" +msgstr "SRV目标" + +msgid "" +"The domain name of the target host or '.' if the service is decidedly not " +"available at this domain" +msgstr "目标主机的域名或是'.'如果服务在该域中明显不存在" + +msgid "SSHFP record" +msgstr "SSHFP记录" + msgid "Raw SSHFP records" msgstr "原始的SSHFP记录" +msgid "SSHFP Algorithm" +msgstr "SSHFP算法" + +msgid "SSHFP Fingerprint Type" +msgstr "SSHFP指纹类型" + +msgid "Fingerprint Type" +msgstr "指纹类型" + +msgid "SSHFP Fingerprint" +msgstr "SSHFP指纹" + +msgid "Fingerprint" +msgstr "指纹" + msgid "TLSA record" msgstr "TLSA记录" @@ -5684,25 +4563,124 @@ msgstr "TLSA证书关联数据" msgid "Certificate Association Data" msgstr "证书关联数据" +msgid "TXT record" +msgstr "TXT记录" + msgid "Raw TXT records" msgstr "原始的TXT记录" +msgid "TXT Text Data" +msgstr "TXT文本数据" + +msgid "Text Data" +msgstr "文本数据" + +msgid "Authoritative nameserver" +msgstr "权威的命名服务器" + +msgid "Authoritative nameserver domain name" +msgstr "权威的命名服务器域名" + +msgid "Administrator e-mail address" +msgstr "管理员电子邮件地址" + +msgid "SOA serial" +msgstr "SOA序列" + +msgid "SOA record serial number" +msgstr "SOA记录编号" + +msgid "SOA refresh" +msgstr "SOA刷新" + +msgid "SOA record refresh time" +msgstr "SOA记录刷新时间" + +msgid "SOA retry" +msgstr "SOA重试" + +msgid "SOA record retry time" +msgstr "SOA记录重试时间" + +msgid "SOA expire" +msgstr "SOA到期" + +msgid "SOA record expire time" +msgstr "SOA记录到期时间" + +msgid "SOA minimum" +msgstr "SOA最低值" + +msgid "How long should negative responses be cached" +msgstr "负面响应应该被缓存多久" + msgid "Time to live for records at zone apex" msgstr "区域定点记录的生成时间" +msgid "BIND update policy" +msgstr "BIND更新策略" + +msgid "Dynamic update" +msgstr "动态更新" + +msgid "Allow dynamic updates." +msgstr "允许动态更新" + +msgid "Allow query" +msgstr "允许查询" + +msgid "" +"Semicolon separated list of IP addresses or networks which are allowed to " +"issue queries" +msgstr "分号分割的IP地址或网络列表允许被查询" + +msgid "Allow transfer" +msgstr "允许传输" + +msgid "" +"Semicolon separated list of IP addresses or networks which are allowed to " +"transfer the zone" +msgstr "分号分割的IP地址或网络列表允许被传输" + +msgid "" +"Allow synchronization of forward (A, AAAA) and reverse (PTR) records in the " +"zone" +msgstr "允许在区域中同步正向(A,AAAA)和反向(PTR)记录" + msgid "Allow in-line DNSSEC signing" msgstr "允许嵌套DNSSEC签名" msgid "Allow inline DNSSEC signing of records in the zone" msgstr "允许在区域中嵌套DNSSEC记录签名" +msgid "NSEC3PARAM record" +msgstr "NSEC3PARAM记录" + msgid "" "NSEC3PARAM record for zone in format: hash_algorithm flags iterations salt" msgstr "NSEC3PARAM区记录格式:散列算法 标记 迭代 盐值" +msgid "Checks if any of the servers has the DNS service enabled." +msgstr "检查是否有任何服务器启用了DNS服务。" + +msgid "Resolve a host name in DNS. (Deprecated)" +msgstr "在DNS中解析主机名。(不赞成)" + +msgid "Hostname (FQDN)" +msgstr "主机名(FQDN)" + +msgid "Modify global DNS configuration." +msgstr "修改全局DNS配置。" + +msgid "Show the current global DNS configuration." +msgstr "显示当前全局DNS配置。" + msgid "Create new DNS forward zone." msgstr "创建新的DNS正向区。" +msgid "Force DNS zone creation even if it will overlap with an existing zone." +msgstr "强制创建DNS区域,即使它会覆盖一个已有区域。" + msgid "Add a permission for per-forward zone access delegation." msgstr "为每个正向区访问授权添加一个权限。" @@ -5730,286 +4708,108 @@ msgstr "为每个正向区访问授权移除一个权限。" msgid "Display information about a DNS forward zone." msgstr "显示DNS正向区信息。" -msgid "HBAC service groups to add" -msgstr "待添加的HBAC服务组" +msgid "Add new DNS resource record." +msgstr "添加新的DNS资源记录。" -msgid "HBAC service groups to remove" -msgstr "待移除的HBAC服务组" +msgid "force NS record creation even if its hostname is not in DNS" +msgstr "即使NS记录不在DNS中,也强制创建它。" -msgid "Allowed Target" -msgstr "允许的目标" +msgid "Structured" +msgstr "有条理的" -msgid "Create a new service delegation rule." -msgstr "创建一个新的服务授权规则。" +msgid "Parse all raw DNS records and return them in a structured way" +msgstr "解析所有的原始DNS记录并以有条理的方式返回它们" -msgid "Add member to a named service delegation rule." -msgstr "向一个命名服务授权规则中添加成员。" +msgid "Delete DNS resource record." +msgstr "删除DNS资源记录。" -msgid "member principal" -msgstr "成员主体" +msgid "Delete all associated records" +msgstr "删除所有相关记录" -msgid "principal to add" -msgstr "待添加主体" +msgid "Delete DNS record entry." +msgstr "删除DNS记录条目。" -msgid "Add target to a named service delegation rule." -msgstr "向一个命名服务授权规则中添加目标。" +msgid "Search for DNS resources." +msgstr "查找DNS资源。" -msgid "member service delegation target" -msgstr "成员服务授权目标" +msgid "Modify a DNS resource record." +msgstr "修改DNS资源记录。" -msgid "service delegation targets to add" -msgstr "待添加的服务授权目标" +msgid "Rename the DNS resource record object" +msgstr "重命名DNS资源记录对象" -msgid "Delete service delegation." -msgstr "删除服务授权。" +msgid "Display DNS resource." +msgstr "显示DNS资源。" -msgid "Search for service delegations rule." -msgstr "查找服务授权规则。" - -msgid "Results should contain primary key attribute only (\"delegation-name\")" -msgstr "结果应该只包括主键属性(\"delegation-name\")" - -msgid "Remove member from a named service delegation rule." -msgstr "从一个命名服务授权规则中移除成员。" - -msgid "principal to remove" -msgstr "待移除的主体" - -msgid "Remove target from a named service delegation rule." -msgstr "从一个命名服务授权规则中移除目标。" - -msgid "service delegation targets to remove" -msgstr "待移除的服务授权目标" - -msgid "Display information about a named service delegation rule." -msgstr "显示一个命名服务授权规则信息。" - -msgid "Create a new service delegation target." -msgstr "创建一个新的服务授权目标。" - -msgid "Add member to a named service delegation target." -msgstr "向一个命名服务授权规则中添加成员。" - -msgid "Delete service delegation target." -msgstr "删除服务授权目标。" - -msgid "Search for service delegation target." -msgstr "查找服务授权目标。" - -msgid "Remove member from a named service delegation target." -msgstr "从一个命名服务授权目标中移除成员。" - -msgid "Display information about a named service delegation target." -msgstr "显示一个命名服务授权目标信息。" - -msgid "roles to add" -msgstr "待添加角色" - -msgid "permissions" -msgstr "权限" - -msgid "roles to remove" -msgstr "待移除角色" - -msgid "Checks if any of the servers has the CA service enabled." -msgstr "检查是否有任何服务器启用了CA服务。" - -msgid "Search for existing certificates." -msgstr "查找已存在的证书。" - -msgid "Subject" -msgstr "主题" - -msgid "minimum serial number" -msgstr "最小序列号" - -msgid "maximum serial number" -msgstr "最大序列号" - -msgid "match the common name exactly" -msgstr "完全匹配常用名" - -msgid "Maximum number of certs returned" -msgstr "返回的最大证书数" - -msgid "Principal for this certificate (e.g. HTTP/test.example.com)" -msgstr "该证书的主体(例如:HTTP/test.example.com)" - -msgid "Certificate Profile to use" -msgstr "待使用的证书配置文件" - -msgid "Domain name" -msgstr "域名" - -msgid "Trusted domain partner" -msgstr "信任域合作伙伴" - -msgid "Determine whether ipa-adtrust-install has been run on this system" -msgstr "确定是否在该系统上运行ipa-adtrust-install" - -msgid "" -"Determine whether Schema Compatibility plugin is configured to serve trusted " -"domain users and groups" -msgstr "确定是否将模式兼容插件配置成服务器信任域用户和用户组" - -msgid "Active Directory domain administrator's password" -msgstr "活动目录域管理员密码" - -msgid "" -"Type of trusted domain ID range, one of ipa-ad-trust-posix, ipa-ad-trust" -msgstr "信任域ID范围的类型,是ipa-ad-trust-posix和ipa-ad-trust中的一个" - -msgid "Two-way trust" -msgstr "双向信任" - -msgid "" -"Establish bi-directional trust. By default trust is inbound one-way only." -msgstr "建立双向信任。默认信任仅是单项的。" - -msgid "Refresh list of the domains associated with the trust" -msgstr "刷新与信任相关的域列表" - -msgid "Resolve security identifiers of users and groups in trusted domains" -msgstr "在信任域中重新解析用户和用户组的安全标识符" - -msgid "Security Identifiers (SIDs)" -msgstr "安全标识符(SIDs)" - -msgid "Allow access from the trusted domain" -msgstr "允许访问信任域" - -msgid "Remove information about the domain associated with the trust." -msgstr "移除与信任相关的域信息。" - -msgid "Disable use of IPA resources by the domain of the trust" -msgstr "禁止使用信任域中的IPA资源" - -msgid "Allow use of IPA resources by the domain of the trust" -msgstr "允许使用信任域中的IPA资源" - -msgid "Search domains of the trust" -msgstr "查找信任域" - -msgid "Results should contain primary key attribute only (\"domain\")" -msgstr "结果应该只包括主键属性(\"domain\")" - -msgid "Modify trustdomain of the trust" -msgstr "修改信任的信任域" - -msgid "Maximum amount of time (seconds) for a search (-1 or 0 is unlimited)" -msgstr "最大的时间(秒)搜索(-1或0表示无限制)" - -msgid "Maximum number of records to search (-1 or 0 is unlimited)" -msgstr "最大数量的搜索记录(-1或0表示无限制)" - -msgid "Default user authentication types" -msgstr "默认用户认证类型" - -msgid "Default types of supported user authentication" -msgstr "默认支持用户认证的类型" - -msgid "Activate a stage user." -msgstr "激活一个计划用户。" - -msgid "Create Stage user in from a delete user" -msgstr "从一个删除用户中创建计划用户" - -msgid "Delete a stage user." -msgstr "删除一个计划用户。" - -msgid "Search for stage users." -msgstr "查找计划用户。" - -msgid "Search for stage users with these member of groups." -msgstr "查找包含这些组成员的计划用户。" - -msgid "Search for stage users without these member of groups." -msgstr "查找不包含这些组成员的计划用户。" - -msgid "Search for stage users with these member of netgroups." -msgstr "查找包含这些网络组成员的计划用户。" - -msgid "Search for stage users without these member of netgroups." -msgstr "查找不包含这些网络组成员的计划用户。" - -msgid "Search for stage users with these member of roles." -msgstr "查找包含这些角色成员的计划用户。" - -msgid "Search for stage users without these member of roles." -msgstr "查找不包含这些角色成员的计划用户。" - -msgid "Search for stage users with these member of HBAC rules." -msgstr "查找包含这些HBAC规则成员的计划用户。" - -msgid "Search for stage users without these member of HBAC rules." -msgstr "查找不包含这些HBAC规则成员的计划用户。" - -msgid "Search for stage users with these member of sudo rules." -msgstr "查找包含这些sudo规则成员的计划用户。" - -msgid "Search for stage users without these member of sudo rules." -msgstr "查找不包含这些sudo规则成员的计划用户。" - -msgid "Modify a stage user." -msgstr "修改一个计划用户。" - -msgid "Rename the stage user object" -msgstr "重命名计划用户对象" - -msgid "Display information about a stage user." -msgstr "显示一个计划用户信息。" - -msgid "Managed LDAP suffix DN" -msgstr "已管理的LDAP后缀DN" - -msgid "Search for topology suffixes." -msgstr "查找拓扑后缀。" - -msgid "Add a manager to the user entry" -msgstr "向一个用户条目中添加一个管理员" - -msgid "Remove a manager to the user entry" -msgstr "向一个用户条目中移除一个管理员" - -msgid "Managed suffixes" -msgstr "已管理的后缀" - -msgid "Check connection to remote IPA server." -msgstr "检测和远程IPA服务器的连接。" - -msgid "Remote server name" -msgstr "远程服务器名称" - -msgid "Remote IPA server hostname" -msgstr "远程IPA服务器主机名" - -msgid "suffix" -msgstr "后缀" - -msgid "Search for servers with these managed suffixes." -msgstr "查找包含这些管理后缀的服务器。" - -msgid "Search for servers without these managed suffixes." -msgstr "查找不包含这些管理后缀的服务器。" - -msgid "Resolve a host name in DNS. (Deprecated)" -msgstr "在DNS中解析主机名。(不赞成)" - -msgid "Hostname (FQDN)" -msgstr "主机名(FQDN)" - -msgid "Force DNS zone creation even if it will overlap with an existing zone." -msgstr "强制创建DNS区域,即使它会覆盖一个已有区域。" +msgid "Create new DNS zone (SOA record)." +msgstr "创建新的DNS区域(SOA记录)。" msgid "" "Force DNS zone creation even if nameserver is not resolvable. (Deprecated)" msgstr "即使命名服务器无法解析,也强制创建DNS区域。(不赞成)" -msgid "Add a manager to the stage user entry" -msgstr "向一个计划用户条目中添加一个管理员" +msgid "Force DNS zone creation even if nameserver is not resolvable." +msgstr "即使命名服务器无法解析,也强制创建DNS区域。" -msgid "Remove a manager to the stage user entry" -msgstr "从一个计划用户条目中移除一个管理员" +msgid "Add a permission for per-zone access delegation." +msgstr "为每个区访问授权添加一个权限。" + +msgid "Delete DNS zone (SOA record)." +msgstr "删除DNS区域(SOA记录)。" + +msgid "Disable DNS Zone." +msgstr "禁用DNS区域。" + +msgid "Enable DNS Zone." +msgstr "启用DNS区域。" + +msgid "Search for DNS zones (SOA records)." +msgstr "查找DNS区域(SOA记录)。" + +msgid "Forward zones only" +msgstr "仅正向区域" + +msgid "Search for forward zones only" +msgstr "仅查找正向区域" + +msgid "Modify DNS zone (SOA record)." +msgstr "修改DNS区域(SOA记录)。" + +msgid "Force nameserver change even if nameserver not in DNS" +msgstr "即使命名服务器不在DNS中,也强制改变它" + +msgid "Remove a permission for per-zone access delegation." +msgstr "为每个区访问授权移除一个权限。" + +msgid "Display information about a DNS zone (SOA record)." +msgstr "显示DNS区域(SOA记录)信息。" + +msgid "Set a user's password." +msgstr "设置一个用户的密码。" + +msgid "New Password" +msgstr "新密码" + +msgid "Current Password" +msgstr "当前密码" + +msgid "OTP" +msgstr "OTP" + +msgid "One Time Password" +msgstr "一次性密码" + +msgid "Managed suffix" +msgstr "管理的后缀" + +msgid "LDAP suffix to be managed" +msgstr "待管理的LDAP后缀" + +msgid "Resolve a host name in DNS." +msgstr "在DNS中解析主机名。" + +msgid "Maximum number of entries returned" +msgstr "返回的最大条目数" msgid "" "Applies ID View to specified hosts or current members of specified " @@ -6018,24 +4818,492 @@ msgstr "" "应用ID视图到指定的主机或指定主机组的当前成员。如果该主机已有其他ID视图,则覆" "盖它。" +msgid "Modify ID range." +msgstr "修改ID范围。" + +msgid "" +"Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" +msgstr "最大的时间(秒)搜索(>0,或-1表示无限制)" + +msgid "Maximum number of records to search (-1 is unlimited)" +msgstr "最大数量的搜索记录(-1表示无限制)" + +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +msgstr "该证书服务主体(例如:HTTP/test.example.com)" + +msgid "DNSKEY record" +msgstr "DNSKEY记录" + msgid "Raw DNSKEY records" msgstr "原始的DNSKEY记录" +msgid "NSEC3 record" +msgstr "NSEC3记录" + msgid "Raw NSEC3 records" msgstr "原始的NSEC3记录" +msgid "TA record" +msgstr "TA记录" + msgid "Raw TA records" msgstr "原始的TA记录" +msgid "TKEY record" +msgstr "TKEY记录" + msgid "Raw TKEY records" msgstr "原始的TKEY记录" +msgid "TSIG record" +msgstr "TSIG记录" + msgid "Raw TSIG records" msgstr "原始的TSIG记录" -#, python-format -msgid "Certificate(s) stored in file '%(file)s'" -msgstr "证书存储在文件'%(file)s'中" +msgid "comma-separated list of sudo commands to add" +msgstr "待添加的以逗号分隔的sudo命令列表" + +msgid "comma-separated list of sudo command groups to add" +msgstr "待添加的以逗号分隔的sudo命令组列表" + +msgid "comma-separated list of hosts to add" +msgstr "待添加的以逗号分隔的主机列表" + +msgid "comma-separated list of host groups to add" +msgstr "待添加的以逗号分隔的主机组列表" + +msgid "comma-separated list of groups to add" +msgstr "待添加的以逗号分隔的用户组列表" + +msgid "comma-separated list of users to add" +msgstr "待添加的以逗号分隔的用户列表" + +msgid "comma-separated list of sudo commands to remove" +msgstr "待移除的以逗号分隔的sudo命令列表" + +msgid "comma-separated list of sudo command groups to remove" +msgstr "待移除的以逗号分隔的sudo命令组列表" + +msgid "comma-separated list of hosts to remove" +msgstr "待移除的以逗号分隔的主机列表" + +msgid "comma-separated list of host groups to remove" +msgstr "待移除的以逗号分隔的主机组列表" + +msgid "comma-separated list of groups to remove" +msgstr "待移除的以逗号分隔的用户组列表" + +msgid "comma-separated list of users to remove" +msgstr "待移除的以逗号分隔的用户列表" + +msgid "comma-separated list of privileges" +msgstr "以逗号分隔的权限列表" + +msgid "comma-separated list of netgroups to add" +msgstr "待添加的以逗号分隔的网络组列表" + +msgid "comma-separated list of netgroups to remove" +msgstr "待移除的以逗号分隔的网络组列表" + +msgid "" +"Comma-separated list of permissions to grant (read, write). Default is write." +msgstr "以逗号分隔的授权列表(读,写)。默认是写。" + +msgid "Comma-separated list of attributes" +msgstr "以逗号分隔的属性列表" + +msgid "Quantity" +msgstr "数量" + +msgid "Search for entitlement accounts." +msgstr "查找权利账户。" + +msgid "Retrieve the entitlement certs." +msgstr "检索权利证书。" + +msgid "Import an entitlement certificate." +msgstr "导入一个权利证书。" + +msgid "Enrollment UUID" +msgstr "注册UUID" + +msgid "Username" +msgstr "用户名" + +msgid "Enrollment UUID (not implemented)" +msgstr "注册UUID(没有实现)" + +msgid "Registration password" +msgstr "注册密码" + +msgid "Display current entitlements." +msgstr "显示当前权利。" + +msgid "Re-sync the local entitlement cache with the entitlement server." +msgstr "重新同步在权利服务器上的本地权利缓存。" + +msgid "" +"Override default list of supported PAC types. Use 'NONE' to disable PAC " +"support for this service" +msgstr "覆盖默认支持的PAC类型列表。使用'NONE'来禁用该服务的PAC支持" + +msgid "Source host category" +msgstr "源主机类别" + +msgid "Source host category the rule applies to" +msgstr "规则应用的源主机类别" + +msgid "Source Hosts" +msgstr "源主机" + +msgid "Source Host Groups" +msgstr "源主机组" + +msgid "comma-separated list of HBAC services to add" +msgstr "待添加的以逗号分隔的HBAC服务列表" + +msgid "comma-separated list of HBAC service groups to add" +msgstr "待添加的以逗号分隔的HBAC服务组列表" + +msgid "Add source hosts and hostgroups from a HBAC rule." +msgstr "从一个HBAC规则中添加源主机和主机组。" + +msgid "comma-separated list of HBAC services to remove" +msgstr "待移除的以逗号分隔的HBAC服务列表" + +msgid "comma-separated list of HBAC service groups to remove" +msgstr "待移除的以逗号分隔的HBAC服务组列表" + +msgid "Remove source hosts and hostgroups from an HBAC rule." +msgstr "从一个HBAC规则中移除源主机和主机组。" + +msgid "comma-separated list of roles to add" +msgstr "待添加的以逗号分隔的角色列表" + +msgid "comma-separated list of permissions" +msgstr "以逗号分隔的权限列表" + +msgid "comma-separated list of roles to remove" +msgstr "待移除的以逗号分隔的角色列表" + +msgid "" +"Comma-separated list of permissions to grant (read, write, add, delete, all)" +msgstr "以逗号分隔的授权列表(读,写,添加,删除,全部)" + +msgid "" +"Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" +msgstr "IPA对象类型(用户,用户组,主机,主机组,服务,网络组,dns)" + +msgid "Target members of a group" +msgstr "一个组的目标成员" + +msgid "User group to apply permissions to" +msgstr "待应用权限的用户组" + +msgid "comma-separated list of privileges to add" +msgstr "待添加的以逗号分隔的权限列表" + +msgid "Add a system permission without an ACI" +msgstr "添加一个没有ACI的系统权限" + +msgid "Permission type" +msgstr "权限类型" + +msgid "comma-separated list of privileges to remove" +msgstr "待移除的以逗号分隔的权限列表" + +msgid "" +"comma-separated list of permissions to grant(read, write, add, delete, all)" +msgstr "以逗号分隔的授权列表(读,写,添加,删除,全部)" + +msgid "Source host" +msgstr "源主机" + +msgid "" +"Comma-separated list of objectclasses used to search for user entries in DS" +msgstr "在DS中用于查找用户条目以逗号分隔的对象类" + +msgid "" +"Comma-separated list of objectclasses used to search for group entries in DS" +msgstr "在DS中用于查找用户组条目以逗号分隔的对象类" + +msgid "" +"Comma-separated list of objectclasses to be ignored for user entries in DS" +msgstr "在DS中被用户条目所忽略以逗号分隔的对象类" + +msgid "Comma-separated list of attributes to be ignored for user entries in DS" +msgstr "在DS中被用户条目所忽略以逗号分隔的属性" + +msgid "" +"Comma-separated list of objectclasses to be ignored for group entries in DS" +msgstr "在DS中被组条目所忽略以逗号分隔的对象类" + +msgid "" +"Comma-separated list of attributes to be ignored for group entries in DS" +msgstr "在DS中被组条目所忽略以逗号分隔的属性" + +msgid "comma-separated list of groups to exclude from migration" +msgstr "允许迁移的以逗号分隔的用户组列表" + +msgid "comma-separated list of users to exclude from migration" +msgstr "允许迁移的以逗号分隔的用户列表" + +msgid "GECOS field" +msgstr "GECOS字段" + +msgid "Active directory domain administrator's password" +msgstr "活动目录域管理员密码" + +msgid "" +"comma-separated list of members of a trusted domain in DOM\\name or " +"name@domain form" +msgstr "以逗号分隔的信任域成员列表是“DOM\\名称”或“名称@域名”格式" + +msgid "" +"A list of global forwarders. A custom port can be specified for each " +"forwarder using a standard format \"IP_ADDRESS port PORT\"" +msgstr "" +"一个全局转发器列表。使用标准格式\"IP_ADDRESS port PORT\"为每个转发器指定一个" +"自定义端口" + +msgid "An interval between regular polls of the name server for new DNS zones" +msgstr "命名服务器新的DNS区域定期调查的间隔" + +msgid "DNS class" +msgstr "DNS类" + +msgid "Comma-separated list of raw A records" +msgstr "以逗号分隔的原始A记录列表" + +msgid "Comma-separated list of raw AAAA records" +msgstr "以逗号分隔的原始AAAA记录列表" + +msgid "Comma-separated list of raw A6 records" +msgstr "以逗号分隔的原始A6记录列表" + +msgid "Comma-separated list of raw AFSDB records" +msgstr "以逗号分隔的原始AFSDB记录列表" + +msgid "Comma-separated list of raw APL records" +msgstr "以逗号分隔的原始APL记录列表" + +msgid "Comma-separated list of raw CERT records" +msgstr "以逗号分隔的原始CERT记录列表" + +msgid "Comma-separated list of raw CNAME records" +msgstr "以逗号分隔的原始CNAME记录列表" + +msgid "Comma-separated list of raw DHCID records" +msgstr "以逗号分隔的原始DHCID记录列表" + +msgid "Comma-separated list of raw DLV records" +msgstr "以逗号分隔的原始DLV记录列表" + +msgid "Comma-separated list of raw DNAME records" +msgstr "以逗号分隔的原始DNAME记录列表" + +msgid "Comma-separated list of raw DNSKEY records" +msgstr "以逗号分隔的原始DNSKEY记录列表" + +msgid "Comma-separated list of raw DS records" +msgstr "以逗号分隔的原始DS记录列表" + +msgid "Comma-separated list of raw HIP records" +msgstr "以逗号分隔的原始HIP记录列表" + +msgid "Comma-separated list of raw IPSECKEY records" +msgstr "以逗号分隔的原始IPSECKEY记录列表" + +msgid "Comma-separated list of raw KEY records" +msgstr "以逗号分隔的原始KEY记录列表" + +msgid "KEY Flags" +msgstr "KEY标记" + +msgid "KEY Protocol" +msgstr "KEY协议" + +msgid "Protocol" +msgstr "协议" + +msgid "KEY Algorithm" +msgstr "KEY算法" + +msgid "KEY Public Key" +msgstr "KEY公钥" + +msgid "Public Key" +msgstr "公钥" + +msgid "Comma-separated list of raw KX records" +msgstr "以逗号分隔的原始KX记录列表" + +msgid "Comma-separated list of raw LOC records" +msgstr "以逗号分隔的原始LOC记录列表" + +msgid "Comma-separated list of raw MX records" +msgstr "以逗号分隔的原始MX记录列表" + +msgid "Comma-separated list of raw NAPTR records" +msgstr "以逗号分隔的原始NAPTR记录列表" + +msgid "Comma-separated list of raw NS records" +msgstr "以逗号分隔的原始NS记录列表" + +msgid "Comma-separated list of raw NSEC records" +msgstr "以逗号分隔的原始NSEC记录列表" + +msgid "NSEC Next Domain Name" +msgstr "NSEC下一个域名" + +msgid "Next Domain Name" +msgstr "下一个域名" + +msgid "NSEC Type Map" +msgstr "NSEC类型映射" + +msgid "Type Map" +msgstr "类型映射" + +msgid "Comma-separated list of raw NSEC3 records" +msgstr "以逗号分隔的原始NSEC3记录列表" + +msgid "Comma-separated list of raw NSEC3PARAM records" +msgstr "以逗号分隔的原始NSEC3PARAM记录列表" + +msgid "Comma-separated list of raw PTR records" +msgstr "以逗号分隔的原始PTR记录列表" + +msgid "Comma-separated list of raw RRSIG records" +msgstr "以逗号分隔的原始RRSIG记录列表" + +msgid "RRSIG Type Covered" +msgstr "RRSIG类型覆盖" + +msgid "Type Covered" +msgstr "类型覆盖" + +msgid "RRSIG Algorithm" +msgstr "RRSIG算法" + +msgid "RRSIG Labels" +msgstr "RRSIG分类" + +msgid "Labels" +msgstr "分类" + +msgid "RRSIG Original TTL" +msgstr "RRSIG原始TTL" + +msgid "Original TTL" +msgstr "原始TTL" + +msgid "RRSIG Signature Expiration" +msgstr "RRSIG签名过期" + +msgid "Signature Expiration" +msgstr "签名过期" + +msgid "RRSIG Signature Inception" +msgstr "RRSIG签名开端" + +msgid "Signature Inception" +msgstr "签名开端" + +msgid "RRSIG Key Tag" +msgstr "RRSIG密钥标记" + +msgid "RRSIG Signer's Name" +msgstr "RRSIG签名者的名字" + +msgid "Signer's Name" +msgstr "签名者的名字" + +msgid "RRSIG Signature" +msgstr "RRSIG签名" + +msgid "Signature" +msgstr "签名" + +msgid "Comma-separated list of raw RP records" +msgstr "以逗号分隔的原始RP记录列表" + +msgid "Comma-separated list of raw SIG records" +msgstr "以逗号分隔的原始SIG记录列表" + +msgid "SIG Type Covered" +msgstr "SIG类型覆盖" + +msgid "SIG Algorithm" +msgstr "SIG算法" + +msgid "SIG Labels" +msgstr "SIG分类" + +msgid "SIG Original TTL" +msgstr "SIG原始TTL" + +msgid "SIG Signature Expiration" +msgstr "SIG签名过期" + +msgid "SIG Signature Inception" +msgstr "SIG签名开端" + +msgid "SIG Key Tag" +msgstr "SIG密钥标记" + +msgid "SIG Signer's Name" +msgstr "SIG签名者的名字" + +msgid "SIG Signature" +msgstr "SIG签名" + +msgid "Comma-separated list of raw SPF records" +msgstr "以逗号分隔的原始SPF记录列表" + +msgid "Comma-separated list of raw SRV records" +msgstr "以逗号分隔的原始SRV记录列表" + +msgid "Comma-separated list of raw SSHFP records" +msgstr "以逗号分隔的原始SSHFP记录列表" + +msgid "Comma-separated list of raw TA records" +msgstr "以逗号分隔的原始TA记录列表" + +msgid "Comma-separated list of raw TKEY records" +msgstr "以逗号分隔的原始TKEY记录列表" + +msgid "Comma-separated list of raw TSIG records" +msgstr "以逗号分隔的原始TSIG记录列表" + +msgid "Comma-separated list of raw TXT records" +msgstr "以逗号分隔的原始TXT记录列表" + +msgid "SOA time to live" +msgstr "SOA存活时间" + +msgid "SOA record time to live" +msgstr "SOA记录存活时间" + +msgid "SOA class" +msgstr "SOA类" + +msgid "SOA record class" +msgstr "SOA记录类" + +msgid "" +"A list of per-zone forwarders. A custom port can be specified for each " +"forwarder using a standard format \"IP_ADDRESS port PORT\"" +msgstr "" +"一个Per-zone转发器列表。使用标准格式\"IP_ADDRESS port PORT\"为每个转发器指定" +"一个自定义端口" + +msgid "Add forward record for nameserver located in the created zone" +msgstr "为位于创建区域的命名服务器添加正向记录" + +msgid "The principal for this request doesn't exist." +msgstr "该请求的主题不存在。" #, python-format msgid "Enabled Sudo Rule \"%s\"" @@ -6053,9 +5321,52 @@ msgstr "已添加\"%(option)s\"到Sudo规则\"%(rule)s\"" msgid "Removed option \"%(option)s\" from Sudo Rule \"%(rule)s\"" msgstr "已从Sudo规则\"%(rule)s\"中移除\"%(option)s\"" +#, python-format +msgid "Certificate(s) stored in file '%(file)s'" +msgstr "证书存储在文件'%(file)s'中" + msgid "cannot specify both raw certificate and file" msgstr "不能同时指定原始证书和文件" +#, python-format +msgid "Profile configuration stored in file '%(file)s'" +msgstr "配置储存在文件'%(file)s'中" + +msgid "" +"Unable to display QR code using the configured output encoding. Please use " +"the token URI to configure your OTP device" +msgstr "使用输出编码配置无法显示二维码。请使用令牌URI来配置你的OTP设备" + +msgid "" +"QR code width is greater than that of the output tty. Please resize your " +"terminal." +msgstr "二维码的宽度大于tty的输出。请调整你的终端。" + +msgid "Synchronize an OTP token." +msgstr "同步一个OTP令牌。" + +msgid "User ID" +msgstr "用户ID" + +msgid "First Code" +msgstr "第一个码" + +msgid "Second Code" +msgstr "第二个码" + +msgid "Token ID" +msgstr "令牌ID" + +msgid "Failed to add" +msgstr "添加失败" + +msgid "Servers details:" +msgstr "服务器详细信息:" + +#, python-format +msgid "Removing %(servers)s from replication topology, please wait..." +msgstr "从复制拓扑中移除%(servers)s,请稍后..." + msgid "" "Migration mode is disabled.\n" "Use 'ipa config-mod --enable-migration=TRUE' to enable it." @@ -6074,6 +5385,90 @@ msgstr "" "植过的用户在能使用他们的Kerberos账号之前需要登录https://your.domain/ipa/" "migration/。" +msgid "Delete a user, keeping the entry available for future use" +msgstr "删除一个用户,让这个用户可供将来使用" + +msgid "Delete a user" +msgstr "删除一个用户" + +#, python-format +msgid "Replication topology of suffix \"%(suffix)s\" is in order." +msgstr "复制拓扑的后缀\"%(suffix)s\"是按序的。" + +#, python-format +msgid "Replication topology of suffix \"%(suffix)s\" contains errors." +msgstr "复制拓扑的后缀\"%(suffix)s\"包含错误。" + +msgid "Topology is disconnected" +msgstr "拓扑已断开连接" + +#, python-format +msgid "Server %(srv)s can't contact servers: %(replicas)s" +msgstr "服务器%(srv)s不能连接服务器: %(replicas)s" + +msgid "maps not connected to /etc/auto.master:" +msgstr "映射未连接到/etc/auto.master:" + +msgid "Import automount files for a specific location." +msgstr "在一特定位置导入自动挂载文件。" + +msgid "Master file" +msgstr "主文件" + +msgid "Automount master file." +msgstr "自动挂载主文件。" + +msgid "" +"Continuous operation mode. Errors are reported but the process continues." +msgstr "连续操作模式。报告错误但是这个过程仍在继续。" + +#, python-format +msgid "File %(file)s not found" +msgstr "没有找到文件 %(file)s " + +#, python-format +msgid "key %(key)s already exists" +msgstr "键 %(key)s 已存在" + +#, python-format +msgid "map %(map)s already exists" +msgstr "映射 %(map)s 已存在" + +msgid "Imported maps:" +msgstr "已导入的映射:" + +#, python-format +msgid "Added %(map)s" +msgstr "已添加 %(map)s" + +msgid "Imported keys:" +msgstr "已导入的键:" + +#, python-format +msgid "Added %(src)s to %(dst)s" +msgstr "已添加 %(src)s 到 %(dst)s" + +msgid "Ignored keys:" +msgstr "已忽略的键:" + +#, python-format +msgid "Ignored %(src)s to %(dst)s" +msgstr "已忽略 %(src)s 到 %(dst)s" + +msgid "Duplicate maps skipped:" +msgstr "已忽略重复的映射:" + +#, python-format +msgid "Skipped %(map)s" +msgstr "已忽略 %(map)s" + +msgid "Duplicate keys skipped:" +msgstr "已忽略重复的键:" + +#, python-format +msgid "Skipped %(key)s" +msgstr "已忽略 %(key)s" + #, python-format msgid "Cannot read file '%(filename)s': %(exc)s" msgstr "不能读取文件'%(filename)s': %(exc)s" @@ -6181,178 +5576,17 @@ msgstr "多次指定私钥" msgid "Missing vault private key" msgstr "缺少库私钥" -msgid "Failed to add" -msgstr "添加失败" +msgid "Unrevoked" +msgstr "未撤销的" -#, python-format -msgid "Replication topology of suffix \"%(suffix)s\" is in order." -msgstr "复制拓扑的后缀\"%(suffix)s\"是按序的。" +msgid "Error" +msgstr "错误" -#, python-format -msgid "Replication topology of suffix \"%(suffix)s\" contains errors." -msgstr "复制拓扑的后缀\"%(suffix)s\"包含错误。" +msgid "Input filename" +msgstr "输入文件名" -msgid "Topology is disconnected" -msgstr "拓扑已断开连接" - -#, python-format -msgid "Server %(srv)s can't contact servers: %(replicas)s" -msgstr "服务器%(srv)s不能连接服务器: %(replicas)s" - -msgid "maps not connected to /etc/auto.master:" -msgstr "映射未连接到/etc/auto.master:" - -msgid "Import automount files for a specific location." -msgstr "在一特定位置导入自动挂载文件。" - -msgid "Master file" -msgstr "主文件" - -msgid "Automount master file." -msgstr "自动挂载主文件。" - -msgid "" -"Continuous operation mode. Errors are reported but the process continues." -msgstr "连续操作模式。报告错误但是这个过程仍在继续。" - -#, python-format -msgid "File %(file)s not found" -msgstr "没有找到文件 %(file)s " - -#, python-format -msgid "key %(key)s already exists" -msgstr "键 %(key)s 已存在" - -#, python-format -msgid "map %(map)s already exists" -msgstr "映射 %(map)s 已存在" - -msgid "Imported maps:" -msgstr "已导入的映射:" - -#, python-format -msgid "Added %(map)s" -msgstr "已添加 %(map)s" - -msgid "Imported keys:" -msgstr "已导入的键:" - -#, python-format -msgid "Added %(src)s to %(dst)s" -msgstr "已添加 %(src)s 到 %(dst)s" - -msgid "Ignored keys:" -msgstr "已忽略的键:" - -#, python-format -msgid "Ignored %(src)s to %(dst)s" -msgstr "已忽略 %(src)s 到 %(dst)s" - -msgid "Duplicate maps skipped:" -msgstr "已忽略重复的映射:" - -#, python-format -msgid "Skipped %(map)s" -msgstr "已忽略 %(map)s" - -msgid "Duplicate keys skipped:" -msgstr "已忽略重复的键:" - -#, python-format -msgid "Skipped %(key)s" -msgstr "已忽略 %(key)s" - -msgid "" -"\n" -"YubiKey Tokens\n" -msgstr "" -"\n" -"YubiKey令牌\n" - -msgid "" -"\n" -"Manage YubiKey tokens.\n" -msgstr "" -"\n" -"管理YubiKey令牌。\n" - -msgid "" -"\n" -"This code is an extension to the otptoken plugin and provides support for\n" -"reading/writing YubiKey tokens directly.\n" -msgstr "" -"\n" -"这段代码是otp令牌插件的一个扩展,并对读/写YubiKey令牌提供直接的支持。\n" - -msgid "" -"\n" -"EXAMPLES:\n" -msgstr "" -"\n" -"例如:\n" - -msgid "" -"\n" -" Add a new token:\n" -" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" -msgstr "" -"\n" -" 增加一个新的令牌:\n" -" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" - -msgid "Add a new YubiKey OTP token." -msgstr "增加一个新的YubiKey OTP令牌。" - -msgid "YubiKey slot" -msgstr "YubiKey槽" - -msgid "No free YubiKey slot!" -msgstr "没有空闲的YubiKey槽!" - -msgid "The principal for this request doesn't exist." -msgstr "该请求的主题不存在。" - -msgid "Delete a user, keeping the entry available for future use" -msgstr "删除一个用户,让这个用户可供将来使用" - -msgid "Delete a user" -msgstr "删除一个用户" - -#, python-format -msgid "Removing %(servers)s from replication topology, please wait..." -msgstr "从复制拓扑中移除%(servers)s,请稍后..." - -msgid "Servers details:" -msgstr "服务器详细信息:" - -#, python-format -msgid "Profile configuration stored in file '%(file)s'" -msgstr "配置储存在文件'%(file)s'中" - -msgid "" -"Unable to display QR code using the configured output encoding. Please use " -"the token URI to configure your OTP device" -msgstr "使用输出编码配置无法显示二维码。请使用令牌URI来配置你的OTP设备" - -msgid "" -"QR code width is greater than that of the output tty. Please resize your " -"terminal." -msgstr "二维码的宽度大于tty的输出。请调整你的终端。" - -msgid "Synchronize an OTP token." -msgstr "同步一个OTP令牌。" - -msgid "User ID" -msgstr "用户ID" - -msgid "First Code" -msgstr "第一个码" - -msgid "Second Code" -msgstr "第二个码" - -msgid "Token ID" -msgstr "令牌ID" +msgid "File to load the certificate from." +msgstr "从文件加载证书" msgid "Please choose a type of DNS resource record to be added" msgstr "请选择一个待添加的DNS资源记录类型" @@ -6410,85 +5644,84 @@ msgstr "服务器将检查DNS转发器。" msgid "This may take some time, please wait ..." msgstr "这可能需要一些时间,请稍等..." -msgid "Unrevoked" -msgstr "未撤销的" +msgid "" +"\n" +"YubiKey Tokens\n" +msgstr "" +"\n" +"YubiKey令牌\n" -msgid "Error" -msgstr "错误" +msgid "" +"\n" +"Manage YubiKey tokens.\n" +msgstr "" +"\n" +"管理YubiKey令牌。\n" -msgid "Input filename" -msgstr "输入文件名" +msgid "" +"\n" +"This code is an extension to the otptoken plugin and provides support for\n" +"reading/writing YubiKey tokens directly.\n" +msgstr "" +"\n" +"这段代码是otp令牌插件的一个扩展,并对读/写YubiKey令牌提供直接的支持。\n" -msgid "File to load the certificate from." -msgstr "从文件加载证书" +msgid "" +"\n" +"EXAMPLES:\n" +msgstr "" +"\n" +"例如:\n" -msgid "Failed members" -msgstr "失败的成员" +msgid "" +"\n" +" Add a new token:\n" +" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" +msgstr "" +"\n" +" 增加一个新的令牌:\n" +" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" -msgid "Failed source hosts/hostgroups" -msgstr "失败的源主机/主机组" +msgid "Add a new YubiKey OTP token." +msgstr "增加一个新的YubiKey OTP令牌。" -msgid "Failed hosts/hostgroups" -msgstr "失败的主机/主机组" +msgid "YubiKey slot" +msgstr "YubiKey槽" -msgid "Failed users/groups" -msgstr "失败的用户/用户组" - -msgid "Failed service/service groups" -msgstr "失败的服务/服务组" - -msgid "Failed to remove" -msgstr "移除失败" - -msgid "Failed RunAs" -msgstr "作为其他用户运行失败" - -msgid "Failed RunAsGroup" -msgstr "作为其他用户组运行失败" - -msgid "Failed profiles" -msgstr "错误的配置文件" - -msgid "Failed allowed to retrieve keytab" -msgstr "不允许检索keytab" - -msgid "Failed allowed to create keytab" -msgstr "不允许创建keytab" - -msgid "Failed targets" -msgstr "失败的目标" - -msgid "Out of memory\n" -msgstr "内存不足\n" - -msgid "Warning unrecognized encryption type.\n" -msgstr "警告无法识别加密类型。\n" - -msgid "Warning unrecognized salt type.\n" -msgstr "警告无法识别盐值类型。\n" - -msgid "Out of memory!?\n" -msgstr "内存不足!?\n" - -msgid "Enctype comparison failed!\n" -msgstr "加密类型比较失败!\n" - -msgid "Failed to create random key!\n" -msgstr "创建随机密钥失败!\n" - -msgid "Failed to create key!\n" -msgstr "创建密钥失败!\n" - -msgid "Bad or unsupported salt type.\n" -msgstr "错误的或不支持的盐值类型。\n" +msgid "No free YubiKey slot!" +msgstr "没有空闲的YubiKey槽!" #, python-format -msgid "all masters must have %(role)s role enabled" -msgstr "所有的主服务器必须已启用角色%(role)s" +msgid "Unknown option: %(option)s" +msgstr "未知的选项:%(option)s" -#, python-format -msgid "must have %(role)s role enabled" -msgstr "必须已启用角色%(role)s" +msgid "Trusting forest" +msgstr "信任森林" + +msgid "Trusted forest" +msgstr "信任森林" + +msgid "Established and verified" +msgstr "已建立和验证" + +msgid "Waiting for confirmation by remote side" +msgstr "等待远程端的确认" + +msgid "Unknown" +msgstr "未知的" + +msgid "Non-Active Directory domain" +msgstr "非活动目录域" + +msgid "Active Directory domain" +msgstr "活动目录域" + +msgid "RFC4120-compliant Kerberos realm" +msgstr "RFC4120-兼容的Kerberos域" + +msgid "" +"Non-transitive external trust to a domain in another Active Directory forest" +msgstr "不传递外部信任到另一个活动目录森林的域中" msgid "CIFS server denied your credentials" msgstr "CIFS服务器阻止你的凭证" @@ -6604,6 +5837,39 @@ msgstr "" "没有信任信息副本的副本。同时,请检查AD DNS能将%(records)s SRV记录解析到正确的" "IPA服务器上。" +#, python-format +msgid "Unable to communicate with CMS (status %d)" +msgstr "不能与CMS通信(状态%d)" + +#, python-format +msgid "all masters must have %(role)s role enabled" +msgstr "所有的主服务器必须已启用角色%(role)s" + +#, python-format +msgid "must have %(role)s role enabled" +msgstr "必须已启用角色%(role)s" + +msgid "Request must be a dict" +msgstr "请求必须是一个字典" + +msgid "Request is missing \"method\"" +msgstr "请求缺少\"method\"" + +msgid "Request is missing \"params\"" +msgstr "请求缺少\"params\"" + +msgid "params must be a list" +msgstr "参数必须是一个列表" + +msgid "params must contain [args, options]" +msgstr "参数必须包含[args,options]" + +msgid "params[0] (aka args) must be a list" +msgstr "params[0] (aka args)必须是一个列表" + +msgid "params[1] (aka options) must be a dict" +msgstr "params[1] (aka options)必须是一个字典" + #, python-format msgid "" "\n" @@ -6627,6 +5893,1402 @@ msgstr "" msgid "Topology does not allow server %(server)s to replicate with servers:" msgstr "拓扑不允许服务器%(server)s复制服务器:" +msgid "Allowed to Impersonate" +msgstr "允许模仿" + +msgid "Member principals" +msgstr "成员主体" + +msgid "Add target to a named service delegation." +msgstr "添加目标到一个命名服务授权。" + +#, python-format +msgid "member %s" +msgstr "成员%s" + +msgid "Remove member from a named service delegation." +msgstr "从一个命名服务授权中删除成员。" + +msgid "service delegation rule" +msgstr "服务授权规则" + +msgid "service delegation rules" +msgstr "服务授权规则" + +msgid "Service delegation rules" +msgstr "服务授权规则" + +msgid "Service delegation rule" +msgstr "服务授权规则" + +#, python-format +msgid "Added service delegation rule \"%(value)s\"" +msgstr "已添加服务授权规则\"%(value)s\"" + +#, python-format +msgid "Deleted service delegation \"%(value)s\"" +msgstr "已删除服务授权规则\"%(value)s\"" + +msgid "privileged service delegation rule" +msgstr "特权服务授权规则" + +#, python-format +msgid "%(count)d service delegation rule matched" +msgid_plural "%(count)d service delegation rules matched" +msgstr[0] "已匹配%(count)d个服务授权规则" + +msgid "service delegation target" +msgstr "服务授权目标" + +msgid "service delegation targets" +msgstr "服务授权目标" + +msgid "Service delegation targets" +msgstr "服务授权目标" + +msgid "Service delegation target" +msgstr "服务授权目标" + +#, python-format +msgid "Added service delegation target \"%(value)s\"" +msgstr "已添加服务授权目标\"%(value)s\"" + +#, python-format +msgid "Deleted service delegation target \"%(value)s\"" +msgstr "已删除服务授权目标\"%(value)s\"" + +msgid "privileged service delegation target" +msgstr "特权服务授权目标" + +#, python-format +msgid "%(count)d service delegation target matched" +msgid_plural "%(count)d service delegation targets matched" +msgstr[0] "已匹配%(count)d个服务授权目标" + +msgid "" +"\n" +"IPA server roles\n" +msgstr "" +"\n" +"IPA服务器角色\n" + +msgid "" +"\n" +"Get status of roles (DNS server, CA, etc.) provided by IPA masters.\n" +msgstr "" +"\n" +"获取由IPA主服务器提供的角色(DNS服务器,CA等)状态。\n" + +msgid "server role" +msgstr "服务器角色" + +msgid "server roles" +msgstr "服务器角色" + +msgid "IPA Server Roles" +msgstr "IPA服务器角色" + +msgid "IPA Server Role" +msgstr "IPA服务器角色" + +msgid "IPA server role name" +msgstr "IPA服务器角色名" + +msgid "Role status" +msgstr "角色状态" + +msgid "Status of the role" +msgstr "角色状态" + +msgid "Show role status on a server" +msgstr "显示服务器角色状态" + +msgid "Find a server role on a server(s)" +msgstr "在服务器上找到一个服务器角色" + +#, python-format +msgid "%(count)s server role matched" +msgid_plural "%(count)s server roles matched" +msgstr[0] "已匹配%(count)s个服务器角色" + +msgid "roles" +msgstr "角色" + +msgid "IPA role name" +msgstr "IPA角色名" + +msgid "kerberos ticket policy settings" +msgstr "kerberos票据策略设置" + +msgid "Kerberos Ticket Policy" +msgstr "Kerberos票据策略" + +#, python-format +msgid "Ticket policy for %s could not be read" +msgstr "票据策略%s不可读" + +msgid "Default ticket policy could not be read" +msgstr "默认票据策略不可读" + +msgid "ID View" +msgstr "ID视图" + +msgid "system ID View" +msgstr "系统ID视图" + +msgid "ID Views" +msgstr "ID视图" + +msgid "User object overrides" +msgstr "用户对象覆盖" + +msgid "Group object overrides" +msgstr "组对象覆盖" + +msgid "Hosts the view applies to" +msgstr "适用于主机的视图" + +#, python-format +msgid "Added ID View \"%(value)s\"" +msgstr "已添加ID视图\"%(value)s\"" + +#, python-format +msgid "Deleted ID View \"%(value)s\"" +msgstr "已删除ID视图\"%(value)s\"" + +#, python-format +msgid "Modified an ID View \"%(value)s\"" +msgstr "已修改一个ID视图\"%(value)s\"" + +#, python-format +msgid "%(count)d ID View matched" +msgid_plural "%(count)d ID Views matched" +msgstr[0] "已匹配%(count)d个ID视图" + +msgid "Default Trust View cannot be applied on hosts" +msgstr "默认信任视图不能应用于主机上" + +msgid "not found" +msgstr "没有找到" + +msgid "ID View already applied" +msgstr "ID视图已应用" + +msgid "value" +msgstr "值" + +#, python-format +msgid "ID View applied to %i host." +msgstr "ID视图应用于%i主机。" + +#, python-format +msgid "ID View applied to %i hosts." +msgstr "ID视图应用于%i主机。" + +#, python-format +msgid "ID View cleared from %i host." +msgstr "从%i主机中清除ID视图。" + +#, python-format +msgid "ID View cleared from %i hosts." +msgstr "从%i主机中清除ID视图。" + +msgid "" +"You are trying to reference a magic private group which is not allowed to be " +"overridden. Try overriding the GID attribute of the corresponding user " +"instead." +msgstr "" +"你正尝试引用一个不允许覆盖的神奇私有组。而不是尝试覆盖对应用户的GID属性。" + +msgid "IPA object" +msgstr "IPA对象" + +#, python-format +msgid "Anchor '%(anchor)s' could not be resolved." +msgstr "锚'%(anchor)s'不能被解析。" + +msgid "Default Trust View cannot contain IPA users" +msgstr "默认信任视图不能包含IPA用户" + +msgid "Add a new ID override." +msgstr "添加一个新的ID覆盖。" + +#, python-format +msgid "Added ID override \"%(value)s\"" +msgstr "已添加ID覆盖\"%(value)s\"" + +msgid "Delete an ID override." +msgstr "删除一个ID覆盖。" + +#, python-format +msgid "Deleted ID override \"%(value)s\"" +msgstr "已删除ID覆盖\"%(value)s\"" + +msgid "Modify an ID override." +msgstr "修改一个ID覆盖。" + +#, python-format +msgid "Modified an ID override \"%(value)s\"" +msgstr "已修改一个ID覆盖\"%(value)s\"" + +msgid "ID override" +msgstr "ID覆盖" + +msgid "ID overrides cannot be renamed" +msgstr "ID覆盖不能被重命名" + +msgid "Search for an ID override." +msgstr "查找一个ID覆盖。" + +#, python-format +msgid "%(count)d ID override matched" +msgid_plural "%(count)d ID overrides matched" +msgstr[0] "已匹配%(count)d个ID覆盖" + +msgid "Display information about an ID override." +msgstr "显示一个ID覆盖信息。" + +msgid "User ID override" +msgstr "用户ID覆盖" + +msgid "User ID overrides" +msgstr "用户ID覆盖" + +msgid "Base-64 encoded user certificate" +msgstr "Base-64编码的用户证书" + +msgid "Group ID override" +msgstr "组ID覆盖" + +msgid "Group ID overrides" +msgstr "组ID覆盖" + +msgid "Add one or more certificates to the idoverrideuser entry" +msgstr "向id覆盖用户条目中添加一个或多个证书" + +#, python-format +msgid "Added certificates to idoverrideuser \"%(value)s\"" +msgstr "已添加证书到id覆盖用户\"%(value)s\"" + +msgid "Remove one or more certificates to the idoverrideuser entry" +msgstr "从id覆盖用户条目中移除一个或多个证书" + +#, python-format +msgid "Removed certificates from idoverrideuser \"%(value)s\"" +msgstr "已从id覆盖用户\"%(value)s\"中移除证书" + +#, python-format +msgid "Added User ID override \"%(value)s\"" +msgstr "已添加用户ID覆盖\"%(value)s\"" + +#, python-format +msgid "Deleted User ID override \"%(value)s\"" +msgstr "已删除用户ID覆盖\"%(value)s\"" + +#, python-format +msgid "Modified an User ID override \"%(value)s\"" +msgstr "已修改一个用户ID覆盖\"%(value)s\"" + +#, python-format +msgid "%(count)d User ID override matched" +msgid_plural "%(count)d User ID overrides matched" +msgstr[0] "已匹配%(count)d个用户ID覆盖" + +#, python-format +msgid "Added Group ID override \"%(value)s\"" +msgstr "已添加组ID覆盖\"%(value)s\"" + +#, python-format +msgid "Deleted Group ID override \"%(value)s\"" +msgstr "已删除组ID覆盖\"%(value)s\"" + +#, python-format +msgid "Modified an Group ID override \"%(value)s\"" +msgstr "已修改一个组ID覆盖\"%(value)s\"" + +#, python-format +msgid "%(count)d Group ID override matched" +msgid_plural "%(count)d Group ID overrides matched" +msgstr[0] "已匹配%(count)d个组ID覆盖" + +msgid "OTP configuration options" +msgstr "OTP配置选项" + +msgid "OTP Configuration" +msgstr "OTP配置" + +#, python-format +msgid "" +"Insufficient 'write' privilege to the 'krbLastPwdChange' attribute of entry " +"'%s'." +msgstr "对条目'%s'的'krbLastPwdChange'属性没有'write'权限。" + +msgid "operation not defined" +msgstr "操作没有定义" + +#, python-format +msgid "not allowed to perform operation: %s" +msgstr "不允许执行操作:%s" + +msgid "No such virtual command" +msgstr "没有这样的虚拟命令" + +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +msgstr "优先权必须是一个唯一值((%(prio)d已被%(gname)s使用)" + +msgid "password policy" +msgstr "密码策略" + +msgid "password policies" +msgstr "密码策略" + +msgid "Password Policies" +msgstr "密码策略" + +msgid "Password Policy" +msgstr "密码策略" + +msgid "Maximum password life must be greater than minimum." +msgstr "最小密码生存周期必须比最小值大。" + +msgid "cannot delete global password policy" +msgstr "不能删除全局密码策略" + +msgid "priority cannot be set on global policy" +msgstr "优先权布不能在本地策略上设置" + +msgid "" +"\n" +"Sudo Rules\n" +msgstr "" +"\n" +"Sudo规则\n" + +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" +msgstr "" +"\n" +"Sudo (su \"do\")允许一个系统管理员给特定用户(或用户组)授予权限使其有以root" +"或其他用户的能力来运行一些(或全部)命令,同时会对命令和命令参数提供一个审计" +"跟踪。\n" + +msgid "" +"\n" +"FreeIPA provides a means to configure the various aspects of Sudo:\n" +" Users: The user(s)/group(s) allowed to invoke Sudo.\n" +" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke " +"Sudo.\n" +" Allow Command: The specific command(s) permitted to be run via Sudo.\n" +" Deny Command: The specific command(s) prohibited to be run via Sudo.\n" +" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be " +"invoked with.\n" +" 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" +msgstr "" +"\n" +"FreeIPA提供了一种方法来配置Sudo的各个方面:\n" +" 用户:用户/用户组允许调用Sudo。\n" +" 主机:主机/主机组上的用户允许调用Sudo。\n" +" 允许的命令:指定命令允许通过Sudo来运行。\n" +" 阻止的命令:指定命令禁止通过Sudo来运行。\n" +" 作为用户来运行:Sudo会调用用户或用户组的权限。\n" +" 作为组来运行:Sudo会调用组的gid权限。\n" +" 选项:各种Sudoers选项可以修改Sudo的行为。\n" + +msgid "" +"\n" +"An order can be added to a sudorule to control the order in which they\n" +"are evaluated (if the client supports it). This order is an integer and\n" +"must be unique.\n" +msgstr "" +"\n" +"顺序可以添加到一个sudo规则中来控制它们评估的顺序(如果客户端支持)。该顺序是" +"一个整数并且是唯一的。\n" + +msgid "this option has been deprecated." +msgstr "该选项已被弃用。" + +msgid "sudo rules" +msgstr "sudo规则" + +msgid "Sudo Rules" +msgstr "Sudo规则" + +msgid "Sudo Rule" +msgstr "Sudo规则" + +#, python-format +msgid "order must be a unique value (%(order)d already used by %(rule)s)" +msgstr "序号必须是唯一值(%(order)d已被%(rule)s使用)" + +#, python-format +msgid "Added Sudo Rule \"%(value)s\"" +msgstr "已添加Sudo规则\"%(value)s\"" + +#, python-format +msgid "Deleted Sudo Rule \"%(value)s\"" +msgstr "已删除Sudo规则\"%(value)s\"" + +#, python-format +msgid "Modified Sudo Rule \"%(value)s\"" +msgstr "已修改Sudo规则\"%(value)s\"" + +#, python-format +msgid "" +"%(type)s category cannot be set to 'all' while there are allowed %(objects)s" +msgstr "%(type)s类别不能设置为all',虽然有允许%(objects)s" + +msgid "users" +msgstr "用户" + +msgid "command" +msgstr "命令" + +msgid "commands" +msgstr "命令" + +msgid "runAs user" +msgstr "作为用户来运行" + +msgid "runAs users" +msgstr "作为用户来运行" + +msgid "group runAs" +msgstr "作为组来运行" + +msgid "runAs groups" +msgstr "作为组来运行" + +#, python-format +msgid "%(count)d Sudo Rule matched" +msgid_plural "%(count)d Sudo Rules matched" +msgstr[0] "已匹配%(count)d个Sudo规则" + +msgid "commands cannot be added when command category='all'" +msgstr "当命令类别='all'时命令不能被添加" + +msgid "users cannot be added when user category='all'" +msgstr "当用户类别='all'时用户不能被添加" + +msgid "hosts cannot be added when host category='all'" +msgstr "当主机类别='all'时主机不能被添加" + +msgid "users cannot be added when runAs user or runAs group category='all'" +msgstr "当作为用户来运行或作为组来运行类别='all'时用户不能被添加" + +#, python-format +msgid "RunAsUser does not accept '%(name)s' as a user name" +msgstr "作为用户来运行不能接受'%(name)s'来作为一个用户名" + +#, python-format +msgid "RunAsUser does not accept '%(name)s' as a group name" +msgstr "作为用户来运行不能接受'%(name)s'来作为一个组名" + +#, python-format +msgid "RunAsGroup does not accept '%(name)s' as a group name" +msgstr "作为组来运行不能接受'%(name)s'来作为一个组名" + +msgid "Role" +msgstr "角色" + +#, python-format +msgid "Added role \"%(value)s\"" +msgstr "已添加角色\"%(value)s\"" + +#, python-format +msgid "Deleted role \"%(value)s\"" +msgstr "已删除角色\"%(value)s\"" + +#, python-format +msgid "Modified role \"%(value)s\"" +msgstr "已修改角色\"%(value)s\"" + +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "已匹配%(count)d个角色" + +msgid "" +"\n" +"Manage Certificate Authorities\n" +msgstr "" +"\n" +"管理证书颁发机构\n" + +msgid "" +"\n" +"Subordinate Certificate Authorities (Sub-CAs) can be added for scoped " +"issuance\n" +"of X.509 certificates.\n" +msgstr "" +"\n" +"从属证书颁发机构(Sub-CAs)可以当作是X.509证书的发行范围。\n" + +msgid "" +"\n" +"All CAs except the 'IPA' CA can be disabled or re-enabled. Disabling a CA\n" +"prevents it from issuing certificates but does not affect the validity of " +"its\n" +"certificate.\n" +msgstr "" +"\n" +"所有的CAs除了'IPA' CA都可以被禁用或重新启用。禁用一个CA会阻止它发布证书,但不" +"会影响它的证书的有效性。\n" + +msgid "" +"\n" +"CAs (all except the 'IPA' CA) can be deleted. Deleting a CA causes its " +"signing\n" +"certificate to be revoked and its private key deleted.\n" +msgstr "" +"\n" +"CAs (除了'IPA' CA)都可以被删除。删除一个CA会撤销它的签名证书并删除它的私" +"钥。\n" + +msgid "Certificate Authority" +msgstr "证书颁发机构" + +msgid "Certificate Authorities" +msgstr "证书颁发机构" + +msgid "Name" +msgstr "名称" + +msgid "Description of the purpose of the CA" +msgstr "CA描述的目的" + +msgid "Authority ID" +msgstr "授权ID" + +msgid "Dogtag Authority ID" +msgstr "Dogtag授权ID" + +msgid "Subject DN" +msgstr "证书持有者名字" + +msgid "Subject Distinguished Name" +msgstr "主题的专有名称" + +msgid "Issuer DN" +msgstr "证书颁发机构名字" + +msgid "Issuer Distinguished Name" +msgstr "发行人专有名称" + +msgid "Base-64 encoded certificate." +msgstr "Base-64编码的证书。" + +msgid "Search for CAs." +msgstr "查找CAs。" + +#, python-format +msgid "%(count)d CA matched" +msgid_plural "%(count)d CAs matched" +msgstr[0] "已匹配%(count)d个CA" + +msgid "Display the properties of a CA." +msgstr "显示一个CA属性。" + +msgid "Create a CA." +msgstr "创建一个CA。" + +#, python-format +msgid "Created CA \"%(value)s\"" +msgstr "已创建CA\"%(value)s\"" + +#, python-format +msgid "Insufficient 'add' privilege for entry '%s'." +msgstr "对条目'%s'没有'add'权限。" + +#, python-format +msgid "Subject DN is already used by CA '%s'" +msgstr "主题DN已被CA'%s'使用" + +msgid "Delete a CA." +msgstr "删除一个CA。" + +#, python-format +msgid "Deleted CA \"%(value)s\"" +msgstr "已删除CA\"%(value)s\"" + +msgid "IPA CA cannot be deleted" +msgstr "IPA CA不能被删除" + +msgid "Modify CA configuration." +msgstr "修改CA配置。" + +#, python-format +msgid "Modified CA \"%(value)s\"" +msgstr "已修改CA\"%(value)s\"" + +msgid "Disable a CA." +msgstr "禁用一个CA。" + +#, python-format +msgid "Disabled CA \"%(value)s\"" +msgstr "已禁用CA\"%(value)s\"" + +msgid "IPA CA cannot be disabled" +msgstr "IPA CA不能被禁用" + +msgid "Enable a CA." +msgstr "启用一个CA。" + +#, python-format +msgid "Enabled CA \"%(value)s\"" +msgstr "已启用CA\"%(value)s\"" + +msgid "netgroups" +msgstr "网络组" + +msgid "Netgroups" +msgstr "网络组" + +msgid "Netgroup" +msgstr "网络组" + +#, python-format +msgid "Added netgroup \"%(value)s\"" +msgstr "已添加网络组\"%(value)s\"" + +#, python-format +msgid "" +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" +msgstr "主机组名\"%s\"已存在。主机组和网络组共享一个共同的名字空间" + +#, python-format +msgid "Deleted netgroup \"%(value)s\"" +msgstr "已删除网络组\"%(value)s\"" + +#, python-format +msgid "Modified netgroup \"%(value)s\"" +msgstr "已修改网络组\"%(value)s\"" + +msgid "user category cannot be set to 'all' while there are allowed users" +msgstr "用户类别不能设置为all',虽然有允许用户" + +msgid "host category cannot be set to 'all' while there are allowed hosts" +msgstr "主机类别不能设置为all',虽然有允许主机" + +#, python-format +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" +msgstr[0] "已匹配%(count)d个网络组" + +msgid "delegation" +msgstr "授权" + +msgid "delegations" +msgstr "授权" + +msgid "Delegations" +msgstr "授权" + +msgid "Delegation" +msgstr "授权" + +#, python-format +msgid "Added delegation \"%(value)s\"" +msgstr "已添加授权\"%(value)s\"" + +#, python-format +msgid "Deleted delegation \"%(value)s\"" +msgstr "已删除授权\"%(value)s\"" + +#, python-format +msgid "Modified delegation \"%(value)s\"" +msgstr "已修改授权\"%(value)s\"" + +#, python-format +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" +msgstr[0] "已匹配%(count)d个授权" + +msgid "ID Ranges" +msgstr "ID范围" + +msgid "ID Range" +msgstr "ID范围" + +msgid "local domain range" +msgstr "本地域范围" + +msgid "Active Directory domain range" +msgstr "活动目录域范围" + +msgid "Active Directory trust range with POSIX attributes" +msgstr "有POSIX属性的活动目录信任范围" + +#, python-brace-format +msgid "ID range type, one of {vals}" +msgstr "ID范围类型,其中之一{vals}" + +msgid "" +"range modification leaving objects with ID out of the defined range is not " +"allowed" +msgstr "对象ID范围修改超出定义范围是不允许的" + +msgid "" +"Cannot perform SID validation without Samba 4 support installed. Make sure " +"you have installed server-trust-ad sub-package of IPA on the server" +msgstr "" +"没有安装Samba 4不能执行SID验证。确认你已经在IPA服务器上安装了server-trust-ad" +"子包" + +msgid "" +"Cross-realm trusts are not configured. Make sure you have run ipa-adtrust-" +"install on the IPA server first" +msgstr "" +"跨域信任没有配置。首先确认你已经在IPA服务器上运行了ipa-adtrust-install命令" + +msgid "SID is not recognized as a valid SID for a trusted domain" +msgstr "对于一个信任域来说,SID不被认为是一个有效的SID" + +#, python-format +msgid "Added ID range \"%(value)s\"" +msgstr "已添加ID范围\"%(value)s\"" + +msgid "Options dom-sid and dom-name cannot be used together" +msgstr "选项dom-sid和dom-name不能被同时使用" + +msgid "" +"SID for the specified trusted domain name could not be found. Please specify " +"the SID directly using dom-sid option." +msgstr "指定信任域名的SID没有找到。请使用dom-sid选项直接指定SID。" + +msgid "Options dom-sid/dom-name and rid-base must be used together" +msgstr "选项dom-sid/dom-name和rid-base必须同时使用" + +msgid "" +"Option rid-base must not be used when IPA range type is ipa-ad-trust-posix" +msgstr "当IPA范围类型是ipa-ad-trust-posix时,选项rid-base不能使用" + +msgid "" +"IPA Range type must be one of ipa-ad-trust or ipa-ad-trust-posix when SID of " +"the trusted domain is specified" +msgstr "" +"当信任域的SID被指定时,IPA范围类型必须是ipa-ad-trust或ipa-ad-trust-posix中的" +"一个" + +msgid "Options dom-sid/dom-name and secondary-rid-base cannot be used together" +msgstr "选项dom-sid/dom-name和secondary-rid-base不能同时使用" + +msgid "" +"IPA Range type must not be one of ipa-ad-trust or ipa-ad-trust-posix when " +"SID of the trusted domain is not specified." +msgstr "" +"当信任域的SID没有被指定时,IPA范围类型必不能是ipa-ad-trust或ipa-ad-trust-" +"posix。" + +msgid "Options secondary-rid-base and rid-base must be used together" +msgstr "选项secondary-rid-base和rid-base必须同时使用" + +msgid "Primary RID range and secondary RID range cannot overlap" +msgstr "主要RID范围和次要RID范围不能覆盖" + +msgid "" +"You must specify both rid-base and secondary-rid-base options, because ipa-" +"adtrust-install has already been run." +msgstr "" +"你必须同时指定 rid-base和secondary-rid-base选项,因为ipa-adtrust-install已经" +"运行了。" + +#, python-format +msgid "Deleted ID range \"%(value)s\"" +msgstr "已删除ID范围\"%(value)s\"" + +#, python-format +msgid "%(count)d range matched" +msgid_plural "%(count)d ranges matched" +msgstr[0] "已匹配%(count)d个范围" + +#, python-brace-format +msgid "" +"Modify ID range.\n" +"\n" +"{0}\n" +msgstr "" +"修改ID范围。\n" +"\n" +"{0}\n" + +#, python-format +msgid "Modified ID range \"%(value)s\"" +msgstr "已修改ID范围\"%(value)s\"" + +msgid "" +"This command can not be used to change ID allocation for local IPA domain. " +"Run `ipa help idrange` for more information" +msgstr "" +"这个命令在本地IPA域中不能用来改变ID分配。运行`ipa help idrange`查看更多信息" + +msgid "Options dom-sid and secondary-rid-base cannot be used together" +msgstr "选项dom-sid和secondary-rid-base不能同时使用" + +msgid "Options dom-sid and rid-base must be used together" +msgstr "选项dom-sid和rid-base必须同时使用" + +msgid "Trusted to authenticate as user" +msgstr "信任用户认证" + +msgid "The service is allowed to authenticate on behalf of a client" +msgstr "服务可以代表一个客户端进行认证" + +msgid "This principal is required by the IPA master" +msgstr "这个主体是IPA主服务器所需的" + +msgid "service" +msgstr "服务" + +msgid "services" +msgstr "服务" + +msgid "Principal alias" +msgstr "主体别名" + +msgid "Service principal alias" +msgstr "服务主体别名" + +msgid "Base-64 encoded service certificate" +msgstr "Base-64编码的服务证书" + +msgid "Serial Number" +msgstr "序列号" + +msgid "Serial Number (hex)" +msgstr "序列号(十六进制)" + +msgid "Issuer" +msgstr "发行人" + +msgid "Not Before" +msgstr "不早于" + +msgid "Not After" +msgstr "不晚于" + +msgid "Fingerprint (SHA1)" +msgstr "指纹(SHA1)" + +msgid "Revocation reason" +msgstr "撤消原因" + +msgid "Authentication Indicators" +msgstr "认证指标" + +msgid "" +"Defines a whitelist for Authentication Indicators. Use 'otp' to allow OTP-" +"based 2FA authentications. Use 'radius' to allow RADIUS-based 2FA " +"authentications. Other values may be used for custom configurations." +msgstr "" +"为认证指标定义一个白名单。使用'otp'来允许OTP-based 2FA认证。使用'radius'来允" +"许RADIUS-based 2FA认证。其他值可能用于自定义配置。" + +msgid "NONE value cannot be combined with other PAC types" +msgstr "NONE值不能与其他PAC类型相结合" + +msgid "Add a new IPA service." +msgstr "添加一个新的IPA服务。" + +#, python-format +msgid "Added service \"%(value)s\"" +msgstr "已添加服务\"%(value)s\"" + +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "已删除服务\"%(value)s\"" + +#, python-format +msgid "Modified service \"%(value)s\"" +msgstr "已修改服务\"%(value)s\"" + +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "已匹配%(count)d个服务" + +#, python-format +msgid "Disabled service \"%(value)s\"" +msgstr "已禁用服务\"%(value)s\"" + +#, python-format +msgid "Added certificates to service principal \"%(value)s\"" +msgstr "已添加证书到服务主体\"%(value)s\"" + +#, python-format +msgid "Removed certificates from service principal \"%(value)s\"" +msgstr "已从服务主体\"%(value)s\"中删除证书" + +msgid "Add new principal alias to a service" +msgstr "向一个服务添加新的主体别名" + +#, python-format +msgid "Added new aliases to the service principal \"%(value)s\"" +msgstr "已添加新的别名到服务主体\"%(value)s\"" + +msgid "Remove principal alias from a service" +msgstr "从一个服务中删除主体别名" + +#, python-format +msgid "Removed aliases to the service principal \"%(value)s\"" +msgstr "已从服务主体\"%(value)s\"中删除别名" + +msgid "Domain Level cannot be lowered." +msgstr "域级别不能降低了。" + +#, python-brace-format +msgid "Domain Level cannot be raised to {0}, server {1} does not support it." +msgstr "域级别不能提高到{0},服务器{1}不支持它。" + +msgid "" +"\n" +"DNS server configuration\n" +msgstr "" +"\n" +"DNS服务器配置\n" + +msgid "" +"\n" +"Manipulate DNS server configuration\n" +msgstr "" +"\n" +"设置DNS服务器配置\n" + +msgid "DNS server" +msgstr "DNS服务器" + +msgid "DNS servers" +msgstr "DNS服务器" + +msgid "DNS Servers" +msgstr "DNS服务器" + +msgid "DNS Server" +msgstr "DNS服务器" + +msgid "DNS Server name" +msgstr "DNS服务器名" + +msgid "SOA mname override" +msgstr "SOA mname覆盖" + +msgid "SOA mname (authoritative server) override" +msgstr "SOA mname(权威服务器)覆盖" + +msgid "Forwarders" +msgstr "转发器" + +msgid "" +"Per-server forwarders. A custom port can be specified for each forwarder " +"using a standard format \"IP_ADDRESS port PORT\"" +msgstr "" +"Per-server转发器。使用标准格式\"IP_ADDRESS port PORT\"为每个转发器指定一个自" +"定义端口" + +msgid "" +"Per-server conditional forwarding policy. Set to \"none\" to disable " +"forwarding to global forwarder for this zone. In that case, conditional zone " +"forwarders are disregarded." +msgstr "" +"Per-server有条件的转发器策略。设置为\"none\"来禁止该区域转发至全局转发器。那" +"样的话,有条件的区域转发器被忽视了。" + +msgid "DNS is not configured" +msgstr "DNS没有配置" + +msgid "Modify DNS server configuration" +msgstr "修改DNS服务器配置" + +#, python-format +msgid "Modified DNS server \"%(value)s\"" +msgstr "已修改DNS服务器\"%(value)s\"" + +msgid "Search for DNS servers." +msgstr "查找DNS服务器。" + +#, python-format +msgid "%(count)d DNS server matched" +msgid_plural "%(count)d DNS servers matched" +msgstr[0] "已匹配%(count)d个DNS服务器" + +msgid "Display configuration of a DNS server." +msgstr "显示一个DNS服务器配置。" + +msgid "Add a new DNS server." +msgstr "添加一个新的DNS服务器。" + +#, python-format +msgid "Added new DNS server \"%(value)s\"" +msgstr "已添加新的DNS服务器\"%(value)s\"" + +msgid "Delete a DNS server" +msgstr "删除一个DNS服务器" + +#, python-format +msgid "Deleted DNS server \"%(value)s\"" +msgstr "已删除DNS服务器\"%(value)s\"" + +msgid "The deny type has been deprecated." +msgstr "阻止类型已被弃用。" + +msgid "HBAC rules" +msgstr "HBAC规则" + +msgid "HBAC Rules" +msgstr "HBAC规则" + +#, python-format +msgid "Added HBAC rule \"%(value)s\"" +msgstr "已添加HBAC规则\"%(value)s\"" + +#, python-format +msgid "Deleted HBAC rule \"%(value)s\"" +msgstr "已删除HBAC规则\"%(value)s\"" + +#, python-format +msgid "Modified HBAC rule \"%(value)s\"" +msgstr "已修改HBAC规则\"%(value)s\"" + +msgid "" +"service category cannot be set to 'all' while there are allowed services" +msgstr "服务类别不能设置为all',虽然有允许服务" + +#, python-format +msgid "%(count)d HBAC rule matched" +msgid_plural "%(count)d HBAC rules matched" +msgstr[0] "已匹配%(count)d个HBAC规则" + +#, python-format +msgid "Enabled HBAC rule \"%(value)s\"" +msgstr "已启用HBAC规则\"%(value)s\"" + +#, python-format +msgid "Disabled HBAC rule \"%(value)s\"" +msgstr "已禁用HBAC规则\"%(value)s\"" + +msgid "Access time" +msgstr "访问时间" + +msgid "services cannot be added when service category='all'" +msgstr "当服务类别='all'时服务不能被添加" + +msgid "domain" +msgstr "域" + +#, python-format +msgid "" +"cannot add permission \"%(perm)s\" with bindtype \"%(bindtype)s\" to a " +"privilege" +msgstr "不能给一个特权添加带有绑定类型\"%(bindtype)s\"的权限\"%(perm)s\"" + +msgid "Privilege" +msgstr "特权" + +#, python-format +msgid "Added privilege \"%(value)s\"" +msgstr "已添加特权\"%(value)s\"" + +#, python-format +msgid "Deleted privilege \"%(value)s\"" +msgstr "已删除特权\"%(value)s\"" + +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "已修改特权\"%(value)s\"" + +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" +msgstr[0] "已匹配%(count)d个特权" + +msgid "Realm domains" +msgstr "Realm域" + +msgid "Realm Domains" +msgstr "Realm域" + +#, python-format +msgid "" +"DNS zone for each realmdomain must contain SOA or NS records. No records " +"found for: %s" +msgstr "DNS区域的每个realm域必须包括SOA或NS记录。没有找到记录:%s" + +#, python-format +msgid "The following domains do not belong to this realm: %(domains)s" +msgstr "下面的域不属于该realm:%(domains)s" + +#, python-format +msgid "" +"The realm of the following domains could not be detected: %(domains)s. If " +"these are domains that belong to the this realm, please create a _kerberos " +"TXT record containing \"%(realm)s\" in each of them." +msgstr "" +"下面域的realm不能被检测到:%(domains)s。如果有属于该realm的域,请为它们创建一" +"个包含\"%(realm)s\"的_kerberos TXT记录。" + +msgid "" +"The --domain option cannot be used together with --add-domain or --del-" +"domain. Use --domain to specify the whole realm domain list explicitly, to " +"add/remove individual domains, use --add-domain/del-domain." +msgstr "" +"--domain选项不能和--add-domain或--del-domain选项一起使用。使用--domain来显示" +"地指定整个realm域列表,添加/删除个别域,使用--add-domain/--del-domain。" + +msgid "IPA server domain cannot be omitted" +msgstr "IPA服务器域不能被省略" + +msgid "IPA server domain cannot be deleted" +msgstr "IPA服务器域不能被删除" + +msgid "HBAC services" +msgstr "HBAC服务" + +msgid "HBAC Services" +msgstr "HBAC服务" + +msgid "HBAC Service" +msgstr "HBAC服务" + +#, python-format +msgid "Added HBAC service \"%(value)s\"" +msgstr "已添加HBAC服务\"%(value)s\"" + +#, python-format +msgid "Deleted HBAC service \"%(value)s\"" +msgstr "已删除HBAC服务\"%(value)s\"" + +#, python-format +msgid "Modified HBAC service \"%(value)s\"" +msgstr "已修改HBAC服务\"%(value)s\"" + +#, python-format +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" +msgstr[0] "已匹配%(count)d个HBAC服务" + +msgid "Stage Users" +msgstr "计划用户" + +msgid "Stage User" +msgstr "计划用户" + +msgid "stage user" +msgstr "计划用户" + +msgid "stage users" +msgstr "计划用户" + +#, python-format +msgid "Added stage user \"%(value)s\"" +msgstr "已添加计划用户\"%(value)s\"" + +msgid "givenname is required" +msgstr "需要名字" + +msgid "sn is required" +msgstr "需要sn" + +#, python-format +msgid "can be at most %(len)d characters" +msgstr "最多%(len)d个字符" + +#, python-format +msgid "Deleted stage user \"%(value)s\"" +msgstr "已删除计划用户\"%(value)s\"" + +#, python-format +msgid "Modified stage user \"%(value)s\"" +msgstr "已修改计划用户\"%(value)s\"" + +#, python-format +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "已匹配%(count)d个用户" + +#, python-format +msgid "Activate a stage user \"%(value)s\"" +msgstr "激活一个计划用户\"%(value)s\"" + +msgid "Entry RDN is not 'uid'" +msgstr "条目RDN不是'uid'" + +#, python-format +msgid "Entry has no '%(attribute)s'" +msgstr "条目没有'%(attribute)s'" + +#, python-format +msgid "active user with name \"%(user)s\" already exists" +msgstr "活跃用户名\"%(user)s\"已存在" + +#, python-format +msgid "Stage user %s activated" +msgstr "计划用户%s已激活" + +msgid "" +"\n" +"RADIUS Proxy Servers\n" +msgstr "" +"\n" +"RADIUS代理服务器\n" + +msgid "" +"\n" +"Manage RADIUS Proxy Servers.\n" +msgstr "" +"\n" +"管理RADIUS代理服务器。\n" + +msgid "" +"\n" +"IPA supports the use of an external RADIUS proxy server for krb5 OTP\n" +"authentications. This permits a great deal of flexibility when\n" +"integrating with third-party authentication services.\n" +msgstr "" +"\n" +"IPA对于krb5 OTP认证支持使用额外的RADIUS代理服务器。这在集成第三方认证服务时提" +"供了很多方便。\n" + +msgid "invalid attribute name" +msgstr "无效的属性名" + +msgid "invalid port number" +msgstr "无效的端口号" + +msgid "RADIUS proxy server" +msgstr "RADIUS代理服务器" + +msgid "RADIUS proxy servers" +msgstr "RADIUS代理服务器" + +msgid "RADIUS Servers" +msgstr "RADIUS代理服务器" + +msgid "RADIUS Server" +msgstr "RADIUS代理服务器" + +#, python-format +msgid "Added RADIUS proxy server \"%(value)s\"" +msgstr "已添加RADIUS代理服务器\"%(value)s\"" + +#, python-format +msgid "Deleted RADIUS proxy server \"%(value)s\"" +msgstr "已删除RADIUS代理服务器\"%(value)s\"" + +#, python-format +msgid "Modified RADIUS proxy server \"%(value)s\"" +msgstr "已修改RADIUS代理服务器\"%(value)s\"" + +#, python-format +msgid "%(count)d RADIUS proxy server matched" +msgid_plural "%(count)d RADIUS proxy servers matched" +msgstr[0] "已匹配%(count)d个RADIUS代理服务器" + +msgid "CA is not configured" +msgstr "CA没有配置" + +msgid "invalid Profile ID" +msgstr "无效的配置文件ID" + +msgid "Certificate Profile" +msgstr "证书配置文件" + +msgid "Certificate Profiles" +msgstr "证书配置文件" + +msgid "Profile configuration" +msgstr "配置文件配置" + +#, python-format +msgid "%(count)d profile matched" +msgid_plural "%(count)d profiles matched" +msgstr[0] "已匹配%(count)d个配置文件" + +#, python-format +msgid "Imported profile \"%(value)s\"" +msgstr "已导入配置文件\"%(value)s\"" + +#, python-format +msgid "Profile ID '%(cli_value)s' does not match profile data '%(file_value)s'" +msgstr "配置文件ID '%(cli_value)s'与配置文件数据'%(file_value)s'不匹配" + +#, python-format +msgid "Deleted profile \"%(value)s\"" +msgstr "已删除配置文件\"%(value)s\"" + +#, python-format +msgid "Predefined profile '%(profile_id)s' cannot be deleted" +msgstr "预定义的配置文件'%(profile_id)s'不能被删除" + +#, python-format +msgid "Modified Certificate Profile \"%(value)s\"" +msgstr "已修改配置文件\"%(value)s\"" + +msgid "Certificate profiles cannot be renamed" +msgstr "证书配置文件不能被重命名" + +msgid "" +"\n" +"OTP Tokens\n" +msgstr "" +"\n" +"OTP令牌\n" + +msgid "" +"\n" +"Manage OTP tokens.\n" +msgstr "" +"\n" +"管理OTP 令牌。\n" + +msgid "" +"\n" +"IPA supports the use of OTP tokens for multi-factor authentication. This\n" +"code enables the management of OTP tokens.\n" +msgstr "" +"\n" +"IPA支持使用OTP令牌来多因素认证。这个码能管理OTP令牌。\n" + +msgid "OTP token" +msgstr "OTP令牌" + +msgid "OTP tokens" +msgstr "OTP令牌" + +msgid "OTP Tokens" +msgstr "OTP令牌" + +msgid "OTP Token" +msgstr "OTP令牌" + +#, python-format +msgid "Added OTP token \"%(value)s\"" +msgstr "已添加OTP令牌\"%(value)s\"" + +msgid "cannot be empty" +msgstr "不能为空" + +#, python-format +msgid "Deleted OTP token \"%(value)s\"" +msgstr "已删除OTP令牌\"%(value)s\"" + +#, python-format +msgid "Modified OTP token \"%(value)s\"" +msgstr "已修改OTP令牌\"%(value)s\"" + +#, python-format +msgid "%(count)d OTP token matched" +msgid_plural "%(count)d OTP tokens matched" +msgstr[0] "已匹配%(count)d个OTP令牌" + +msgid "commands for controlling sudo configuration" +msgstr "控制sudo配置的命令" + msgid "Your session has expired. Please re-login." msgstr "你的会话已过期。请重新登录。" @@ -7238,9 +7900,6 @@ msgstr "最大序列号" msgid "Minimum serial number" msgstr "最小序列号" -msgid "Revocation reason" -msgstr "撤消原因" - msgid "Revoked on from" msgstr "撤销于" @@ -7337,12 +7996,6 @@ msgstr "你要撤销该证书吗?从下拉列表中选择一个理由。" msgid "Certificate Revoked" msgstr "证书已撤销" -msgid "Serial Number" -msgstr "序列号" - -msgid "Serial Number (hex)" -msgstr "序列号(十六进制)" - msgid "SHA1 Fingerprint" msgstr "SHA1指纹" @@ -7377,9 +8030,6 @@ msgstr "${entity} ${primary_key}证书" msgid "View Certificate" msgstr "新证书" -msgid "Issuer" -msgstr "发行人" - msgid "Version" msgstr "版本" @@ -7713,18 +8363,12 @@ msgstr "你确定要在选择的条目中不应用ID视图?" msgid "Un-apply ID View ${primary_key} from hosts" msgstr "不将ID视图${primary_key}应用到主机" -msgid "Kerberos Ticket Policy" -msgstr "Kerberos票据策略" - msgid "Host" msgstr "主机" msgid "Netgroup Settings" msgstr "网络组设置" -msgid "Netgroups" -msgstr "网络组" - msgid "Add OTP Token" msgstr "添加OTP令牌" @@ -7794,9 +8438,6 @@ msgstr "新的:密钥没有设置" msgid "New: key set" msgstr "新的:密钥已设置" -msgid "Password Policy" -msgstr "密码策略" - msgid "Range Settings" msgstr "范围设置" @@ -7815,9 +8456,6 @@ msgstr "域SID" msgid "Secondary RID base" msgstr "次要的RID基" -msgid "Active Directory domain" -msgstr "活动目录域" - msgid "Active Directory domain with POSIX attributes" msgstr "带POSIX属性的活动目录域" @@ -7833,9 +8471,6 @@ msgstr "IPA信任" msgid "RADIUS Proxy Server Settings" msgstr "RADIUS代理服务器设置" -msgid "Realm Domains" -msgstr "Realm域" - msgid "Check DNS" msgstr "检测DNS" @@ -8267,732 +8902,6 @@ msgstr "必需字段" msgid "Unsupported value" msgstr "不支持的值" -msgid "kerberos ticket policy settings" -msgstr "kerberos票据策略设置" - -#, python-format -msgid "Ticket policy for %s could not be read" -msgstr "票据策略%s不可读" - -msgid "Default ticket policy could not be read" -msgstr "默认票据策略不可读" - -msgid "ID Ranges" -msgstr "ID范围" - -msgid "ID Range" -msgstr "ID范围" - -msgid "local domain range" -msgstr "本地域范围" - -msgid "Active Directory domain range" -msgstr "活动目录域范围" - -msgid "Active Directory trust range with POSIX attributes" -msgstr "有POSIX属性的活动目录信任范围" - -#, python-brace-format -msgid "ID range type, one of {vals}" -msgstr "ID范围类型,其中之一{vals}" - -msgid "" -"range modification leaving objects with ID out of the defined range is not " -"allowed" -msgstr "对象ID范围修改超出定义范围是不允许的" - -msgid "" -"Cannot perform SID validation without Samba 4 support installed. Make sure " -"you have installed server-trust-ad sub-package of IPA on the server" -msgstr "" -"没有安装Samba 4不能执行SID验证。确认你已经在IPA服务器上安装了server-trust-ad" -"子包" - -msgid "" -"Cross-realm trusts are not configured. Make sure you have run ipa-adtrust-" -"install on the IPA server first" -msgstr "" -"跨域信任没有配置。首先确认你已经在IPA服务器上运行了ipa-adtrust-install命令" - -msgid "SID is not recognized as a valid SID for a trusted domain" -msgstr "对于一个信任域来说,SID不被认为是一个有效的SID" - -#, python-format -msgid "Added ID range \"%(value)s\"" -msgstr "已添加ID范围\"%(value)s\"" - -msgid "Options dom-sid and dom-name cannot be used together" -msgstr "选项dom-sid和dom-name不能被同时使用" - -msgid "" -"SID for the specified trusted domain name could not be found. Please specify " -"the SID directly using dom-sid option." -msgstr "指定信任域名的SID没有找到。请使用dom-sid选项直接指定SID。" - -msgid "Options dom-sid/dom-name and rid-base must be used together" -msgstr "选项dom-sid/dom-name和rid-base必须同时使用" - -msgid "" -"Option rid-base must not be used when IPA range type is ipa-ad-trust-posix" -msgstr "当IPA范围类型是ipa-ad-trust-posix时,选项rid-base不能使用" - -msgid "" -"IPA Range type must be one of ipa-ad-trust or ipa-ad-trust-posix when SID of " -"the trusted domain is specified" -msgstr "" -"当信任域的SID被指定时,IPA范围类型必须是ipa-ad-trust或ipa-ad-trust-posix中的" -"一个" - -msgid "Options dom-sid/dom-name and secondary-rid-base cannot be used together" -msgstr "选项dom-sid/dom-name和secondary-rid-base不能同时使用" - -msgid "" -"IPA Range type must not be one of ipa-ad-trust or ipa-ad-trust-posix when " -"SID of the trusted domain is not specified." -msgstr "" -"当信任域的SID没有被指定时,IPA范围类型必不能是ipa-ad-trust或ipa-ad-trust-" -"posix。" - -msgid "Options secondary-rid-base and rid-base must be used together" -msgstr "选项secondary-rid-base和rid-base必须同时使用" - -msgid "Primary RID range and secondary RID range cannot overlap" -msgstr "主要RID范围和次要RID范围不能覆盖" - -msgid "" -"You must specify both rid-base and secondary-rid-base options, because ipa-" -"adtrust-install has already been run." -msgstr "" -"你必须同时指定 rid-base和secondary-rid-base选项,因为ipa-adtrust-install已经" -"运行了。" - -#, python-format -msgid "Deleted ID range \"%(value)s\"" -msgstr "已删除ID范围\"%(value)s\"" - -#, python-format -msgid "%(count)d range matched" -msgid_plural "%(count)d ranges matched" -msgstr[0] "已匹配%(count)d个范围" - -#, python-brace-format -msgid "" -"Modify ID range.\n" -"\n" -"{0}\n" -msgstr "" -"修改ID范围。\n" -"\n" -"{0}\n" - -#, python-format -msgid "Modified ID range \"%(value)s\"" -msgstr "已修改ID范围\"%(value)s\"" - -msgid "" -"This command can not be used to change ID allocation for local IPA domain. " -"Run `ipa help idrange` for more information" -msgstr "" -"这个命令在本地IPA域中不能用来改变ID分配。运行`ipa help idrange`查看更多信息" - -msgid "Options dom-sid and secondary-rid-base cannot be used together" -msgstr "选项dom-sid和secondary-rid-base不能同时使用" - -msgid "Options dom-sid and rid-base must be used together" -msgstr "选项dom-sid和rid-base必须同时使用" - -msgid "" -"\n" -"IPA server roles\n" -msgstr "" -"\n" -"IPA服务器角色\n" - -msgid "" -"\n" -"Get status of roles (DNS server, CA, etc.) provided by IPA masters.\n" -msgstr "" -"\n" -"获取由IPA主服务器提供的角色(DNS服务器,CA等)状态。\n" - -msgid "server role" -msgstr "服务器角色" - -msgid "server roles" -msgstr "服务器角色" - -msgid "IPA Server Roles" -msgstr "IPA服务器角色" - -msgid "IPA Server Role" -msgstr "IPA服务器角色" - -msgid "IPA server role name" -msgstr "IPA服务器角色名" - -msgid "Role status" -msgstr "角色状态" - -msgid "Status of the role" -msgstr "角色状态" - -msgid "Show role status on a server" -msgstr "显示服务器角色状态" - -msgid "Find a server role on a server(s)" -msgstr "在服务器上找到一个服务器角色" - -#, python-format -msgid "%(count)s server role matched" -msgid_plural "%(count)s server roles matched" -msgstr[0] "已匹配%(count)s个服务器角色" - -msgid "roles" -msgstr "角色" - -msgid "IPA role name" -msgstr "IPA角色名" - -msgid "Member service groups" -msgstr "成员服务组" - -msgid "Member HBAC service groups" -msgstr "成员HBAC服务组" - -msgid "Indirect Member permissions" -msgstr "间接成员权限" - -msgid "Indirect Member HBAC service" -msgstr "间接成员HBAC服务" - -msgid "Indirect Member HBAC service group" -msgstr "间接成员HBAC服务组" - -msgid "Invalid format. Should be name=value" -msgstr "无效的格式。应该是“名称=值”" - -msgid "An IPA master host cannot be deleted or disabled" -msgstr "IPA主主机不能被删除或禁用" - -msgid "entry" -msgstr "条目" - -msgid "entries" -msgstr "条目" - -msgid "Entry" -msgstr "条目" - -#, python-format -msgid "container entry (%(container)s) not found" -msgstr "容器条目(%(container)s)没有找到" - -#, python-format -msgid "%(parent)s: %(oname)s not found" -msgstr "%(parent)s:%(oname)s没有找到" - -#, python-format -msgid "%(pkey)s: %(oname)s not found" -msgstr "%(pkey)s:%(oname)s没有找到" - -#, python-format -msgid "%(oname)s with name \"%(pkey)s\" already exists" -msgstr "名为\"%(pkey)s\"的%(oname)s已存在" - -#, python-format -msgid "attribute \"%(attribute)s\" not allowed" -msgstr "不支持属性\"%(attribute)s\"" - -msgid "attribute is not configurable" -msgstr "属性没有配置" - -msgid "No such attribute on this entry" -msgstr "该条目没有这样的属性" - -#, python-format -msgid "Rename the %(ldap_obj_name)s object" -msgstr "重命名%(ldap_obj_name)s对象" - -msgid "the entry was deleted while being modified" -msgstr "正被修改的条目已被删除" - -#, python-format -msgid "member %s" -msgstr "成员%s" - -#, python-format -msgid "%s to add" -msgstr "待添加的%s" - -#, python-format -msgid "%s to remove" -msgstr "待移除的%s" - -#, python-format -msgid "Results should contain primary key attribute only (\"%s\")" -msgstr "结果应该只包括主键属性(\"%s\")" - -#, python-format -msgid "" -"Search for %(searched_object)s with these %(relationship)s %(ldap_object)s." -msgstr "查找有这些%(relationship)s %(ldap_object)s的%(searched_object)s。" - -#, python-format -msgid "" -"Search for %(searched_object)s without these %(relationship)s " -"%(ldap_object)s." -msgstr "查找没有%(relationship)s %(ldap_object)s的%(searched_object)s。" - -#, python-format -msgid "'%(attr)s' already contains one or more values" -msgstr "'%(attr)s'已包含一个或多个值" - -msgid "one or more values to remove" -msgstr "待移除的一个或多个值" - -msgid "Could not read UPG Definition originfilter. Check your permissions." -msgstr "不能读UPG原过滤器定义。检查你的权限。" - -msgid "Trusted to authenticate as user" -msgstr "信任用户认证" - -msgid "The service is allowed to authenticate on behalf of a client" -msgstr "服务可以代表一个客户端进行认证" - -msgid "This principal is required by the IPA master" -msgstr "这个主体是IPA主服务器所需的" - -msgid "service" -msgstr "服务" - -msgid "services" -msgstr "服务" - -msgid "Principal alias" -msgstr "主体别名" - -msgid "Service principal alias" -msgstr "服务主体别名" - -msgid "Base-64 encoded service certificate" -msgstr "Base-64编码的服务证书" - -msgid "Not Before" -msgstr "不早于" - -msgid "Not After" -msgstr "不晚于" - -msgid "Fingerprint (SHA1)" -msgstr "指纹(SHA1)" - -msgid "Authentication Indicators" -msgstr "认证指标" - -msgid "" -"Defines a whitelist for Authentication Indicators. Use 'otp' to allow OTP-" -"based 2FA authentications. Use 'radius' to allow RADIUS-based 2FA " -"authentications. Other values may be used for custom configurations." -msgstr "" -"为认证指标定义一个白名单。使用'otp'来允许OTP-based 2FA认证。使用'radius'来允" -"许RADIUS-based 2FA认证。其他值可能用于自定义配置。" - -msgid "NONE value cannot be combined with other PAC types" -msgstr "NONE值不能与其他PAC类型相结合" - -msgid "Add a new IPA service." -msgstr "添加一个新的IPA服务。" - -#, python-format -msgid "Added service \"%(value)s\"" -msgstr "已添加服务\"%(value)s\"" - -#, python-format -msgid "Deleted service \"%(value)s\"" -msgstr "已删除服务\"%(value)s\"" - -#, python-format -msgid "Modified service \"%(value)s\"" -msgstr "已修改服务\"%(value)s\"" - -#, python-format -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" -msgstr[0] "已匹配%(count)d个服务" - -#, python-format -msgid "Disabled service \"%(value)s\"" -msgstr "已禁用服务\"%(value)s\"" - -#, python-format -msgid "Added certificates to service principal \"%(value)s\"" -msgstr "已添加证书到服务主体\"%(value)s\"" - -#, python-format -msgid "Removed certificates from service principal \"%(value)s\"" -msgstr "已从服务主体\"%(value)s\"中删除证书" - -msgid "Add new principal alias to a service" -msgstr "向一个服务添加新的主体别名" - -#, python-format -msgid "Added new aliases to the service principal \"%(value)s\"" -msgstr "已添加新的别名到服务主体\"%(value)s\"" - -msgid "Remove principal alias from a service" -msgstr "从一个服务中删除主体别名" - -#, python-format -msgid "Removed aliases to the service principal \"%(value)s\"" -msgstr "已从服务主体\"%(value)s\"中删除别名" - -msgid "" -"\n" -"Sudo Rules\n" -msgstr "" -"\n" -"Sudo规则\n" - -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" -msgstr "" -"\n" -"Sudo (su \"do\")允许一个系统管理员给特定用户(或用户组)授予权限使其有以root" -"或其他用户的能力来运行一些(或全部)命令,同时会对命令和命令参数提供一个审计" -"跟踪。\n" - -msgid "" -"\n" -"FreeIPA provides a means to configure the various aspects of Sudo:\n" -" Users: The user(s)/group(s) allowed to invoke Sudo.\n" -" Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke " -"Sudo.\n" -" Allow Command: The specific command(s) permitted to be run via Sudo.\n" -" Deny Command: The specific command(s) prohibited to be run via Sudo.\n" -" RunAsUser: The user(s) or group(s) of users whose rights Sudo will be " -"invoked with.\n" -" 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" -msgstr "" -"\n" -"FreeIPA提供了一种方法来配置Sudo的各个方面:\n" -" 用户:用户/用户组允许调用Sudo。\n" -" 主机:主机/主机组上的用户允许调用Sudo。\n" -" 允许的命令:指定命令允许通过Sudo来运行。\n" -" 阻止的命令:指定命令禁止通过Sudo来运行。\n" -" 作为用户来运行:Sudo会调用用户或用户组的权限。\n" -" 作为组来运行:Sudo会调用组的gid权限。\n" -" 选项:各种Sudoers选项可以修改Sudo的行为。\n" - -msgid "" -"\n" -"An order can be added to a sudorule to control the order in which they\n" -"are evaluated (if the client supports it). This order is an integer and\n" -"must be unique.\n" -msgstr "" -"\n" -"顺序可以添加到一个sudo规则中来控制它们评估的顺序(如果客户端支持)。该顺序是" -"一个整数并且是唯一的。\n" - -msgid "this option has been deprecated." -msgstr "该选项已被弃用。" - -msgid "sudo rules" -msgstr "sudo规则" - -msgid "Sudo Rules" -msgstr "Sudo规则" - -msgid "Sudo Rule" -msgstr "Sudo规则" - -#, python-format -msgid "order must be a unique value (%(order)d already used by %(rule)s)" -msgstr "序号必须是唯一值(%(order)d已被%(rule)s使用)" - -#, python-format -msgid "Added Sudo Rule \"%(value)s\"" -msgstr "已添加Sudo规则\"%(value)s\"" - -#, python-format -msgid "Deleted Sudo Rule \"%(value)s\"" -msgstr "已删除Sudo规则\"%(value)s\"" - -#, python-format -msgid "Modified Sudo Rule \"%(value)s\"" -msgstr "已修改Sudo规则\"%(value)s\"" - -#, python-format -msgid "" -"%(type)s category cannot be set to 'all' while there are allowed %(objects)s" -msgstr "%(type)s类别不能设置为all',虽然有允许%(objects)s" - -msgid "users" -msgstr "用户" - -msgid "command" -msgstr "命令" - -msgid "commands" -msgstr "命令" - -msgid "runAs user" -msgstr "作为用户来运行" - -msgid "runAs users" -msgstr "作为用户来运行" - -msgid "group runAs" -msgstr "作为组来运行" - -msgid "runAs groups" -msgstr "作为组来运行" - -#, python-format -msgid "%(count)d Sudo Rule matched" -msgid_plural "%(count)d Sudo Rules matched" -msgstr[0] "已匹配%(count)d个Sudo规则" - -msgid "commands cannot be added when command category='all'" -msgstr "当命令类别='all'时命令不能被添加" - -msgid "users cannot be added when user category='all'" -msgstr "当用户类别='all'时用户不能被添加" - -msgid "hosts cannot be added when host category='all'" -msgstr "当主机类别='all'时主机不能被添加" - -msgid "users cannot be added when runAs user or runAs group category='all'" -msgstr "当作为用户来运行或作为组来运行类别='all'时用户不能被添加" - -#, python-format -msgid "RunAsUser does not accept '%(name)s' as a user name" -msgstr "作为用户来运行不能接受'%(name)s'来作为一个用户名" - -#, python-format -msgid "RunAsUser does not accept '%(name)s' as a group name" -msgstr "作为用户来运行不能接受'%(name)s'来作为一个组名" - -#, python-format -msgid "RunAsGroup does not accept '%(name)s' as a group name" -msgstr "作为组来运行不能接受'%(name)s'来作为一个组名" - -msgid "sudo command group" -msgstr "sudo命令组" - -msgid "sudo command groups" -msgstr "sudo命令组" - -#, python-format -msgid "Added Sudo Command Group \"%(value)s\"" -msgstr "已添加Sudo命令组\"%(value)s\"" - -#, python-format -msgid "Deleted Sudo Command Group \"%(value)s\"" -msgstr "已删除Sudo命令组\"%(value)s\"" - -#, python-format -msgid "Modified Sudo Command Group \"%(value)s\"" -msgstr "已修改Sudo命令组\"%(value)s\"" - -#, python-format -msgid "%(count)d Sudo Command Group matched" -msgid_plural "%(count)d Sudo Command Groups matched" -msgstr[0] "已匹配%(count)d个Sudo命令组" - -#, python-brace-format -msgid "{role}: role not found" -msgstr "{role}:角色没有找到" - -#, python-brace-format -msgid "{attr}: no such attribute" -msgstr "{attr}:没有这样的属性" - -msgid "ID View" -msgstr "ID视图" - -msgid "system ID View" -msgstr "系统ID视图" - -msgid "ID Views" -msgstr "ID视图" - -msgid "User object overrides" -msgstr "用户对象覆盖" - -msgid "Group object overrides" -msgstr "组对象覆盖" - -msgid "Hosts the view applies to" -msgstr "适用于主机的视图" - -#, python-format -msgid "Added ID View \"%(value)s\"" -msgstr "已添加ID视图\"%(value)s\"" - -#, python-format -msgid "Deleted ID View \"%(value)s\"" -msgstr "已删除ID视图\"%(value)s\"" - -#, python-format -msgid "Modified an ID View \"%(value)s\"" -msgstr "已修改一个ID视图\"%(value)s\"" - -#, python-format -msgid "%(count)d ID View matched" -msgid_plural "%(count)d ID Views matched" -msgstr[0] "已匹配%(count)d个ID视图" - -msgid "Default Trust View cannot be applied on hosts" -msgstr "默认信任视图不能应用于主机上" - -msgid "not found" -msgstr "没有找到" - -msgid "ID View already applied" -msgstr "ID视图已应用" - -msgid "value" -msgstr "值" - -#, python-format -msgid "ID View applied to %i host." -msgstr "ID视图应用于%i主机。" - -#, python-format -msgid "ID View applied to %i hosts." -msgstr "ID视图应用于%i主机。" - -#, python-format -msgid "ID View cleared from %i host." -msgstr "从%i主机中清除ID视图。" - -#, python-format -msgid "ID View cleared from %i hosts." -msgstr "从%i主机中清除ID视图。" - -msgid "" -"You are trying to reference a magic private group which is not allowed to be " -"overridden. Try overriding the GID attribute of the corresponding user " -"instead." -msgstr "" -"你正尝试引用一个不允许覆盖的神奇私有组。而不是尝试覆盖对应用户的GID属性。" - -msgid "IPA object" -msgstr "IPA对象" - -#, python-format -msgid "Anchor '%(anchor)s' could not be resolved." -msgstr "锚'%(anchor)s'不能被解析。" - -msgid "Default Trust View cannot contain IPA users" -msgstr "默认信任视图不能包含IPA用户" - -msgid "Add a new ID override." -msgstr "添加一个新的ID覆盖。" - -#, python-format -msgid "Added ID override \"%(value)s\"" -msgstr "已添加ID覆盖\"%(value)s\"" - -msgid "Delete an ID override." -msgstr "删除一个ID覆盖。" - -#, python-format -msgid "Deleted ID override \"%(value)s\"" -msgstr "已删除ID覆盖\"%(value)s\"" - -msgid "Modify an ID override." -msgstr "修改一个ID覆盖。" - -#, python-format -msgid "Modified an ID override \"%(value)s\"" -msgstr "已修改一个ID覆盖\"%(value)s\"" - -msgid "ID override" -msgstr "ID覆盖" - -msgid "ID overrides cannot be renamed" -msgstr "ID覆盖不能被重命名" - -msgid "Search for an ID override." -msgstr "查找一个ID覆盖。" - -#, python-format -msgid "%(count)d ID override matched" -msgid_plural "%(count)d ID overrides matched" -msgstr[0] "已匹配%(count)d个ID覆盖" - -msgid "Display information about an ID override." -msgstr "显示一个ID覆盖信息。" - -msgid "User ID override" -msgstr "用户ID覆盖" - -msgid "User ID overrides" -msgstr "用户ID覆盖" - -msgid "Base-64 encoded user certificate" -msgstr "Base-64编码的用户证书" - -msgid "Group ID override" -msgstr "组ID覆盖" - -msgid "Group ID overrides" -msgstr "组ID覆盖" - -msgid "Add one or more certificates to the idoverrideuser entry" -msgstr "向id覆盖用户条目中添加一个或多个证书" - -#, python-format -msgid "Added certificates to idoverrideuser \"%(value)s\"" -msgstr "已添加证书到id覆盖用户\"%(value)s\"" - -msgid "Remove one or more certificates to the idoverrideuser entry" -msgstr "从id覆盖用户条目中移除一个或多个证书" - -#, python-format -msgid "Removed certificates from idoverrideuser \"%(value)s\"" -msgstr "已从id覆盖用户\"%(value)s\"中移除证书" - -#, python-format -msgid "Added User ID override \"%(value)s\"" -msgstr "已添加用户ID覆盖\"%(value)s\"" - -#, python-format -msgid "Deleted User ID override \"%(value)s\"" -msgstr "已删除用户ID覆盖\"%(value)s\"" - -#, python-format -msgid "Modified an User ID override \"%(value)s\"" -msgstr "已修改一个用户ID覆盖\"%(value)s\"" - -#, python-format -msgid "%(count)d User ID override matched" -msgid_plural "%(count)d User ID overrides matched" -msgstr[0] "已匹配%(count)d个用户ID覆盖" - -#, python-format -msgid "Added Group ID override \"%(value)s\"" -msgstr "已添加组ID覆盖\"%(value)s\"" - -#, python-format -msgid "Deleted Group ID override \"%(value)s\"" -msgstr "已删除组ID覆盖\"%(value)s\"" - -#, python-format -msgid "Modified an Group ID override \"%(value)s\"" -msgstr "已修改一个组ID覆盖\"%(value)s\"" - -#, python-format -msgid "%(count)d Group ID override matched" -msgid_plural "%(count)d Group ID overrides matched" -msgstr[0] "已匹配%(count)d个组ID覆盖" - msgid "Failed to authenticate to CA REST API" msgstr "CA REST API认证失败" @@ -9009,18 +8918,129 @@ msgstr "不能与CMS通信" msgid "Response from CA was not valid JSON" msgstr "CA响应是无效的JSON" -msgid "find not supported on CAs upgraded from 9 to 10" -msgstr "发现不支持CAs从9更新到10" +msgid "" +"\n" +"Auto Membership Rule.\n" +msgstr "" +"\n" +"自动成员规则。\n" -msgid "One time password commands" -msgstr "一次性密码命令" +msgid "" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup.\n" +msgstr "" +"\n" +"规则是和组名直接关联的,因此你不能创建一个没有组或主机组的规则。\n" -msgid "Domain Level cannot be lowered." -msgstr "域级别不能降低了。" +msgid "" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +msgstr "" +"\n" +"条件是一个用于389-ds的正则表达式来用一个自动成员规则区匹配一个新添加的条目。" +"如果它匹配一个兼容规则,那么该条目被添加到合适的组或主机组中去。\n" -#, python-brace-format -msgid "Domain Level cannot be raised to {0}, server {1} does not support it." -msgstr "域级别不能提高到{0},服务器{1}不支持它。" +msgid "" +"\n" +"A default group or hostgroup could be specified for entries that do not\n" +"match any rule. In case of user entries this group will be a fallback group\n" +"because all users are by default members of group specified in IPA config.\n" +msgstr "" +"\n" +"一个默认组或主机组可以指定给不匹配任何规则的条目。万一是用户条目,则该组会是" +"一个会退组,因为在IPA配置中所有用户默认是指定组的成员。\n" + +msgid "" +"\n" +"The automember-rebuild command can be used to retroactively run automember " +"rules\n" +"against existing entries, thus rebuilding their membership.\n" +msgstr "" +"\n" +"automember-rebuild命令可以用来对现有条目跟踪运行自动成员规则,以此来重建它们" +"的成员组。\n" + +msgid "Auto Membership Rule" +msgstr "自动成员规则" + +#, python-format +msgid "%(otype)s \"%(oname)s\" not found" +msgstr "%(otype)s \"%(oname)s\"没有找到" + +#, python-format +msgid "%s is not a valid attribute." +msgstr "%s不是一个有效的属性。" + +#, python-format +msgid "Added automember rule \"%(value)s\"" +msgstr "已添加自动成员规则\"%(value)s\"" + +msgid "Auto Membership is not configured" +msgstr "自动成员没有配置" + +#, python-format +msgid "Added condition(s) to \"%(value)s\"" +msgstr "已在\"%(value)s\"上添加条件" + +#, python-format +msgid "Auto member rule: %s not found!" +msgstr "自动成员规则:%s没有找到!" + +#, python-format +msgid "Removed condition(s) from \"%(value)s\"" +msgstr "已从\"%(value)s\"中移除条件" + +#, python-format +msgid "Modified automember rule \"%(value)s\"" +msgstr "已修改自动成员规则\"%(value)s\"" + +#, python-format +msgid "Deleted automember rule \"%(value)s\"" +msgstr "已删除自动成员规则\"%(value)s\"" + +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "已匹配%(count)d个规则" + +#, python-format +msgid "Set default (fallback) group for automember \"%(value)s\"" +msgstr "已为自动成员\"%(value)s\"设置默认(回滚)组" + +#, python-format +msgid "Removed default (fallback) group for automember \"%(value)s\"" +msgstr "已为自动成员\"%(value)s\"移除默认(回滚)组" + +msgid "No default (fallback) group set" +msgstr "没有设置(回滚)组" + +msgid "Task DN" +msgstr "任务DN" + +msgid "DN of the started task" +msgstr "已开始任务的DN" + +msgid "at least one of options: type, users, hosts must be specified" +msgstr "至少指定其中一个选项:类型,用户,主机" + +msgid "users and hosts cannot both be set" +msgstr "用户和主机不能被同时设置" + +msgid "hosts cannot be set when type is 'group'" +msgstr "当类型是'group'是主机不能被设置" + +msgid "users cannot be set when type is 'hostgroup'" +msgstr "当类型是'hostgroup'是用户不能被设置" + +msgid "Automember rebuild membership task started" +msgstr "自动成员重建成员关系任务已开始" + +#, python-format +msgid "Task DN = '%s'" +msgstr "任务DN = '%s'" msgid "" "\n" @@ -9251,34 +9271,37 @@ msgid "%(count)d permission matched" msgid_plural "%(count)d permissions matched" msgstr[0] "已匹配%(count)d个权限" -msgid "" -"\n" -"Baseuser\n" -"\n" -"This contains common definitions for user/stageuser\n" -msgstr "" -"\n" -"基类用户\n" -"\n" -"这包含了用户/计划用户常见的定义\n" +msgid "HBAC service group" +msgstr "HBAC服务组" -msgid "must be TRUE or FALSE" -msgstr "必须是TRUE或FALSE" +msgid "HBAC service groups" +msgstr "HBAC服务组" -msgid "SSH public key fingerprint" -msgstr "SSH公钥指纹" +msgid "HBAC Service Groups" +msgstr "HBAC服务组" + +msgid "HBAC Service Group" +msgstr "HBAC服务组" #, python-format -msgid "invalid e-mail format: %(email)s" -msgstr "无效的电子邮件格式:%(email)s" +msgid "Added HBAC service group \"%(value)s\"" +msgstr "已添加HBAC服务组\"%(value)s\"" #, python-format -msgid "manager %(manager)s not found" -msgstr "管理员%(manager)s没有找到" +msgid "Deleted HBAC service group \"%(value)s\"" +msgstr "已删除HBAC服务组\"%(value)s\"" #, python-format -msgid "can be at most %(len)d characters" -msgstr "最多%(len)d个字符" +msgid "Modified HBAC service group \"%(value)s\"" +msgstr "已修改HBAC服务组\"%(value)s\"" + +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "已匹配%(count)d个HBAC服务组" + +msgid "Could not read UPG Definition originfilter. Check your permissions." +msgstr "不能读UPG原过滤器定义。检查你的权限。" msgid "self service permission" msgstr "自助服务权限" @@ -9309,160 +9332,87 @@ msgid "%(count)d selfservice matched" msgid_plural "%(count)d selfservices matched" msgstr[0] "已匹配%(count)d个自助服务" -msgid "HBAC rule and local members cannot both be set" -msgstr "HBAC规则和本地成员不能被同时设置" - -msgid "Invalid SELinux user name, only a-Z and _ are allowed" -msgstr "无效的SELinux用户名,仅允许a-Z和_" - -msgid "Invalid MLS value, must match s[0-15](-s[0-15])" -msgstr "无效的MLS值,必须匹配s[0-15](-s[0-15])" +msgid "" +"\n" +"IPA locations\n" +msgstr "" +"\n" +"IPA位置\n" msgid "" -"Invalid MCS value, must match c[0-1023].c[0-1023] and/or c[0-1023]-c[0-c0123]" -msgstr "无效的MCS值,必须匹配c[0-1023].c[0-1023] and/or c[0-1023]-c[0-c0123]" +"\n" +"Manipulate DNS locations\n" +msgstr "" +"\n" +"设置DNS位置\n" -msgid "SELinux user map list not found in configuration" -msgstr "SELinux用户映射列表在配置中没有找到" +msgid "location" +msgstr "位置" + +msgid "locations" +msgstr "位置" + +msgid "IPA Locations" +msgstr "IPA位置" + +msgid "IPA Location" +msgstr "IPA位置" + +msgid "Location name" +msgstr "位置名" + +msgid "IPA location name" +msgstr "IPA位置名" + +msgid "IPA Location description" +msgstr "IPA本地描述" + +msgid "Servers" +msgstr "服务器" + +msgid "Servers that belongs to the IPA location" +msgstr "属于IPA位置的服务器" + +msgid "Advertised by servers" +msgstr "由服务器公布" + +msgid "List of servers which advertise the given location" +msgstr "公布给出位置的服务器列表" + +msgid "Add a new IPA location." +msgstr "添加一个新的IPA位置。" #, python-format -msgid "SELinux user %(user)s not found in ordering list (in config)" -msgstr "SELinux用户%(user)s在顺序列表中(配置)没有找到" +msgid "Added IPA location \"%(value)s\"" +msgstr "已添加IPA位置\"%(value)s\"" -msgid "SELinux User Map rule" -msgstr "SELinux用户映射规则" - -msgid "SELinux User Map rules" -msgstr "SELinux用户映射规则" - -msgid "SELinux User Maps" -msgstr "SELinux用户映射规则" - -msgid "SELinux User Map" -msgstr "SELinux用户映射规则" +msgid "Delete an IPA location." +msgstr "删除一个IPA位置。" #, python-format -msgid "HBAC rule %(rule)s not found" -msgstr "HBAC规则%(rule)s没有找到" +msgid "Deleted IPA location \"%(value)s\"" +msgstr "已删除IPA位置\"%(value)s\"" + +msgid "Modify information about an IPA location." +msgstr "修改一个IPA位置信息。" #, python-format -msgid "Added SELinux User Map \"%(value)s\"" -msgstr "已添加SELinux用户映射\"%(value)s\"" +msgid "Modified IPA location \"%(value)s\"" +msgstr "已修改IPA位置\"%(value)s\"" + +msgid "Search for IPA locations." +msgstr "查找IPA位置。" #, python-format -msgid "Deleted SELinux User Map \"%(value)s\"" -msgstr "已删除SELinux用户映射\"%(value)s\"" +msgid "%(count)d IPA location matched" +msgid_plural "%(count)d IPA locations matched" +msgstr[0] "已匹配%(count)d个IPA位置" -#, python-format -msgid "Modified SELinux User Map \"%(value)s\"" -msgstr "已修改SELinux用户映射\"%(value)s\"" +msgid "Display information about an IPA location." +msgstr "显示一个IPA位置信息。" -#, python-format -msgid "%(count)d SELinux User Map matched" -msgid_plural "%(count)d SELinux User Maps matched" -msgstr[0] "已匹配%(count)d个SELinux用户映射" - -#, python-format -msgid "Enabled SELinux User Map \"%(value)s\"" -msgstr "已启用SELinux用户映射\"%(value)s\"" - -#, python-format -msgid "Disabled SELinux User Map \"%(value)s\"" -msgstr "已禁用SELinux用户映射\"%(value)s\"" - -msgid "Base-64 encoded host certificate" -msgstr "Base-64编码的主机证书" - -#, python-format -msgid "Added host \"%(value)s\"" -msgstr "新增主机 \"%(value)s\"" - -#, python-format -msgid "The host was added but the DNS update failed with: %(exc)s" -msgstr "主机已添加但DNS更新失败:%(exc)s" - -#, python-format -msgid "Deleted host \"%(value)s\"" -msgstr "已删除主机 \"%(value)s\"" - -msgid "Remove A, AAAA, SSHFP and PTR records of the host(s) managed by IPA DNS" -msgstr "移除被IPA DNS管理的主机的A,AAAA,SSHFP和PTR记录" - -msgid "No A, AAAA, SSHFP or PTR records found." -msgstr "没有找到A,AAAA,SSHFP和PTR记录。" - -#, python-format -msgid "Modified host \"%(value)s\"" -msgstr "已修改主机 \"%(value)s\"" - -msgid "Password cannot be set on enrolled host." -msgstr "密码不能在注册主机上设置。" - -msgid "cn is immutable" -msgstr "cn是不变的" - -#, python-format -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "已匹配%(count)d个主机" - -#, python-format -msgid "Disabled host \"%(value)s\"" -msgstr "已禁用主机\"%(value)s\"" - -#, python-format -msgid "Added certificates to host \"%(value)s\"" -msgstr "已向主机\"%(value)s\"中添加证书" - -#, python-format -msgid "Removed certificates from host \"%(value)s\"" -msgstr "已从主机\"%(value)s\"中移除证书" - -msgid "Add new principal alias to host entry" -msgstr "为主机条目添加新的主体别名" - -#, python-format -msgid "Added new aliases to host \"%(value)s\"" -msgstr "已为主机\"%(value)s\"添加新别名" - -msgid "Remove principal alias from a host entry" -msgstr "从一个主机条目中移除主体别名" - -#, python-format -msgid "Removed aliases from host \"%(value)s\"" -msgstr "已从主机\"%(value)s\"中移除别名" - -msgid "HBAC service group" -msgstr "HBAC服务组" - -msgid "HBAC service groups" -msgstr "HBAC服务组" - -msgid "HBAC Service Groups" -msgstr "HBAC服务组" - -msgid "HBAC Service Group" -msgstr "HBAC服务组" - -#, python-format -msgid "Added HBAC service group \"%(value)s\"" -msgstr "已添加HBAC服务组\"%(value)s\"" - -#, python-format -msgid "Deleted HBAC service group \"%(value)s\"" -msgstr "已删除HBAC服务组\"%(value)s\"" - -#, python-format -msgid "Modified HBAC service group \"%(value)s\"" -msgstr "已修改HBAC服务组\"%(value)s\"" - -#, python-format -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" -msgstr[0] "已匹配%(count)d个HBAC服务组" - -msgid "must contain a tuple (list, dict)" -msgstr "必须包含一个元组(列表,字典)" +msgid "Servers in location" +msgstr "本地服务器" msgid "A list of ACI values" msgstr "ACI值列表" @@ -9530,255 +9480,567 @@ msgstr[0] "%(count)d个ACI已匹配" msgid "Renamed ACI to \"%(value)s\"" msgstr "已重命名ACI为\"%(value)s\"" -msgid "Host-based access control commands" -msgstr "基于主机访问控制命令" +msgid "" +"\n" +"IPA servers\n" +msgstr "" +"\n" +"IPA服务器\n" msgid "" "\n" -"DNS server configuration\n" +"Get information about installed IPA servers.\n" msgstr "" "\n" -"DNS服务器配置\n" +"获取安装IPA服务器信息。\n" + +msgid "server" +msgstr "服务器" + +msgid "servers" +msgstr "服务器" + +msgid "IPA Servers" +msgstr "IPA服务器" + +msgid "Server location" +msgstr "服务器位置" + +msgid "Weight for server services" +msgstr "服务器服务权重" + +msgid "Enabled server roles" +msgstr "已启用服务器角色" + +msgid "List of enabled roles" +msgstr "已启用角色列表" + +msgid "Modify information about an IPA server." +msgstr "修改一个IPA服务器信息。" + +#, python-format +msgid "Modified IPA server \"%(value)s\"" +msgstr "已修改IPA服务器\"%(value)s\"" + +#, python-format +msgid "%(count)d IPA server matched" +msgid_plural "%(count)d IPA servers matched" +msgstr[0] "已匹配%(count)d个IPA服务器" + +#, python-format +msgid "Deleted IPA server \"%(value)s\"" +msgstr "已删除IPA服务器\"%(value)s\"" + +msgid "Ignore topology errors" +msgstr "忽略拓扑错误" + +msgid "Ignore topology connectivity problems after removal" +msgstr "删除后忽略拓扑连通性问题" + +msgid "Ignore check for last remaining CA or DNS server" +msgstr "不检查最后的CA或DNS服务器" + +msgid "Skip a check whether the last CA master or DNS server is removed" +msgstr "不检查最后一个CA主服务器或DNS服务器是否被删除了" + +msgid "Force server removal" +msgstr "强制服务器删除" + +msgid "Force server removal even if it does not exist" +msgstr "强制服务器删除即使它不存在" + +msgid "" +"Replica is active DNSSEC key master. Uninstall could break your DNS system. " +"Please disable or replace DNSSEC key master first." +msgstr "" +"副本是活跃的DNSSEC密钥主机。卸载会导致你DNS系统崩溃。首先请禁用或替代DNSSEC密" +"钥主机。" + +msgid "Deleting this server will leave your installation without a DNS." +msgstr "删除这台服务器将使得你的安装过程没有DNS。" + +msgid "" +"Deleting this server is not allowed as it would leave your installation " +"without a CA." +msgstr "删除这台服务器是不允许的因为这将导致你的安装过程没有CA。" + +msgid "Ignoring these warnings and proceeding with removal" +msgstr "忽略这些警告并给予清除" + +#, python-format +msgid "" +"Failed to clean memberPrincipal %(principal)s from s4u2proxy entry %(dn)s: " +"%(err)s" +msgstr "从s4u2proxy条目%(dn)s中清除成员主体%(principal)s失败:%(err)s" + +#, python-format +msgid "Failed to clean up DNA hostname entries for %(master)s: %(err)s" +msgstr "为%(master)s清除DNA主机名条目失败:%(err)s" + +#, python-format +msgid "Failed to remove server %(master)s from server list: %(err)s" +msgstr "从服务器列表中删除服务器%(master)s失败:%(err)s" + +#, python-format +msgid "Failed to clean up Custodia keys for %(master)s: %(err)s" +msgstr "为%(master)s清除Custodia密钥失败:%(err)s" + +#, python-format +msgid "Failed to cleanup server principals/keys: %(err)s" +msgstr "清除服务器主体/密钥失败:%(err)s" + +#, python-format +msgid "Failed to cleanup %(hostname)s DNS entries: %(err)s" +msgstr "清除%(hostname)s DNS条目失败:%(err)s" + +msgid "You may need to manually remove them from the tree" +msgstr "你可能需要从树中手动删除它们" + +#, python-format +msgid "Forcing removal of %(hostname)s" +msgstr "强制删除%(hostname)s" + +msgid "Ignoring topology connectivity errors." +msgstr "忽略拓扑连通性错误。" + +msgid "Server has already been deleted" +msgstr "服务器已被删除" + +msgid "Agreements deleted" +msgstr "协议已删除" + +msgid "Following segments were not deleted:" +msgstr "下面部分没有被删除:" + +#, python-format +msgid "must be \"%s\"" +msgstr "必须是\"%s\"" + +msgid "not allowed to perform server connection check" +msgstr "不允许执行服务器连接检查" + +msgid "Member service groups" +msgstr "成员服务组" + +msgid "Member HBAC service groups" +msgstr "成员HBAC服务组" + +msgid "Indirect Member permissions" +msgstr "间接成员权限" + +msgid "Indirect Member HBAC service" +msgstr "间接成员HBAC服务" + +msgid "Indirect Member HBAC service group" +msgstr "间接成员HBAC服务组" + +msgid "Invalid format. Should be name=value" +msgstr "无效的格式。应该是“名称=值”" + +msgid "An IPA master host cannot be deleted or disabled" +msgstr "IPA主主机不能被删除或禁用" + +msgid "entry" +msgstr "条目" + +msgid "entries" +msgstr "条目" + +msgid "Entry" +msgstr "条目" + +#, python-format +msgid "container entry (%(container)s) not found" +msgstr "容器条目(%(container)s)没有找到" + +#, python-format +msgid "%(parent)s: %(oname)s not found" +msgstr "%(parent)s:%(oname)s没有找到" + +#, python-format +msgid "%(pkey)s: %(oname)s not found" +msgstr "%(pkey)s:%(oname)s没有找到" + +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" +msgstr "名为\"%(pkey)s\"的%(oname)s已存在" + +#, python-format +msgid "attribute \"%(attribute)s\" not allowed" +msgstr "不支持属性\"%(attribute)s\"" + +msgid "attribute is not configurable" +msgstr "属性没有配置" + +msgid "No such attribute on this entry" +msgstr "该条目没有这样的属性" + +#, python-format +msgid "Rename the %(ldap_obj_name)s object" +msgstr "重命名%(ldap_obj_name)s对象" + +msgid "the entry was deleted while being modified" +msgstr "正被修改的条目已被删除" + +#, python-format +msgid "%s to add" +msgstr "待添加的%s" + +#, python-format +msgid "%s to remove" +msgstr "待移除的%s" + +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" +msgstr "结果应该只包括主键属性(\"%s\")" + +#, python-format +msgid "" +"Search for %(searched_object)s with these %(relationship)s %(ldap_object)s." +msgstr "查找有这些%(relationship)s %(ldap_object)s的%(searched_object)s。" + +#, python-format +msgid "" +"Search for %(searched_object)s without these %(relationship)s " +"%(ldap_object)s." +msgstr "查找没有%(relationship)s %(ldap_object)s的%(searched_object)s。" + +#, python-format +msgid "'%(attr)s' already contains one or more values" +msgstr "'%(attr)s'已包含一个或多个值" + +msgid "one or more values to remove" +msgstr "待移除的一个或多个值" + +msgid "Base-64 encoded host certificate" +msgstr "Base-64编码的主机证书" + +msgid "SSH public key fingerprint" +msgstr "SSH公钥指纹" + +#, python-format +msgid "Added host \"%(value)s\"" +msgstr "新增主机 \"%(value)s\"" + +#, python-format +msgid "The host was added but the DNS update failed with: %(exc)s" +msgstr "主机已添加但DNS更新失败:%(exc)s" + +#, python-format +msgid "Deleted host \"%(value)s\"" +msgstr "已删除主机 \"%(value)s\"" + +msgid "Remove A, AAAA, SSHFP and PTR records of the host(s) managed by IPA DNS" +msgstr "移除被IPA DNS管理的主机的A,AAAA,SSHFP和PTR记录" + +msgid "No A, AAAA, SSHFP or PTR records found." +msgstr "没有找到A,AAAA,SSHFP和PTR记录。" + +#, python-format +msgid "Modified host \"%(value)s\"" +msgstr "已修改主机 \"%(value)s\"" + +msgid "Password cannot be set on enrolled host." +msgstr "密码不能在注册主机上设置。" + +msgid "cn is immutable" +msgstr "cn是不变的" + +#, python-format +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "已匹配%(count)d个主机" + +#, python-format +msgid "Disabled host \"%(value)s\"" +msgstr "已禁用主机\"%(value)s\"" + +#, python-format +msgid "Added certificates to host \"%(value)s\"" +msgstr "已向主机\"%(value)s\"中添加证书" + +#, python-format +msgid "Removed certificates from host \"%(value)s\"" +msgstr "已从主机\"%(value)s\"中移除证书" + +msgid "Add new principal alias to host entry" +msgstr "为主机条目添加新的主体别名" + +#, python-format +msgid "Added new aliases to host \"%(value)s\"" +msgstr "已为主机\"%(value)s\"添加新别名" + +msgid "Remove principal alias from a host entry" +msgstr "从一个主机条目中移除主体别名" + +#, python-format +msgid "Removed aliases from host \"%(value)s\"" +msgstr "已从主机\"%(value)s\"中移除别名" + +msgid "host groups" +msgstr "主机组" + +msgid "Host Group" +msgstr "主机组" + +#, python-format +msgid "Added hostgroup \"%(value)s\"" +msgstr "已添加主机组\"%(value)s\"" + +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" +msgstr "网络组名\"%s\"已存在。主机组和网络组共享一个共同的名字空间" + +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" +msgstr "已删除主机组\"%(value)s\"" + +msgid "hostgroup" +msgstr "主机组" + +msgid "privileged hostgroup" +msgstr "特权主机组" + +#, python-format +msgid "Modified hostgroup \"%(value)s\"" +msgstr "已修改主机组\"%(value)s\"" + +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "已匹配%(count)d个主机组" + +msgid "configuration options" +msgstr "配置选项" + +msgid "Configuration" +msgstr "配置" + +msgid "IPA masters" +msgstr "IPA主服务器" + +msgid "List of all IPA masters" +msgstr "所有IPA主服务器列表" + +msgid "IPA CA servers" +msgstr "IPA CA服务器" + +msgid "IPA servers configured as certificate authority" +msgstr "IPA服务器配置为证书认证机构" + +msgid "IPA NTP servers" +msgstr "IPA NTP服务器" + +msgid "IPA servers with enabled NTP" +msgstr "启用NTP的IPA服务器" + +msgid "IPA CA renewal master" +msgstr "IPA CA更新主服务器" + +msgid "Renewal master for IPA certificate authority" +msgstr "为IPA证书认证机构更新主服务器" + +msgid "The group doesn't exist" +msgstr "组不存在" + +#, python-format +msgid "attribute \"%s\" not allowed" +msgstr "不允许属性\"%s\"" + +msgid "May not be empty" +msgstr "可能不是闲置的" + +#, python-format +msgid "%(obj)s default attribute %(attr)s would not be allowed!" +msgstr "%(obj)s默认属性%(attr)s是不允许的!" + +msgid "A list of SELinux users delimited by $ expected" +msgstr "SELinux用户列表期望以$分隔" + +#, python-format +msgid "SELinux user '%(user)s' is not valid: %(error)s" +msgstr "SELinux用户'%(user)s'是无效的:%(error)s" + +msgid "SELinux user map default user not in order list" +msgstr "SELinux用户映射默认用户没有在列表中" + +msgid "CA category" +msgstr "CA类别" + +msgid "CA category the ACL applies to" +msgstr "ACL应用的CA类别" + +#, python-format +msgid "Added CA ACL \"%(value)s\"" +msgstr "已添加CA ACL\"%(value)s\"" + +#, python-format +msgid "Deleted CA ACL \"%(value)s\"" +msgstr "已删除CA ACL\"%(value)s\"" + +msgid "default CA ACL can be only disabled" +msgstr "默认的CA ACL只可以被禁用" + +#, python-format +msgid "Modified CA ACL \"%(value)s\"" +msgstr "已修改CA ACL\"%(value)s\"" + +msgid "CA category cannot be set to 'all' while there are allowed CAs" +msgstr "CA类别不能设置为all',虽然有允许CAs" + +msgid "" +"profile category cannot be set to 'all' while there are allowed profiles" +msgstr "配置文件类别不能设置为all',虽然有允许配置文件" + +#, python-format +msgid "%(count)d CA ACL matched" +msgid_plural "%(count)d CA ACLs matched" +msgstr[0] "已匹配%(count)d个CA ACL" + +#, python-format +msgid "Enabled CA ACL \"%(value)s\"" +msgstr "已启用CA ACL\"%(value)s\"" + +#, python-format +msgid "Disabled CA ACL \"%(value)s\"" +msgstr "已禁用CA ACL\"%(value)s\"" + +#, python-format +msgid "%i user or group added." +msgstr "%i用户或组已添加。" + +#, python-format +msgid "%i users or groups added." +msgstr "%i用户或用户组已添加。" + +#, python-format +msgid "%i user or group removed." +msgstr "%i用户或组已移除。" + +#, python-format +msgid "%i users or groups removed." +msgstr "%i用户或用户组已移除。" + +#, python-format +msgid "%i host or hostgroup added." +msgstr "%i主机或主机组已添加。" + +#, python-format +msgid "%i hosts or hostgroups added." +msgstr "%i主机或主机组已添加。" + +#, python-format +msgid "%i host or hostgroup removed." +msgstr "%i主机或主机组已移除。" + +#, python-format +msgid "%i hosts or hostgroups removed." +msgstr "%i主机或主机组已移除。" + +#, python-format +msgid "%i service added." +msgstr "%i服务已添加。" + +#, python-format +msgid "%i services added." +msgstr "%i服务已添加。" + +#, python-format +msgid "%i service removed." +msgstr "%i服务已移除。" + +#, python-format +msgid "%i services removed." +msgstr "%i服务已移除。" + +#, python-format +msgid "%i profile added." +msgstr "%i配置文件已添加。" + +#, python-format +msgid "%i profiles added." +msgstr "%i配置文件已添加。" + +msgid "profiles cannot be added when profile category='all'" +msgstr "当配置文件类别='all'时配置文件不能被添加" + +#, python-format +msgid "%i profile removed." +msgstr "%i配置文件已移除。" + +#, python-format +msgid "%i profiles removed." +msgstr "%i配置文件已移除。" + +msgid "Add CAs to a CA ACL." +msgstr "向一个CA ACL中添加CAs。" + +#, python-format +msgid "%i CA added." +msgstr "%iCA已添加。" + +#, python-format +msgid "%i CAs added." +msgstr "%iCAs已添加。" + +msgid "CAs cannot be added when CA category='all'" +msgstr "当CA类别='all'时CAs不能被添加" + +msgid "Remove CAs from a CA ACL." +msgstr "从一个CA ACL中移除CAs。" + +#, python-format +msgid "%i CA removed." +msgstr "%iCA已移除。" + +#, python-format +msgid "%i CAs removed." +msgstr "%iCAs已移除。" + +msgid "Unresolved rules in --rules" +msgstr "在--rules中不能解析的规则" + +msgid "" +"Cannot perform external member validation without Samba 4 support installed. " +"Make sure you have installed server-trust-ad sub-package of IPA on the server" +msgstr "" +"没有安装Samba 4不能执行外部成员验证。确认你已经在IPA服务器上安装了server-" +"trust-ad子包" + +msgid "" +"Cannot search in trusted domains without own domain configured. Make sure " +"you have run ipa-adtrust-install on the IPA server first" +msgstr "" +"没有自己的域配置不能在信任域中查找。首先确认你已经在IPA服务器上运行了ipa-" +"adtrust-install命令" + +#, python-format +msgid "Access granted: %s" +msgstr "访问授权:%s" msgid "" "\n" -"Manipulate DNS server configuration\n" +"Baseuser\n" +"\n" +"This contains common definitions for user/stageuser\n" msgstr "" "\n" -"设置DNS服务器配置\n" - -msgid "DNS server" -msgstr "DNS服务器" - -msgid "DNS servers" -msgstr "DNS服务器" - -msgid "DNS Servers" -msgstr "DNS服务器" - -msgid "DNS Server" -msgstr "DNS服务器" - -msgid "DNS Server name" -msgstr "DNS服务器名" - -msgid "SOA mname override" -msgstr "SOA mname覆盖" - -msgid "SOA mname (authoritative server) override" -msgstr "SOA mname(权威服务器)覆盖" - -msgid "Forwarders" -msgstr "转发器" - -msgid "" -"Per-server forwarders. A custom port can be specified for each forwarder " -"using a standard format \"IP_ADDRESS port PORT\"" -msgstr "" -"Per-server转发器。使用标准格式\"IP_ADDRESS port PORT\"为每个转发器指定一个自" -"定义端口" - -msgid "" -"Per-server conditional forwarding policy. Set to \"none\" to disable " -"forwarding to global forwarder for this zone. In that case, conditional zone " -"forwarders are disregarded." -msgstr "" -"Per-server有条件的转发器策略。设置为\"none\"来禁止该区域转发至全局转发器。那" -"样的话,有条件的区域转发器被忽视了。" - -msgid "DNS is not configured" -msgstr "DNS没有配置" - -msgid "Modify DNS server configuration" -msgstr "修改DNS服务器配置" - -#, python-format -msgid "Modified DNS server \"%(value)s\"" -msgstr "已修改DNS服务器\"%(value)s\"" - -msgid "Search for DNS servers." -msgstr "查找DNS服务器。" - -#, python-format -msgid "%(count)d DNS server matched" -msgid_plural "%(count)d DNS servers matched" -msgstr[0] "已匹配%(count)d个DNS服务器" - -msgid "Display configuration of a DNS server." -msgstr "显示一个DNS服务器配置。" - -msgid "Add a new DNS server." -msgstr "添加一个新的DNS服务器。" - -#, python-format -msgid "Added new DNS server \"%(value)s\"" -msgstr "已添加新的DNS服务器\"%(value)s\"" - -msgid "Delete a DNS server" -msgstr "删除一个DNS服务器" - -#, python-format -msgid "Deleted DNS server \"%(value)s\"" -msgstr "已删除DNS服务器\"%(value)s\"" - -msgid "HBAC services" -msgstr "HBAC服务" - -msgid "HBAC Services" -msgstr "HBAC服务" - -msgid "HBAC Service" -msgstr "HBAC服务" - -#, python-format -msgid "Added HBAC service \"%(value)s\"" -msgstr "已添加HBAC服务\"%(value)s\"" - -#, python-format -msgid "Deleted HBAC service \"%(value)s\"" -msgstr "已删除HBAC服务\"%(value)s\"" - -#, python-format -msgid "Modified HBAC service \"%(value)s\"" -msgstr "已修改HBAC服务\"%(value)s\"" - -#, python-format -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" -msgstr[0] "已匹配%(count)d个HBAC服务" - -msgid "domain" -msgstr "域" - -msgid "" +"基类用户\n" "\n" -"Manage Certificate Authorities\n" -msgstr "" -"\n" -"管理证书颁发机构\n" +"这包含了用户/计划用户常见的定义\n" -msgid "" -"\n" -"Subordinate Certificate Authorities (Sub-CAs) can be added for scoped " -"issuance\n" -"of X.509 certificates.\n" -msgstr "" -"\n" -"从属证书颁发机构(Sub-CAs)可以当作是X.509证书的发行范围。\n" - -msgid "" -"\n" -"All CAs except the 'IPA' CA can be disabled or re-enabled. Disabling a CA\n" -"prevents it from issuing certificates but does not affect the validity of " -"its\n" -"certificate.\n" -msgstr "" -"\n" -"所有的CAs除了'IPA' CA都可以被禁用或重新启用。禁用一个CA会阻止它发布证书,但不" -"会影响它的证书的有效性。\n" - -msgid "" -"\n" -"CAs (all except the 'IPA' CA) can be deleted. Deleting a CA causes its " -"signing\n" -"certificate to be revoked and its private key deleted.\n" -msgstr "" -"\n" -"CAs (除了'IPA' CA)都可以被删除。删除一个CA会撤销它的签名证书并删除它的私" -"钥。\n" - -msgid "Certificate Authority" -msgstr "证书颁发机构" - -msgid "Certificate Authorities" -msgstr "证书颁发机构" - -msgid "Name" -msgstr "名称" - -msgid "Description of the purpose of the CA" -msgstr "CA描述的目的" - -msgid "Authority ID" -msgstr "授权ID" - -msgid "Dogtag Authority ID" -msgstr "Dogtag授权ID" - -msgid "Subject DN" -msgstr "证书持有者名字" - -msgid "Subject Distinguished Name" -msgstr "主题的专有名称" - -msgid "Issuer DN" -msgstr "证书颁发机构名字" - -msgid "Issuer Distinguished Name" -msgstr "发行人专有名称" - -msgid "Base-64 encoded certificate." -msgstr "Base-64编码的证书。" - -msgid "Search for CAs." -msgstr "查找CAs。" +msgid "must be TRUE or FALSE" +msgstr "必须是TRUE或FALSE" #, python-format -msgid "%(count)d CA matched" -msgid_plural "%(count)d CAs matched" -msgstr[0] "已匹配%(count)d个CA" - -msgid "Display the properties of a CA." -msgstr "显示一个CA属性。" - -msgid "Create a CA." -msgstr "创建一个CA。" +msgid "invalid e-mail format: %(email)s" +msgstr "无效的电子邮件格式:%(email)s" #, python-format -msgid "Created CA \"%(value)s\"" -msgstr "已创建CA\"%(value)s\"" - -#, python-format -msgid "Insufficient 'add' privilege for entry '%s'." -msgstr "对条目'%s'没有'add'权限。" - -#, python-format -msgid "Subject DN is already used by CA '%s'" -msgstr "主题DN已被CA'%s'使用" - -msgid "Delete a CA." -msgstr "删除一个CA。" - -#, python-format -msgid "Deleted CA \"%(value)s\"" -msgstr "已删除CA\"%(value)s\"" - -msgid "IPA CA cannot be deleted" -msgstr "IPA CA不能被删除" - -msgid "Modify CA configuration." -msgstr "修改CA配置。" - -#, python-format -msgid "Modified CA \"%(value)s\"" -msgstr "已修改CA\"%(value)s\"" - -msgid "Disable a CA." -msgstr "禁用一个CA。" - -#, python-format -msgid "Disabled CA \"%(value)s\"" -msgstr "已禁用CA\"%(value)s\"" - -msgid "IPA CA cannot be disabled" -msgstr "IPA CA不能被禁用" - -msgid "Enable a CA." -msgstr "启用一个CA。" - -#, python-format -msgid "Enabled CA \"%(value)s\"" -msgstr "已启用CA\"%(value)s\"" +msgid "manager %(manager)s not found" +msgstr "管理员%(manager)s没有找到" #, python-format msgid "" @@ -9832,6 +10094,528 @@ msgstr "" msgid "Default group for new users not found" msgstr "新用户的默认组没有找到" +msgid "One time password commands" +msgstr "一次性密码命令" + +msgid "HBAC rule and local members cannot both be set" +msgstr "HBAC规则和本地成员不能被同时设置" + +msgid "Invalid SELinux user name, only a-Z and _ are allowed" +msgstr "无效的SELinux用户名,仅允许a-Z和_" + +msgid "Invalid MLS value, must match s[0-15](-s[0-15])" +msgstr "无效的MLS值,必须匹配s[0-15](-s[0-15])" + +msgid "" +"Invalid MCS value, must match c[0-1023].c[0-1023] and/or c[0-1023]-c[0-c0123]" +msgstr "无效的MCS值,必须匹配c[0-1023].c[0-1023] and/or c[0-1023]-c[0-c0123]" + +msgid "SELinux user map list not found in configuration" +msgstr "SELinux用户映射列表在配置中没有找到" + +#, python-format +msgid "SELinux user %(user)s not found in ordering list (in config)" +msgstr "SELinux用户%(user)s在顺序列表中(配置)没有找到" + +msgid "SELinux User Map rule" +msgstr "SELinux用户映射规则" + +msgid "SELinux User Map rules" +msgstr "SELinux用户映射规则" + +msgid "SELinux User Maps" +msgstr "SELinux用户映射规则" + +msgid "SELinux User Map" +msgstr "SELinux用户映射规则" + +#, python-format +msgid "HBAC rule %(rule)s not found" +msgstr "HBAC规则%(rule)s没有找到" + +#, python-format +msgid "Added SELinux User Map \"%(value)s\"" +msgstr "已添加SELinux用户映射\"%(value)s\"" + +#, python-format +msgid "Deleted SELinux User Map \"%(value)s\"" +msgstr "已删除SELinux用户映射\"%(value)s\"" + +#, python-format +msgid "Modified SELinux User Map \"%(value)s\"" +msgstr "已修改SELinux用户映射\"%(value)s\"" + +#, python-format +msgid "%(count)d SELinux User Map matched" +msgid_plural "%(count)d SELinux User Maps matched" +msgstr[0] "已匹配%(count)d个SELinux用户映射" + +#, python-format +msgid "Enabled SELinux User Map \"%(value)s\"" +msgstr "已启用SELinux用户映射\"%(value)s\"" + +#, python-format +msgid "Disabled SELinux User Map \"%(value)s\"" +msgstr "已禁用SELinux用户映射\"%(value)s\"" + +msgid "" +"\n" +"API Schema\n" +msgstr "" +"\n" +"API 模式\n" + +msgid "" +"\n" +"Provides API introspection capabilities.\n" +msgstr "" +"\n" +"提供API自省能力。\n" + +msgid "Documentation" +msgstr "文档" + +msgid "Exclude from" +msgstr "排斥" + +msgid "Include in" +msgstr "包含" + +msgid "Help topic" +msgstr "帮助主题" + +msgid "Parameters" +msgstr "参数" + +msgid "Method of" +msgstr "方法" + +msgid "Method name" +msgstr "方法名" + +msgid "Display information about a command." +msgstr "显示一个命令信息。" + +msgid "Search for commands." +msgstr "查找命令。" + +msgid "Display information about a class." +msgstr "显示一个类信息。" + +msgid "Search for classes." +msgstr "查找类。" + +msgid "Display information about a help topic." +msgstr "显示一个帮助主题信息。" + +msgid "Search for help topics." +msgstr "查找帮助主题。" + +msgid "Required" +msgstr "必需的" + +msgid "Multi-value" +msgstr "多值" + +msgid "Always ask" +msgstr "总是询问" + +msgid "CLI name" +msgstr "CLI名称" + +msgid "Confirm (password)" +msgstr "确认(密码)" + +msgid "Default" +msgstr "默认" + +msgid "Default from" +msgstr "默认的" + +msgid "Label" +msgstr "级别" + +msgid "Convert on server" +msgstr "在服务器上转换" + +msgid "Option group" +msgstr "选项组" + +msgid "Sensitive" +msgstr "敏感的" + +msgid "Positional argument" +msgstr "位置参数" + +msgid "Display information about a command parameter." +msgstr "显示一个命令参数信息。" + +msgid "Search command parameters." +msgstr "查找命令参数。" + +msgid "Display information about a command output." +msgstr "显示一个命令输出信息。" + +msgid "Search for command outputs." +msgstr "查找命令输出。" + +msgid "Fingerprint of schema cached by client" +msgstr "客户端缓存的模式指纹" + +msgid "Host-based access control commands" +msgstr "基于主机访问控制命令" + +msgid "sudo command group" +msgstr "sudo命令组" + +msgid "sudo command groups" +msgstr "sudo命令组" + +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" +msgstr "已添加Sudo命令组\"%(value)s\"" + +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" +msgstr "已删除Sudo命令组\"%(value)s\"" + +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" +msgstr "已修改Sudo命令组\"%(value)s\"" + +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "已匹配%(count)d个Sudo命令组" + +#, python-format +msgid "Added user \"%(value)s\"" +msgstr "已添加用户\"%(value)s\"" + +msgid "Default group for new users is not POSIX" +msgstr "新用户的默认组不是POSIX" + +#, python-format +msgid "Deleted user \"%(value)s\"" +msgstr "已删除用户\"%(value)s\"" + +#, python-format +msgid "%s: user is already preserved" +msgstr "%s:用户已保存" + +#, python-format +msgid "Modified user \"%(value)s\"" +msgstr "已修改用户\"%(value)s\"" + +#, python-format +msgid "Undeleted user account \"%(value)s\"" +msgstr "已恢复用户账户\"%(value)s\"" + +#, python-format +msgid "user \"%s\" is already active" +msgstr "用户%s已是活跃的" + +#, python-format +msgid "Disabled user account \"%(value)s\"" +msgstr "已禁用用户账户\"%(value)s\"" + +#, python-format +msgid "Enabled user account \"%(value)s\"" +msgstr "已启用用户账户\"%(value)s\"" + +#, python-format +msgid "Unlocked account \"%(value)s\"" +msgstr "已解锁账户\"%(value)s\"" + +msgid "Failed logins" +msgstr "登录失败" + +msgid "Last successful authentication" +msgstr "上一次认证成功" + +msgid "Last failed authentication" +msgstr "上一次认证失败" + +msgid "Time now" +msgstr "当前时间" + +#, python-format +msgid "%(host)s failed: %(error)s" +msgstr "%(host)s已失败:%(error)s" + +#, python-format +msgid "%(host)s failed" +msgstr "%(host)s已失败" + +#, python-format +msgid "Account disabled: %(disabled)s" +msgstr "账户已禁用:%(disabled)s" + +#, python-format +msgid "Added certificates to user \"%(value)s\"" +msgstr "已为用户\"%(value)s\"添加证书" + +#, python-format +msgid "Removed certificates from user \"%(value)s\"" +msgstr "已为用户\"%(value)s\"删除证书" + +msgid "Add new principal alias to the user entry" +msgstr "为用户条目添加新的主体别名" + +#, python-format +msgid "Added new aliases to user \"%(value)s\"" +msgstr "已为用户\"%(value)s\"添加新别名" + +msgid "Remove principal alias from the user entry" +msgstr "从用户条目中删除主体别名" + +#, python-format +msgid "Removed aliases from user \"%(value)s\"" +msgstr "已从用户\"%(value)s\"中删除别名" + +msgid "" +"\n" +"Topology\n" +"\n" +"Management of a replication topology at domain level 1.\n" +msgstr "" +"\n" +"拓扑\n" +"\n" +"域级别为1的复制拓扑的管理。\n" + +#, python-brace-format +msgid "Topology management requires minimum domain level {0} " +msgstr "拓扑管理需要最小域级别{0}" + +msgid "segment" +msgstr "段" + +msgid "segments" +msgstr "段" + +msgid "Topology Segments" +msgstr "拓扑段" + +msgid "Topology Segment" +msgstr "拓扑段" + +#, python-format +msgid "left node is not a topology node: %(leftnode)s" +msgstr "左节点不是一个拓扑节点:%(leftnode)s" + +#, python-format +msgid "right node is not a topology node: %(rightnode)s" +msgstr "右节点不是一个拓扑节点:%(rightnode)s" + +msgid "left node and right node must not be the same" +msgstr "左节点和右节点必须不同" + +#, python-brace-format +msgid "left node ({host}) does not support suffix '{suff}'" +msgstr "左节点({host})不支持后缀'{suff}'" + +#, python-brace-format +msgid "right node ({host}) does not support suffix '{suff}'" +msgstr "右节点({host})不支持后缀'{suff}'" + +#, python-format +msgid "%(count)d segment matched" +msgid_plural "%(count)d segments matched" +msgstr[0] "已匹配%(count)d个段" + +#, python-format +msgid "Added segment \"%(value)s\"" +msgstr "已添加段\"%(value)s\"" + +#, python-format +msgid "Deleted segment \"%(value)s\"" +msgstr "已删除段\"%(value)s\"" + +#, python-format +msgid "Modified segment \"%(value)s\"" +msgstr "已修改段\"%(value)s\"" + +#, python-format +msgid "%(value)s" +msgstr "%(value)s" + +msgid "left or right node has to be specified" +msgstr "左或右节点没有被指定" + +msgid "only one node can be specified" +msgstr "仅有一个节点可以被指定" + +#, python-format +msgid "Replication refresh for segment: \"%(pkey)s\" requested." +msgstr "副本更新段:要求\"%(pkey)s\"。" + +#, python-format +msgid "Stopping of replication refresh for segment: \"%(pkey)s\" requested." +msgstr "停止副本更新段:要求\"%(pkey)s\"。" + +msgid "suffixes" +msgstr "后缀" + +msgid "Topology suffixes" +msgstr "拓扑后缀" + +msgid "Topology suffix" +msgstr "拓扑后缀" + +#, python-format +msgid "%(count)d topology suffix matched" +msgid_plural "%(count)d topology suffixes matched" +msgstr[0] "已匹配%(count)d个拓扑后缀" + +#, python-format +msgid "Deleted topology suffix \"%(value)s\"" +msgstr "已删除拓扑后缀\"%(value)s\"" + +#, python-format +msgid "Added topology suffix \"%(value)s\"" +msgstr "已添加拓扑后缀\"%(value)s\"" + +#, python-format +msgid "Modified topology suffix \"%(value)s\"" +msgstr "已修改拓扑后缀\"%(value)s\"" + +msgid "" +"\n" +"Verify replication topology for suffix.\n" +"\n" +"Checks done:\n" +" 1. check if a topology is not disconnected. In other words if there are\n" +" replication paths between all servers.\n" +" 2. check if servers don't have more than the recommended number of\n" +" replication agreements\n" +msgstr "" +"\n" +"验证复制拓扑的后缀。\n" +"检查完成:\n" +" 1. 检查是否还有没有连接的拓扑。换句话说,是否在所有服务器之间存在复制路" +"径。\n" +" 2. 检查是否服务器没有超过推荐的副本协议数\n" + +msgid "automount location" +msgstr "自动挂载位置" + +msgid "automount locations" +msgstr "自动挂载位置" + +msgid "Automount Locations" +msgstr "自动挂载位置" + +msgid "Automount Location" +msgstr "自动挂载位置" + +#, python-format +msgid "Added automount location \"%(value)s\"" +msgstr "已添加自动挂载位置\"%(value)s\"" + +#, python-format +msgid "Deleted automount location \"%(value)s\"" +msgstr "已删除自动挂载位置\"%(value)s\"" + +#, python-format +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" +msgstr[0] "已匹配%(count)d个自动挂载位置" + +msgid "automount map" +msgstr "自动挂载映射" + +msgid "automount maps" +msgstr "自动挂载映射" + +msgid "Automount Maps" +msgstr "自动挂载映射" + +msgid "Automount Map" +msgstr "自动挂载映射" + +#, python-format +msgid "Added automount map \"%(value)s\"" +msgstr "已添加自动挂载映射\"%(value)s\"" + +#, python-format +msgid "Deleted automount map \"%(value)s\"" +msgstr "已删除自动挂载映射\"%(value)s\"" + +#, python-format +msgid "Modified automount map \"%(value)s\"" +msgstr "已修改自动挂载映射\"%(value)s\"" + +#, python-format +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" +msgstr[0] "已匹配%(count)d个自动挂载映射" + +msgid "Automount key object." +msgstr "自动挂载键对象。" + +msgid "automount key" +msgstr "自动挂载键" + +msgid "automount keys" +msgstr "自动挂载键" + +msgid "Automount Keys" +msgstr "自动挂载键" + +msgid "Automount Key" +msgstr "自动挂载键" + +#, python-format +msgid "" +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" +msgstr "“键,信息”对必须是唯一的。信息为%(info)s的键名%(key)s已存在" + +#, python-format +msgid "key named %(key)s already exists" +msgstr "键名%(key)s已存在" + +#, python-format +msgid "The automount key %(key)s with info %(info)s does not exist" +msgstr "信息为%(info)s的自动挂载键%(key)s不存在" + +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." +msgstr "找到不止一个拥有键%(key)s的条目,使用--info来选择指定条目。" + +#, python-format +msgid "Added automount key \"%(value)s\"" +msgstr "已添加自动挂载键\"%(value)s\"" + +#, python-format +msgid "Added automount indirect map \"%(value)s\"" +msgstr "已添加自动间接映射\"%(value)s\"" + +msgid "mount point is relative to parent map, cannot begin with /" +msgstr "挂载点是相对于父映射的,不能以/开始" + +#, python-format +msgid "Deleted automount key \"%(value)s\"" +msgstr "已删除自动挂载键\"%(value)s\"" + +#, python-format +msgid "Modified automount key \"%(value)s\"" +msgstr "已修改自动挂载键\"%(value)s\"" + +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" +msgstr[0] "已匹配%(count)d个自动挂载键" + +msgid "Client version. Used to determine if server will accept request." +msgstr "客户端版本。用来确定是否服务器接受请求。" + +msgid "must contain a tuple (list, dict)" +msgstr "必须包含一个元组(列表,字典)" + msgid "" "\n" "Vaults\n" @@ -10023,689 +10807,498 @@ msgstr "从库\"%(value)s\"中检索数据" msgid "No archived data." msgstr "没有归档数据。" +#, python-format msgid "" -"\n" -"Auto Membership Rule.\n" -msgstr "" -"\n" -"自动成员规则。\n" +" Alternatively, following servers are capable of running this command: " +"%(masters)s" +msgstr "另外,下面服务器可以运行该命令:%(masters)s" + +msgid "AD Trust setup" +msgstr "AD信任设置" msgid "" -"\n" -"A rule is directly associated with a group by name, so you cannot create\n" -"a rule without an accompanying group or hostgroup.\n" +"Cannot perform the selected command without Samba 4 support installed. Make " +"sure you have installed server-trust-ad sub-package of IPA." msgstr "" -"\n" -"规则是和组名直接关联的,因此你不能创建一个没有组或主机组的规则。\n" +"没有安装Samba 4不能执行被选命令。确认你已经在IPA上安装了server-trust-ad子包。" msgid "" -"\n" -"A condition is a regular expression used by 389-ds to match a new incoming\n" -"entry with an automember rule. If it matches an inclusive rule then the\n" -"entry is added to the appropriate group or hostgroup.\n" +"Cannot perform the selected command without Samba 4 instance configured on " +"this machine. Make sure you have run ipa-adtrust-install on this server." msgstr "" -"\n" -"条件是一个用于389-ds的正则表达式来用一个自动成员规则区匹配一个新添加的条目。" -"如果它匹配一个兼容规则,那么该条目被添加到合适的组或主机组中去。\n" +"没有在该机器上进行Samba 4实例配置不能执行被选命令。确认你已经在该服务器上运行" +"ipa-adtrust-install。" msgid "" -"\n" -"A default group or hostgroup could be specified for entries that do not\n" -"match any rule. In case of user entries this group will be a fallback group\n" -"because all users are by default members of group specified in IPA config.\n" -msgstr "" -"\n" -"一个默认组或主机组可以指定给不匹配任何规则的条目。万一是用户条目,则该组会是" -"一个会退组,因为在IPA配置中所有用户默认是指定组的成员。\n" +"Fetching domains from trusted forest failed. See details in the error_log" +msgstr "从信任森林中获取域失败。在error_log中查看详细信息" -msgid "" -"\n" -"The automember-rebuild command can be used to retroactively run automember " -"rules\n" -"against existing entries, thus rebuilding their membership.\n" -msgstr "" -"\n" -"automember-rebuild命令可以用来对现有条目跟踪运行自动成员规则,以此来重建它们" -"的成员组。\n" +msgid "trust" +msgstr "信任" -msgid "Auto Membership Rule" -msgstr "自动成员规则" +msgid "trusts" +msgstr "信任" -#, python-format -msgid "%(otype)s \"%(oname)s\" not found" -msgstr "%(otype)s \"%(oname)s\"没有找到" +msgid "Trust" +msgstr "信任" -#, python-format -msgid "%s is not a valid attribute." -msgstr "%s不是一个有效的属性。" - -#, python-format -msgid "Added automember rule \"%(value)s\"" -msgstr "已添加自动成员规则\"%(value)s\"" - -msgid "Auto Membership is not configured" -msgstr "自动成员没有配置" - -#, python-format -msgid "Added condition(s) to \"%(value)s\"" -msgstr "已在\"%(value)s\"上添加条件" - -#, python-format -msgid "Auto member rule: %s not found!" -msgstr "自动成员规则:%s没有找到!" - -#, python-format -msgid "Removed condition(s) from \"%(value)s\"" -msgstr "已从\"%(value)s\"中移除条件" - -#, python-format -msgid "Modified automember rule \"%(value)s\"" -msgstr "已修改自动成员规则\"%(value)s\"" - -#, python-format -msgid "Deleted automember rule \"%(value)s\"" -msgstr "已删除自动成员规则\"%(value)s\"" - -#, python-format -msgid "%(count)d rules matched" -msgid_plural "%(count)d rules matched" -msgstr[0] "已匹配%(count)d个规则" - -#, python-format -msgid "Set default (fallback) group for automember \"%(value)s\"" -msgstr "已为自动成员\"%(value)s\"设置默认(回滚)组" - -#, python-format -msgid "Removed default (fallback) group for automember \"%(value)s\"" -msgstr "已为自动成员\"%(value)s\"移除默认(回滚)组" - -msgid "No default (fallback) group set" -msgstr "没有设置(回滚)组" - -msgid "Task DN" -msgstr "任务DN" - -msgid "DN of the started task" -msgstr "已开始任务的DN" - -msgid "at least one of options: type, users, hosts must be specified" -msgstr "至少指定其中一个选项:类型,用户,主机" - -msgid "users and hosts cannot both be set" -msgstr "用户和主机不能被同时设置" - -msgid "hosts cannot be set when type is 'group'" -msgstr "当类型是'group'是主机不能被设置" - -msgid "users cannot be set when type is 'hostgroup'" -msgstr "当类型是'hostgroup'是用户不能被设置" - -msgid "Automember rebuild membership task started" -msgstr "自动成员重建成员关系任务已开始" - -#, python-format -msgid "Task DN = '%s'" -msgstr "任务DN = '%s'" - -msgid "" -"\n" -"Topology\n" -"\n" -"Management of a replication topology at domain level 1.\n" -msgstr "" -"\n" -"拓扑\n" -"\n" -"域级别为1的复制拓扑的管理。\n" +msgid "UPN suffixes" +msgstr "UPN后缀" #, python-brace-format -msgid "Topology management requires minimum domain level {0} " -msgstr "拓扑管理需要最小域级别{0}" +msgid "Type of trusted domain ID range, one of {vals}" +msgstr "信任域ID范围类型,是{vals}其中之一" -msgid "segment" -msgstr "段" +msgid "External trust" +msgstr "外部的信任" -msgid "segments" -msgstr "段" - -msgid "Topology Segments" -msgstr "拓扑段" - -msgid "Topology Segment" -msgstr "拓扑段" +msgid "" +"Establish external trust to a domain in another forest. The trust is not " +"transitive beyond the domain." +msgstr "建立外部信任到另一个森林域中。信任不会在域外传递。" #, python-format -msgid "left node is not a topology node: %(leftnode)s" -msgstr "左节点不是一个拓扑节点:%(leftnode)s" +msgid "Added Active Directory trust for realm \"%(value)s\"" +msgstr "已添加活动目录域\"%(value)s\"" #, python-format -msgid "right node is not a topology node: %(rightnode)s" -msgstr "右节点不是一个拓扑节点:%(rightnode)s" +msgid "Re-established trust to domain \"%(value)s\"" +msgstr "重建信任域\"%(value)s\"" -msgid "left node and right node must not be the same" -msgstr "左节点和右节点必须不同" +msgid "missing base_id" +msgstr "缺少base_id" -#, python-brace-format -msgid "left node ({host}) does not support suffix '{suff}'" -msgstr "左节点({host})不支持后缀'{suff}'" +msgid "pysss_murmur is not available on the server and no base-id is given." +msgstr "pysss_murmur在服务器上不可用并没有提供base-id。" -#, python-brace-format -msgid "right node ({host}) does not support suffix '{suff}'" -msgstr "右节点({host})不支持后缀'{suff}'" +msgid "trust type" +msgstr "信任类型" + +msgid "only \"ad\" is supported" +msgstr "仅支持\"ad\"" + +msgid "" +"Cannot establish a trust to AD deployed in the same domain as IPA. Such " +"setup is not supported." +msgstr "不能建立一个信任到部署在IPA同一域中的AD。这样的设置不支持。" + +msgid "Realm-domain mismatch" +msgstr "Realm-domain不匹配" + +msgid "" +"To establish trust with Active Directory, the domain name and the realm name " +"of the IPA server must match" +msgstr "为了建立信任活动目录,IPA服务器的域名和realm名必须匹配" + +msgid "" +"Cannot perform join operation without own domain configured. Make sure you " +"have run ipa-adtrust-install on the IPA server first" +msgstr "" +"没有自己的域配置不能执行加入操作。首先确认你已经在IPA服务器上运行了ipa-" +"adtrust-install命令" #, python-format -msgid "%(count)d segment matched" -msgid_plural "%(count)d segments matched" -msgstr[0] "已匹配%(count)d个段" +msgid "" +"Trusted domain %(domain)s is included among IPA realm domains. It needs to " +"be removed prior to establishing the trust. See the \"ipa realmdomains-mod --" +"del-domain\" command." +msgstr "" +"信任域%(domain)s包含在IPArealm域中。建立信任需要删除之前的。查看\"ipa " +"realmdomains-mod --del-domain\"命令。" + +msgid "Trusted domain and administrator account use different realms" +msgstr "信任域和管理员账户使用不同域" + +msgid "Realm administrator password should be specified" +msgstr "域管理员密码应该被指定" + +msgid "id range type" +msgstr "id范围类型" + +msgid "" +"Only the ipa-ad-trust and ipa-ad-trust-posix are allowed values for --range-" +"type when adding an AD trust." +msgstr "" +"当添加一个AD信任时仅有ipa-ad-trust和ipa-ad-trust-posix允许--range-type值。" + +msgid "id range" +msgstr "id范围" + +msgid "" +"An id range already exists for this trust. You should either delete the old " +"range, or exclude --base-id/--range-size options from the command." +msgstr "" +"id范围已在该域中存在。你要么删除旧的范围,要么从命令中排除--base-id/--range-" +"size选项。" + +msgid "range exists" +msgstr "范围内存在" + +msgid "" +"ID range with the same name but different domain SID already exists. The ID " +"range for the new trusted domain must be created manually." +msgstr "同名但不同域SID的ID范围已存在。新信任域的ID范围必须手动创建。" + +msgid "range type change" +msgstr "范围类型改变" + +msgid "" +"ID range for the trusted domain already exists, but it has a different type. " +"Please remove the old range manually, or do not enforce type via --range-" +"type option." +msgstr "" +"信任域的ID范围已存在,但它有一个不同类型。请手动删除旧的范围,或者通过--" +"range-type选项不强制类型。" + +msgid "" +"Forward policy is defined for it in IPA DNS, perhaps forwarder points to " +"incorrect host?" +msgstr "在IPA DNS中转发器策略阻止了它,也许是转发器指向了不正确的主机?" + +msgid "Unable to verify write permissions to the AD" +msgstr "不能在AD中验证写权限" + +msgid "Not enough arguments specified to perform trust setup" +msgstr "执行信任设置时没有指定足够的参数" #, python-format -msgid "Added segment \"%(value)s\"" -msgstr "已添加段\"%(value)s\"" +msgid "Deleted trust \"%(value)s\"" +msgstr "已删除信任\"%(value)s\"" #, python-format -msgid "Deleted segment \"%(value)s\"" -msgstr "已删除段\"%(value)s\"" +msgid "Modified trust \"%(value)s\" (change will be effective in 60 seconds)" +msgstr "已修改信任\"%(value)s\"(改变将在60s内生效)" #, python-format -msgid "Modified segment \"%(value)s\"" -msgstr "已修改段\"%(value)s\"" +msgid "%(count)d trust matched" +msgid_plural "%(count)d trusts matched" +msgstr[0] "已匹配%(count)d个信任" + +msgid "trust configuration" +msgstr "信任配置" + +msgid "Global Trust Configuration" +msgstr "全局信任配置" + +msgid "IPA AD trust agents" +msgstr "IPA AD信任代理" + +msgid "IPA servers configured as AD trust agents" +msgstr "IPA服务器配置为AD信任代理" + +msgid "IPA AD trust controllers" +msgstr "IPA AD信任控制器" + +msgid "IPA servers configured as AD trust controllers" +msgstr "IPA服务器配置为AD信任控制器" + +msgid "unsupported trust type" +msgstr "不支持的信任类型" #, python-format -msgid "%(value)s" -msgstr "%(value)s" +msgid "Modified \"%(value)s\" trust configuration" +msgstr "已修改\"%(value)s\"信任配置" -msgid "left or right node has to be specified" -msgstr "左或右节点没有被指定" +msgid "" +"This command relies on the existence of the \"editors\" group, but this " +"group was not found." +msgstr "该命令依赖于\"editors\"组的存在,但是该组没有找到。" -msgid "only one node can be specified" -msgstr "仅有一个节点可以被指定" +msgid "trust domain" +msgstr "信任域" + +msgid "trust domains" +msgstr "信任域" + +msgid "Trusted domains" +msgstr "已信任的域" + +msgid "Trusted domain" +msgstr "已信任的域" + +msgid "Domain enabled" +msgstr "域已启用" #, python-format -msgid "Replication refresh for segment: \"%(pkey)s\" requested." -msgstr "副本更新段:要求\"%(pkey)s\"。" +msgid "Removed information about the trusted domain \"%(value)s\"" +msgstr "删除信任域\"%(value)s\"的信息" + +msgid "" +"cannot delete root domain of the trust, use trust-del to delete the trust " +"itself" +msgstr "不能删除信任的根域,使用trust-del来删除它自己的信任" + +msgid "" +"List of trust domains successfully refreshed. Use trustdomain-find command " +"to list them." +msgstr "信任域列表更新成功。使用trustdomain-find命令来列举它们。" #, python-format -msgid "Stopping of replication refresh for segment: \"%(pkey)s\" requested." -msgstr "停止副本更新段:要求\"%(pkey)s\"。" +msgid "Enabled trust domain \"%(value)s\"" +msgstr "已启用信任域\"%(value)s\"" -msgid "suffixes" -msgstr "后缀" - -msgid "Topology suffixes" -msgstr "拓扑后缀" - -msgid "Topology suffix" -msgstr "拓扑后缀" +msgid "Root domain of the trust is always enabled for the existing trust" +msgstr "信任的根域总是支持现有的信任" #, python-format -msgid "%(count)d topology suffix matched" -msgid_plural "%(count)d topology suffixes matched" -msgstr[0] "已匹配%(count)d个拓扑后缀" +msgid "Disabled trust domain \"%(value)s\"" +msgstr "已禁用信任域\"%(value)s\"" -#, python-format -msgid "Deleted topology suffix \"%(value)s\"" -msgstr "已删除拓扑后缀\"%(value)s\"" - -#, python-format -msgid "Added topology suffix \"%(value)s\"" -msgstr "已添加拓扑后缀\"%(value)s\"" - -#, python-format -msgid "Modified topology suffix \"%(value)s\"" -msgstr "已修改拓扑后缀\"%(value)s\"" +msgid "" +"cannot disable root domain of the trust, use trust-del to delete the trust " +"itself" +msgstr "不能禁用信任的根域,使用trust-del来删除它自己的信任" msgid "" "\n" -"Verify replication topology for suffix.\n" -"\n" -"Checks done:\n" -" 1. check if a topology is not disconnected. In other words if there are\n" -" replication paths between all servers.\n" -" 2. check if servers don't have more than the recommended number of\n" -" replication agreements\n" +"IPA certificate operations\n" msgstr "" "\n" -"验证复制拓扑的后缀。\n" -"检查完成:\n" -" 1. 检查是否还有没有连接的拓扑。换句话说,是否在所有服务器之间存在复制路" -"径。\n" -" 2. 检查是否服务器没有超过推荐的副本协议数\n" +"IPA证书操作\n" -msgid "sudo command" -msgstr "sudo命令" +msgid "" +"\n" +"Implements a set of commands for managing server SSL certificates.\n" +msgstr "" +"\n" +"实现了一组命令来管理服务器的SSL证书。\n" -msgid "sudo commands" -msgstr "sudo命令" +msgid "" +"\n" +"Certificate requests exist in the form of a Certificate Signing Request " +"(CSR)\n" +"in PEM format.\n" +msgstr "" +"\n" +"证书请求以PEM格式的证书签名请求(CSR)的形式存在。\n" -msgid "Sudo Commands" -msgstr "Sudo命令" +msgid "" +"\n" +"The dogtag CA uses just the CN value of the CSR and forces the rest of the\n" +"subject to values configured in the server.\n" +msgstr "" +"\n" +"dogtag CA只是使用CSR的CN值,并强制主题的其他值在服务器中配置。\n" -#, python-format -msgid "Added Sudo Command \"%(value)s\"" -msgstr "已添加Sudo命令\"%(value)s\"" +msgid "" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +msgstr "" +"\n" +"一个证书是以一个服务主体存储,并一个服务主体需要一个主机。\n" -#, python-format -msgid "Deleted Sudo Command \"%(value)s\"" -msgstr "已删除Sudo命令\"%(value)s\"" +msgid "" +"\n" +"In order to request a certificate:\n" +msgstr "" +"\n" +"为了请求一个证书:\n" -#, python-format -msgid "Modified Sudo Command \"%(value)s\"" -msgstr "已修改Sudo命令\"%(value)s\"" +msgid "" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add " +"it)\n" +msgstr "" +"\n" +"* 主机必须存在\n" +"* 服务必须存在(或者你使用--add选项来自动添加它)\n" -#, python-format -msgid "%(count)d Sudo Command matched" -msgid_plural "%(count)d Sudo Commands matched" -msgstr[0] "已匹配%(count)d个Sudo命令" +msgid "" +"\n" +"SEARCHING:\n" +msgstr "" +"\n" +"查找:\n" -msgid "automount location" -msgstr "自动挂载位置" +msgid "" +"\n" +"Certificates may be searched on by certificate subject, serial number,\n" +"revocation reason, validity dates and the issued date.\n" +msgstr "" +"\n" +"证书可能通过证书主题,序列号,撤销原因,有效日期和发布日期来查询。\n" -msgid "automount locations" -msgstr "自动挂载位置" +msgid "" +"\n" +"Dates are treated as GMT to match the dates in the certificates.\n" +msgstr "" +"\n" +"GMT格式的日期用来匹配证书里的日期。\n" -msgid "Automount Locations" -msgstr "自动挂载位置" +msgid "" +"\n" +"The date format is YYYY-mm-dd.\n" +msgstr "" +"\n" +"日期格式是YYYY-mm-dd。\n" -msgid "Automount Location" -msgstr "自动挂载位置" +msgid "" +"\n" +"The following revocation reasons are supported:\n" +"\n" +msgstr "" +"\n" +"支持下面的撤销原因:\n" -#, python-format -msgid "Added automount location \"%(value)s\"" -msgstr "已添加自动挂载位置\"%(value)s\"" - -#, python-format -msgid "Deleted automount location \"%(value)s\"" -msgstr "已删除自动挂载位置\"%(value)s\"" - -#, python-format -msgid "%(count)d automount location matched" -msgid_plural "%(count)d automount locations matched" -msgstr[0] "已匹配%(count)d个自动挂载位置" - -msgid "automount map" -msgstr "自动挂载映射" - -msgid "automount maps" -msgstr "自动挂载映射" - -msgid "Automount Maps" -msgstr "自动挂载映射" - -msgid "Automount Map" -msgstr "自动挂载映射" - -#, python-format -msgid "Added automount map \"%(value)s\"" -msgstr "已添加自动挂载映射\"%(value)s\"" - -#, python-format -msgid "Deleted automount map \"%(value)s\"" -msgstr "已删除自动挂载映射\"%(value)s\"" - -#, python-format -msgid "Modified automount map \"%(value)s\"" -msgstr "已修改自动挂载映射\"%(value)s\"" - -#, python-format -msgid "%(count)d automount map matched" -msgid_plural "%(count)d automount maps matched" -msgstr[0] "已匹配%(count)d个自动挂载映射" - -msgid "Automount key object." -msgstr "自动挂载键对象。" - -msgid "automount key" -msgstr "自动挂载键" - -msgid "automount keys" -msgstr "自动挂载键" - -msgid "Automount Keys" -msgstr "自动挂载键" - -msgid "Automount Key" -msgstr "自动挂载键" +msgid "" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +msgstr "" +"\n" +"注意没有使用原因码7。查看RFC 5280以获取更多详细信息:\n" #, python-format msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" -msgstr "“键,信息”对必须是唯一的。信息为%(info)s的键名%(key)s已存在" +"Principal '%(principal)s' is not permitted to use CA '%(ca)s' with profile " +"'%(profile_id)s' for certificate issuance." +msgstr "" +"主体'%(principal)s'不允许使用含配置文件'%(profile_id)s'的CA '%(ca)s'来发布证" +"书。" -#, python-format -msgid "key named %(key)s already exists" -msgstr "键名%(key)s已存在" +msgid "Issuing CA" +msgstr "发行CA" -#, python-format -msgid "The automount key %(key)s with info %(info)s does not exist" -msgstr "信息为%(info)s的自动挂载键%(key)s不存在" +msgid "Name of issuing CA" +msgstr "签发的CA名称" + +msgid "Subject email address" +msgstr "主题电子邮件地址" + +msgid "Subject DNS name" +msgstr "主题DNS名" + +msgid "Subject X.400 address" +msgstr "主题X.400地址" + +msgid "Subject directory name" +msgstr "主题目录名" + +msgid "Subject EDI Party name" +msgstr "主题EDI参与方名称" + +msgid "Subject URI" +msgstr "主题URI" + +msgid "Subject IP Address" +msgstr "主题IP地址" + +msgid "Subject OID" +msgstr "主题OID" + +msgid "Subject UPN" +msgstr "主题UPN" + +msgid "Subject Kerberos principal name" +msgstr "主题Kerberos主体名" + +msgid "Subject Other Name" +msgstr "主题别名" + +msgid "Serial number (hex)" +msgstr "序列号(十六进制)" + +msgid "Request status" +msgstr "请求状态" + +msgid "" +"automatically add the principal if it doesn't exist (service principals only)" +msgstr "如果主体不存在则自动添加它(仅对服务主体)" + +msgid "No Common Name was found in subject of request." +msgstr "在请求的主题中找不到通用名。" #, python-format msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." -msgstr "找到不止一个拥有键%(key)s的条目,使用--info来选择指定条目。" +"hostname in subject of request '%(cn)s' does not match principal hostname " +"'%(hostname)s'" +msgstr "请求主题'%(cn)s'的主机名与主体主机名'%(hostname)s'不匹配" + +msgid "DN commonName does not match user's login" +msgstr "DN通用名与用户登录名不匹配" + +msgid "DN emailAddress does not match any of user's email addresses" +msgstr "DN电子邮件地址不匹配任何用户的电子邮件地址" #, python-format -msgid "Added automount key \"%(value)s\"" -msgstr "已添加自动挂载键\"%(value)s\"" +msgid "" +"Insufficient 'write' privilege to the 'userCertificate' attribute of entry " +"'%s'." +msgstr "对条目'%s'的'userCertificate'属性没有'write'权限。" #, python-format -msgid "Added automount indirect map \"%(value)s\"" -msgstr "已添加自动间接映射\"%(value)s\"" - -msgid "mount point is relative to parent map, cannot begin with /" -msgstr "挂载点是相对于父映射的,不能以/开始" +msgid "subject alt name type %s is forbidden for user principals" +msgstr "主题alt名称类型%s禁止用户主体" #, python-format -msgid "Deleted automount key \"%(value)s\"" -msgstr "已删除自动挂载键\"%(value)s\"" +msgid "" +"The service principal for subject alt name %s in certificate request does " +"not exist" +msgstr "在证书请求中主题alt名为%s的服务主体不存在" #, python-format -msgid "Modified automount key \"%(value)s\"" -msgstr "已修改自动挂载键\"%(value)s\"" +msgid "" +"Insufficient privilege to create a certificate with subject alt name '%s'." +msgstr "没有权限创建主题alt名为'%s'的证书。" #, python-format -msgid "%(count)d automount key matched" -msgid_plural "%(count)d automount keys matched" -msgstr[0] "已匹配%(count)d个自动挂载键" +msgid "Principal '%s' in subject alt name does not match requested principal" +msgstr "在主题alt名中的主体'%s'与请求的主体不匹配" -msgid "CA category" -msgstr "CA类别" - -msgid "CA category the ACL applies to" -msgstr "ACL应用的CA类别" +msgid "RFC822Name does not match any of user's email addresses" +msgstr "RFC822名称与任何用户的电子邮件地址都不匹配" #, python-format -msgid "Added CA ACL \"%(value)s\"" -msgstr "已添加CA ACL\"%(value)s\"" +msgid "subject alt name type %s is forbidden for non-user principals" +msgstr "主题alt名称类型%s禁止非用户主体" #, python-format -msgid "Deleted CA ACL \"%(value)s\"" -msgstr "已删除CA ACL\"%(value)s\"" - -msgid "default CA ACL can be only disabled" -msgstr "默认的CA ACL只可以被禁用" +msgid "Subject alt name type %s is forbidden" +msgstr "主题alt名称类型%s被禁止" #, python-format -msgid "Modified CA ACL \"%(value)s\"" -msgstr "已修改CA ACL\"%(value)s\"" +msgid "CA '%s' is disabled" +msgstr "CA'%s'被禁用" -msgid "CA category cannot be set to 'all' while there are allowed CAs" -msgstr "CA类别不能设置为all',虽然有允许CAs" +msgid "'add' option" +msgstr "'add'选项" + +msgid "Revoked" +msgstr "撤销" msgid "" -"profile category cannot be set to 'all' while there are allowed profiles" -msgstr "配置文件类别不能设置为all',虽然有允许配置文件" +"Reason for revoking the certificate (0-10). Type \"ipa help cert\" for " +"revocation reason details. " +msgstr "撤销证书的原因(0-10)。输入\"ipa help cert\"来查看详细撤销原因。" -msgid "user category cannot be set to 'all' while there are allowed users" -msgstr "用户类别不能设置为all',虽然有允许用户" - -msgid "host category cannot be set to 'all' while there are allowed hosts" -msgstr "主机类别不能设置为all',虽然有允许主机" +#, python-format +msgid "Owner %s" +msgstr "所有者%s" +#, python-format msgid "" -"service category cannot be set to 'all' while there are allowed services" -msgstr "服务类别不能设置为all',虽然有允许服务" +"Certificate with serial number %(serial)s issued by CA '%(ca)s' not found" +msgstr "由CA'%(ca)s'发布序列号为%(serial)s的证书没有找到" + +msgid "7 is not a valid revocation reason" +msgstr "7不是一个有效的撤销原因" + +msgid "Results should contain primary key attribute only (\"certificate\")" +msgstr "结果应该只包括主键属性(\"certificate\")" #, python-format -msgid "%(count)d CA ACL matched" -msgid_plural "%(count)d CA ACLs matched" -msgstr[0] "已匹配%(count)d个CA ACL" +msgid "%(count)d certificate matched" +msgid_plural "%(count)d certificates matched" +msgstr[0] "已匹配%(count)d个证书" #, python-format -msgid "Enabled CA ACL \"%(value)s\"" -msgstr "已启用CA ACL\"%(value)s\"" +msgid "Search for certificates with these owner %s." +msgstr "查找含这些所有者%s的证书。" #, python-format -msgid "Disabled CA ACL \"%(value)s\"" -msgstr "已禁用CA ACL\"%(value)s\"" - -#, python-format -msgid "%i user or group added." -msgstr "%i用户或组已添加。" - -#, python-format -msgid "%i users or groups added." -msgstr "%i用户或用户组已添加。" - -#, python-format -msgid "%i user or group removed." -msgstr "%i用户或组已移除。" - -#, python-format -msgid "%i users or groups removed." -msgstr "%i用户或用户组已移除。" - -#, python-format -msgid "%i host or hostgroup added." -msgstr "%i主机或主机组已添加。" - -#, python-format -msgid "%i hosts or hostgroups added." -msgstr "%i主机或主机组已添加。" - -#, python-format -msgid "%i host or hostgroup removed." -msgstr "%i主机或主机组已移除。" - -#, python-format -msgid "%i hosts or hostgroups removed." -msgstr "%i主机或主机组已移除。" - -#, python-format -msgid "%i service added." -msgstr "%i服务已添加。" - -#, python-format -msgid "%i services added." -msgstr "%i服务已添加。" - -msgid "services cannot be added when service category='all'" -msgstr "当服务类别='all'时服务不能被添加" - -#, python-format -msgid "%i service removed." -msgstr "%i服务已移除。" - -#, python-format -msgid "%i services removed." -msgstr "%i服务已移除。" - -#, python-format -msgid "%i profile added." -msgstr "%i配置文件已添加。" - -#, python-format -msgid "%i profiles added." -msgstr "%i配置文件已添加。" - -msgid "profiles cannot be added when profile category='all'" -msgstr "当配置文件类别='all'时配置文件不能被添加" - -#, python-format -msgid "%i profile removed." -msgstr "%i配置文件已移除。" - -#, python-format -msgid "%i profiles removed." -msgstr "%i配置文件已移除。" - -msgid "Add CAs to a CA ACL." -msgstr "向一个CA ACL中添加CAs。" - -#, python-format -msgid "%i CA added." -msgstr "%iCA已添加。" - -#, python-format -msgid "%i CAs added." -msgstr "%iCAs已添加。" - -msgid "CAs cannot be added when CA category='all'" -msgstr "当CA类别='all'时CAs不能被添加" - -msgid "Remove CAs from a CA ACL." -msgstr "从一个CA ACL中移除CAs。" - -#, python-format -msgid "%i CA removed." -msgstr "%iCA已移除。" - -#, python-format -msgid "%i CAs removed." -msgstr "%iCAs已移除。" - -msgid "delegation" -msgstr "授权" - -msgid "delegations" -msgstr "授权" - -msgid "Delegations" -msgstr "授权" - -msgid "Delegation" -msgstr "授权" - -#, python-format -msgid "Added delegation \"%(value)s\"" -msgstr "已添加授权\"%(value)s\"" - -#, python-format -msgid "Deleted delegation \"%(value)s\"" -msgstr "已删除授权\"%(value)s\"" - -#, python-format -msgid "Modified delegation \"%(value)s\"" -msgstr "已修改授权\"%(value)s\"" - -#, python-format -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" -msgstr[0] "已匹配%(count)d个授权" - -#, python-format -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" -msgstr "优先权必须是一个唯一值((%(prio)d已被%(gname)s使用)" - -msgid "password policy" -msgstr "密码策略" - -msgid "password policies" -msgstr "密码策略" - -msgid "Password Policies" -msgstr "密码策略" - -msgid "Maximum password life must be greater than minimum." -msgstr "最小密码生存周期必须比最小值大。" - -msgid "cannot delete global password policy" -msgstr "不能删除全局密码策略" - -msgid "priority cannot be set on global policy" -msgstr "优先权布不能在本地策略上设置" - -msgid "operation not defined" -msgstr "操作没有定义" - -#, python-format -msgid "not allowed to perform operation: %s" -msgstr "不允许执行操作:%s" - -msgid "No such virtual command" -msgstr "没有这样的虚拟命令" - -#, python-format -msgid "Added user \"%(value)s\"" -msgstr "已添加用户\"%(value)s\"" - -msgid "Default group for new users is not POSIX" -msgstr "新用户的默认组不是POSIX" - -#, python-format -msgid "Deleted user \"%(value)s\"" -msgstr "已删除用户\"%(value)s\"" - -#, python-format -msgid "%s: user is already preserved" -msgstr "%s:用户已保存" - -#, python-format -msgid "Modified user \"%(value)s\"" -msgstr "已修改用户\"%(value)s\"" - -#, python-format -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" -msgstr[0] "已匹配%(count)d个用户" - -#, python-format -msgid "Undeleted user account \"%(value)s\"" -msgstr "已恢复用户账户\"%(value)s\"" - -#, python-format -msgid "user \"%s\" is already active" -msgstr "用户%s已是活跃的" - -#, python-format -msgid "Disabled user account \"%(value)s\"" -msgstr "已禁用用户账户\"%(value)s\"" - -#, python-format -msgid "Enabled user account \"%(value)s\"" -msgstr "已启用用户账户\"%(value)s\"" - -#, python-format -msgid "Unlocked account \"%(value)s\"" -msgstr "已解锁账户\"%(value)s\"" - -msgid "Failed logins" -msgstr "登录失败" - -msgid "Last successful authentication" -msgstr "上一次认证成功" - -msgid "Last failed authentication" -msgstr "上一次认证失败" - -msgid "Time now" -msgstr "当前时间" - -#, python-format -msgid "%(host)s failed: %(error)s" -msgstr "%(host)s已失败:%(error)s" - -#, python-format -msgid "%(host)s failed" -msgstr "%(host)s已失败" - -#, python-format -msgid "Account disabled: %(disabled)s" -msgstr "账户已禁用:%(disabled)s" - -#, python-format -msgid "Added certificates to user \"%(value)s\"" -msgstr "已为用户\"%(value)s\"添加证书" - -#, python-format -msgid "Removed certificates from user \"%(value)s\"" -msgstr "已为用户\"%(value)s\"删除证书" - -msgid "Add new principal alias to the user entry" -msgstr "为用户条目添加新的主体别名" - -#, python-format -msgid "Added new aliases to user \"%(value)s\"" -msgstr "已为用户\"%(value)s\"添加新别名" - -msgid "Remove principal alias from the user entry" -msgstr "从用户条目中删除主体别名" - -#, python-format -msgid "Removed aliases from user \"%(value)s\"" -msgstr "已从用户\"%(value)s\"中删除别名" +msgid "Search for certificates without these owner %s." +msgstr "查找不含这些所有者%s的证书。" msgid "groups" msgstr "用户组" @@ -10736,20 +11329,6 @@ msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "已匹配%(count)d个组" -msgid "" -"Cannot perform external member validation without Samba 4 support installed. " -"Make sure you have installed server-trust-ad sub-package of IPA on the server" -msgstr "" -"没有安装Samba 4不能执行外部成员验证。确认你已经在IPA服务器上安装了server-" -"trust-ad子包" - -msgid "" -"Cannot perform join operation without own domain configured. Make sure you " -"have run ipa-adtrust-install on the IPA server first" -msgstr "" -"没有自己的域配置不能执行加入操作。首先确认你已经在IPA服务器上运行了ipa-" -"adtrust-install命令" - #, python-format msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "从用户\"%(value)s\"中分离组\"%(value)s\"" @@ -10763,625 +11342,31 @@ msgstr "不允许修改组条目" msgid "Not a managed group" msgstr "不是一个管理组" -msgid "Realm domains" -msgstr "Realm域" +msgid "sudo command" +msgstr "sudo命令" + +msgid "sudo commands" +msgstr "sudo命令" + +msgid "Sudo Commands" +msgstr "Sudo命令" #, python-format -msgid "" -"DNS zone for each realmdomain must contain SOA or NS records. No records " -"found for: %s" -msgstr "DNS区域的每个realm域必须包括SOA或NS记录。没有找到记录:%s" +msgid "Added Sudo Command \"%(value)s\"" +msgstr "已添加Sudo命令\"%(value)s\"" #, python-format -msgid "The following domains do not belong to this realm: %(domains)s" -msgstr "下面的域不属于该realm:%(domains)s" +msgid "Deleted Sudo Command \"%(value)s\"" +msgstr "已删除Sudo命令\"%(value)s\"" #, python-format -msgid "" -"The realm of the following domains could not be detected: %(domains)s. If " -"these are domains that belong to the this realm, please create a _kerberos " -"TXT record containing \"%(realm)s\" in each of them." -msgstr "" -"下面域的realm不能被检测到:%(domains)s。如果有属于该realm的域,请为它们创建一" -"个包含\"%(realm)s\"的_kerberos TXT记录。" - -msgid "" -"The --domain option cannot be used together with --add-domain or --del-" -"domain. Use --domain to specify the whole realm domain list explicitly, to " -"add/remove individual domains, use --add-domain/del-domain." -msgstr "" -"--domain选项不能和--add-domain或--del-domain选项一起使用。使用--domain来显示" -"地指定整个realm域列表,添加/删除个别域,使用--add-domain/--del-domain。" - -msgid "IPA server domain cannot be omitted" -msgstr "IPA服务器域不能被省略" - -msgid "IPA server domain cannot be deleted" -msgstr "IPA服务器域不能被删除" +msgid "Modified Sudo Command \"%(value)s\"" +msgstr "已修改Sudo命令\"%(value)s\"" #, python-format -msgid "Changed password for \"%(value)s\"" -msgstr "已改变\"%(value)s\"的密码" - -msgid "" -"\n" -"IPA servers\n" -msgstr "" -"\n" -"IPA服务器\n" - -msgid "" -"\n" -"Get information about installed IPA servers.\n" -msgstr "" -"\n" -"获取安装IPA服务器信息。\n" - -msgid "server" -msgstr "服务器" - -msgid "servers" -msgstr "服务器" - -msgid "IPA Servers" -msgstr "IPA服务器" - -msgid "Server location" -msgstr "服务器位置" - -msgid "Weight for server services" -msgstr "服务器服务权重" - -msgid "Enabled server roles" -msgstr "已启用服务器角色" - -msgid "List of enabled roles" -msgstr "已启用角色列表" - -msgid "Modify information about an IPA server." -msgstr "修改一个IPA服务器信息。" - -#, python-format -msgid "Modified IPA server \"%(value)s\"" -msgstr "已修改IPA服务器\"%(value)s\"" - -#, python-format -msgid "%(count)d IPA server matched" -msgid_plural "%(count)d IPA servers matched" -msgstr[0] "已匹配%(count)d个IPA服务器" - -#, python-format -msgid "Deleted IPA server \"%(value)s\"" -msgstr "已删除IPA服务器\"%(value)s\"" - -msgid "Ignore topology errors" -msgstr "忽略拓扑错误" - -msgid "Ignore topology connectivity problems after removal" -msgstr "删除后忽略拓扑连通性问题" - -msgid "Ignore check for last remaining CA or DNS server" -msgstr "不检查最后的CA或DNS服务器" - -msgid "Skip a check whether the last CA master or DNS server is removed" -msgstr "不检查最后一个CA主服务器或DNS服务器是否被删除了" - -msgid "Force server removal" -msgstr "强制服务器删除" - -msgid "Force server removal even if it does not exist" -msgstr "强制服务器删除即使它不存在" - -msgid "" -"Replica is active DNSSEC key master. Uninstall could break your DNS system. " -"Please disable or replace DNSSEC key master first." -msgstr "" -"副本是活跃的DNSSEC密钥主机。卸载会导致你DNS系统崩溃。首先请禁用或替代DNSSEC密" -"钥主机。" - -msgid "Deleting this server will leave your installation without a DNS." -msgstr "删除这台服务器将使得你的安装过程没有DNS。" - -msgid "" -"Deleting this server is not allowed as it would leave your installation " -"without a CA." -msgstr "删除这台服务器是不允许的因为这将导致你的安装过程没有CA。" - -msgid "Ignoring these warnings and proceeding with removal" -msgstr "忽略这些警告并给予清除" - -#, python-format -msgid "" -"Failed to clean memberPrincipal %(principal)s from s4u2proxy entry %(dn)s: " -"%(err)s" -msgstr "从s4u2proxy条目%(dn)s中清除成员主体%(principal)s失败:%(err)s" - -#, python-format -msgid "Failed to clean up DNA hostname entries for %(master)s: %(err)s" -msgstr "为%(master)s清除DNA主机名条目失败:%(err)s" - -#, python-format -msgid "Failed to remove server %(master)s from server list: %(err)s" -msgstr "从服务器列表中删除服务器%(master)s失败:%(err)s" - -#, python-format -msgid "Failed to clean up Custodia keys for %(master)s: %(err)s" -msgstr "为%(master)s清除Custodia密钥失败:%(err)s" - -#, python-format -msgid "Failed to cleanup server principals/keys: %(err)s" -msgstr "清除服务器主体/密钥失败:%(err)s" - -#, python-format -msgid "Failed to cleanup %(hostname)s DNS entries: %(err)s" -msgstr "清除%(hostname)s DNS条目失败:%(err)s" - -msgid "You may need to manually remove them from the tree" -msgstr "你可能需要从树中手动删除它们" - -#, python-format -msgid "Forcing removal of %(hostname)s" -msgstr "强制删除%(hostname)s" - -msgid "Ignoring topology connectivity errors." -msgstr "忽略拓扑连通性错误。" - -msgid "Server has already been deleted" -msgstr "服务器已被删除" - -msgid "Agreements deleted" -msgstr "协议已删除" - -msgid "Following segments were not deleted:" -msgstr "下面部分没有被删除:" - -#, python-format -msgid "must be \"%s\"" -msgstr "必须是\"%s\"" - -msgid "not allowed to perform server connection check" -msgstr "不允许执行服务器连接检查" - -msgid "" -"\n" -"IPA locations\n" -msgstr "" -"\n" -"IPA位置\n" - -msgid "" -"\n" -"Manipulate DNS locations\n" -msgstr "" -"\n" -"设置DNS位置\n" - -msgid "location" -msgstr "位置" - -msgid "locations" -msgstr "位置" - -msgid "IPA Locations" -msgstr "IPA位置" - -msgid "IPA Location" -msgstr "IPA位置" - -msgid "Location name" -msgstr "位置名" - -msgid "IPA location name" -msgstr "IPA位置名" - -msgid "IPA Location description" -msgstr "IPA本地描述" - -msgid "Servers" -msgstr "服务器" - -msgid "Servers that belongs to the IPA location" -msgstr "属于IPA位置的服务器" - -msgid "Advertised by servers" -msgstr "由服务器公布" - -msgid "List of servers which advertise the given location" -msgstr "公布给出位置的服务器列表" - -msgid "Add a new IPA location." -msgstr "添加一个新的IPA位置。" - -#, python-format -msgid "Added IPA location \"%(value)s\"" -msgstr "已添加IPA位置\"%(value)s\"" - -msgid "Delete an IPA location." -msgstr "删除一个IPA位置。" - -#, python-format -msgid "Deleted IPA location \"%(value)s\"" -msgstr "已删除IPA位置\"%(value)s\"" - -msgid "Modify information about an IPA location." -msgstr "修改一个IPA位置信息。" - -#, python-format -msgid "Modified IPA location \"%(value)s\"" -msgstr "已修改IPA位置\"%(value)s\"" - -msgid "Search for IPA locations." -msgstr "查找IPA位置。" - -#, python-format -msgid "%(count)d IPA location matched" -msgid_plural "%(count)d IPA locations matched" -msgstr[0] "已匹配%(count)d个IPA位置" - -msgid "Display information about an IPA location." -msgstr "显示一个IPA位置信息。" - -msgid "Servers in location" -msgstr "本地服务器" - -msgid "" -"\n" -"RADIUS Proxy Servers\n" -msgstr "" -"\n" -"RADIUS代理服务器\n" - -msgid "" -"\n" -"Manage RADIUS Proxy Servers.\n" -msgstr "" -"\n" -"管理RADIUS代理服务器。\n" - -msgid "" -"\n" -"IPA supports the use of an external RADIUS proxy server for krb5 OTP\n" -"authentications. This permits a great deal of flexibility when\n" -"integrating with third-party authentication services.\n" -msgstr "" -"\n" -"IPA对于krb5 OTP认证支持使用额外的RADIUS代理服务器。这在集成第三方认证服务时提" -"供了很多方便。\n" - -msgid "invalid attribute name" -msgstr "无效的属性名" - -msgid "invalid port number" -msgstr "无效的端口号" - -msgid "RADIUS proxy server" -msgstr "RADIUS代理服务器" - -msgid "RADIUS proxy servers" -msgstr "RADIUS代理服务器" - -msgid "RADIUS Servers" -msgstr "RADIUS代理服务器" - -msgid "RADIUS Server" -msgstr "RADIUS代理服务器" - -#, python-format -msgid "Added RADIUS proxy server \"%(value)s\"" -msgstr "已添加RADIUS代理服务器\"%(value)s\"" - -#, python-format -msgid "Deleted RADIUS proxy server \"%(value)s\"" -msgstr "已删除RADIUS代理服务器\"%(value)s\"" - -#, python-format -msgid "Modified RADIUS proxy server \"%(value)s\"" -msgstr "已修改RADIUS代理服务器\"%(value)s\"" - -#, python-format -msgid "%(count)d RADIUS proxy server matched" -msgid_plural "%(count)d RADIUS proxy servers matched" -msgstr[0] "已匹配%(count)d个RADIUS代理服务器" - -#, python-format -msgid "" -"Insufficient 'write' privilege to the 'krbLastPwdChange' attribute of entry " -"'%s'." -msgstr "对条目'%s'的'krbLastPwdChange'属性没有'write'权限。" - -msgid "CA is not configured" -msgstr "CA没有配置" - -msgid "invalid Profile ID" -msgstr "无效的配置文件ID" - -msgid "Certificate Profile" -msgstr "证书配置文件" - -msgid "Certificate Profiles" -msgstr "证书配置文件" - -msgid "Profile configuration" -msgstr "配置文件配置" - -#, python-format -msgid "%(count)d profile matched" -msgid_plural "%(count)d profiles matched" -msgstr[0] "已匹配%(count)d个配置文件" - -#, python-format -msgid "Imported profile \"%(value)s\"" -msgstr "已导入配置文件\"%(value)s\"" - -#, python-format -msgid "Profile ID '%(cli_value)s' does not match profile data '%(file_value)s'" -msgstr "配置文件ID '%(cli_value)s'与配置文件数据'%(file_value)s'不匹配" - -#, python-format -msgid "Deleted profile \"%(value)s\"" -msgstr "已删除配置文件\"%(value)s\"" - -#, python-format -msgid "Predefined profile '%(profile_id)s' cannot be deleted" -msgstr "预定义的配置文件'%(profile_id)s'不能被删除" - -#, python-format -msgid "Modified Certificate Profile \"%(value)s\"" -msgstr "已修改配置文件\"%(value)s\"" - -msgid "Certificate profiles cannot be renamed" -msgstr "证书配置文件不能被重命名" - -msgid "Role" -msgstr "角色" - -#, python-format -msgid "Added role \"%(value)s\"" -msgstr "已添加角色\"%(value)s\"" - -#, python-format -msgid "Deleted role \"%(value)s\"" -msgstr "已删除角色\"%(value)s\"" - -#, python-format -msgid "Modified role \"%(value)s\"" -msgstr "已修改角色\"%(value)s\"" - -#, python-format -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" -msgstr[0] "已匹配%(count)d个角色" - -msgid "" -"\n" -"API Schema\n" -msgstr "" -"\n" -"API 模式\n" - -msgid "" -"\n" -"Provides API introspection capabilities.\n" -msgstr "" -"\n" -"提供API自省能力。\n" - -msgid "Documentation" -msgstr "文档" - -msgid "Exclude from" -msgstr "排斥" - -msgid "Include in" -msgstr "包含" - -msgid "Help topic" -msgstr "帮助主题" - -msgid "Parameters" -msgstr "参数" - -msgid "Method of" -msgstr "方法" - -msgid "Method name" -msgstr "方法名" - -msgid "Display information about a command." -msgstr "显示一个命令信息。" - -msgid "Search for commands." -msgstr "查找命令。" - -msgid "Display information about a class." -msgstr "显示一个类信息。" - -msgid "Search for classes." -msgstr "查找类。" - -msgid "Display information about a help topic." -msgstr "显示一个帮助主题信息。" - -msgid "Search for help topics." -msgstr "查找帮助主题。" - -msgid "Required" -msgstr "必需的" - -msgid "Multi-value" -msgstr "多值" - -msgid "Always ask" -msgstr "总是询问" - -msgid "CLI name" -msgstr "CLI名称" - -msgid "Confirm (password)" -msgstr "确认(密码)" - -msgid "Default" -msgstr "默认" - -msgid "Default from" -msgstr "默认的" - -msgid "Label" -msgstr "级别" - -msgid "Convert on server" -msgstr "在服务器上转换" - -msgid "Option group" -msgstr "选项组" - -msgid "Sensitive" -msgstr "敏感的" - -msgid "Positional argument" -msgstr "位置参数" - -msgid "Display information about a command parameter." -msgstr "显示一个命令参数信息。" - -msgid "Search command parameters." -msgstr "查找命令参数。" - -msgid "Display information about a command output." -msgstr "显示一个命令输出信息。" - -msgid "Search for command outputs." -msgstr "查找命令输出。" - -msgid "Fingerprint of schema cached by client" -msgstr "客户端缓存的模式指纹" - -msgid "OTP configuration options" -msgstr "OTP配置选项" - -msgid "OTP Configuration" -msgstr "OTP配置" - -msgid "" -"\n" -"OTP Tokens\n" -msgstr "" -"\n" -"OTP令牌\n" - -msgid "" -"\n" -"Manage OTP tokens.\n" -msgstr "" -"\n" -"管理OTP 令牌。\n" - -msgid "" -"\n" -"IPA supports the use of OTP tokens for multi-factor authentication. This\n" -"code enables the management of OTP tokens.\n" -msgstr "" -"\n" -"IPA支持使用OTP令牌来多因素认证。这个码能管理OTP令牌。\n" - -msgid "OTP token" -msgstr "OTP令牌" - -msgid "OTP tokens" -msgstr "OTP令牌" - -msgid "OTP Tokens" -msgstr "OTP令牌" - -msgid "OTP Token" -msgstr "OTP令牌" - -#, python-format -msgid "Added OTP token \"%(value)s\"" -msgstr "已添加OTP令牌\"%(value)s\"" - -msgid "cannot be empty" -msgstr "不能为空" - -#, python-format -msgid "Deleted OTP token \"%(value)s\"" -msgstr "已删除OTP令牌\"%(value)s\"" - -#, python-format -msgid "Modified OTP token \"%(value)s\"" -msgstr "已修改OTP令牌\"%(value)s\"" - -#, python-format -msgid "%(count)d OTP token matched" -msgid_plural "%(count)d OTP tokens matched" -msgstr[0] "已匹配%(count)d个OTP令牌" - -msgid "host groups" -msgstr "主机组" - -msgid "Host Group" -msgstr "主机组" - -#, python-format -msgid "Added hostgroup \"%(value)s\"" -msgstr "已添加主机组\"%(value)s\"" - -#, python-format -msgid "" -"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " -"common namespace" -msgstr "网络组名\"%s\"已存在。主机组和网络组共享一个共同的名字空间" - -#, python-format -msgid "Deleted hostgroup \"%(value)s\"" -msgstr "已删除主机组\"%(value)s\"" - -msgid "hostgroup" -msgstr "主机组" - -msgid "privileged hostgroup" -msgstr "特权主机组" - -#, python-format -msgid "Modified hostgroup \"%(value)s\"" -msgstr "已修改主机组\"%(value)s\"" - -#, python-format -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "已匹配%(count)d个主机组" - -msgid "netgroups" -msgstr "网络组" - -msgid "Netgroup" -msgstr "网络组" - -#, python-format -msgid "Added netgroup \"%(value)s\"" -msgstr "已添加网络组\"%(value)s\"" - -#, python-format -msgid "" -"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " -"common namespace" -msgstr "主机组名\"%s\"已存在。主机组和网络组共享一个共同的名字空间" - -#, python-format -msgid "Deleted netgroup \"%(value)s\"" -msgstr "已删除网络组\"%(value)s\"" - -#, python-format -msgid "Modified netgroup \"%(value)s\"" -msgstr "已修改网络组\"%(value)s\"" - -#, python-format -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" -msgstr[0] "已匹配%(count)d个网络组" - -msgid "commands for controlling sudo configuration" -msgstr "控制sudo配置的命令" +msgid "%(count)d Sudo Command matched" +msgid_plural "%(count)d Sudo Commands matched" +msgstr[0] "已匹配%(count)d个Sudo命令" msgid "" "\n" @@ -11755,814 +11740,802 @@ msgstr "命令返回值" msgid "Do not update records only return expected records" msgstr "不更新记录只返回预期的记录" -msgid "The deny type has been deprecated." -msgstr "阻止类型已被弃用。" +#, python-format +msgid "Changed password for \"%(value)s\"" +msgstr "已改变\"%(value)s\"的密码" -msgid "HBAC rules" -msgstr "HBAC规则" +#, python-brace-format +msgid "{role}: role not found" +msgstr "{role}:角色没有找到" -msgid "HBAC Rules" -msgstr "HBAC规则" +#, python-brace-format +msgid "{attr}: no such attribute" +msgstr "{attr}:没有这样的属性" + +msgid "A dictionary representing an LDAP entry" +msgstr "一个字典代表一个LDAP条目" + +msgid "A list of LDAP entries" +msgstr "LDAP条目列表" + +msgid "All commands should at least have a result" +msgstr "所有命令至少有一个返回值" + +msgid "Additional instructions:" +msgstr "附加指示:" #, python-format -msgid "Added HBAC rule \"%(value)s\"" -msgstr "已添加HBAC规则\"%(value)s\"" - -#, python-format -msgid "Deleted HBAC rule \"%(value)s\"" -msgstr "已删除HBAC规则\"%(value)s\"" - -#, python-format -msgid "Modified HBAC rule \"%(value)s\"" -msgstr "已修改HBAC规则\"%(value)s\"" - -#, python-format -msgid "%(count)d HBAC rule matched" -msgid_plural "%(count)d HBAC rules matched" -msgstr[0] "已匹配%(count)d个HBAC规则" - -#, python-format -msgid "Enabled HBAC rule \"%(value)s\"" -msgstr "已启用HBAC规则\"%(value)s\"" - -#, python-format -msgid "Disabled HBAC rule \"%(value)s\"" -msgstr "已禁用HBAC规则\"%(value)s\"" - -msgid "Access time" -msgstr "访问时间" - -msgid "Unresolved rules in --rules" -msgstr "在--rules中不能解析的规则" - msgid "" -"Cannot search in trusted domains without own domain configured. Make sure " -"you have run ipa-adtrust-install on the IPA server first" +"API Version number was not sent, forward compatibility not guaranteed. " +"Assuming server's API version, %(server_version)s" msgstr "" -"没有自己的域配置不能在信任域中查找。首先确认你已经在IPA服务器上运行了ipa-" -"adtrust-install命令" +"没有发送API版本号,不能保证向前兼容。假定服务器的API版本%(server_version)s" -#, python-format -msgid "Access granted: %s" -msgstr "访问授权:%s" - -msgid "Allowed to Impersonate" -msgstr "允许模仿" - -msgid "Member principals" -msgstr "成员主体" - -msgid "Add target to a named service delegation." -msgstr "添加目标到一个命名服务授权。" - -msgid "Remove member from a named service delegation." -msgstr "从一个命名服务授权中删除成员。" - -msgid "service delegation rule" -msgstr "服务授权规则" - -msgid "service delegation rules" -msgstr "服务授权规则" - -msgid "Service delegation rules" -msgstr "服务授权规则" - -msgid "Service delegation rule" -msgstr "服务授权规则" - -#, python-format -msgid "Added service delegation rule \"%(value)s\"" -msgstr "已添加服务授权规则\"%(value)s\"" - -#, python-format -msgid "Deleted service delegation \"%(value)s\"" -msgstr "已删除服务授权规则\"%(value)s\"" - -msgid "privileged service delegation rule" -msgstr "特权服务授权规则" - -#, python-format -msgid "%(count)d service delegation rule matched" -msgid_plural "%(count)d service delegation rules matched" -msgstr[0] "已匹配%(count)d个服务授权规则" - -msgid "service delegation target" -msgstr "服务授权目标" - -msgid "service delegation targets" -msgstr "服务授权目标" - -msgid "Service delegation targets" -msgstr "服务授权目标" - -msgid "Service delegation target" -msgstr "服务授权目标" - -#, python-format -msgid "Added service delegation target \"%(value)s\"" -msgstr "已添加服务授权目标\"%(value)s\"" - -#, python-format -msgid "Deleted service delegation target \"%(value)s\"" -msgstr "已删除服务授权目标\"%(value)s\"" - -msgid "privileged service delegation target" -msgstr "特权服务授权目标" - -#, python-format -msgid "%(count)d service delegation target matched" -msgid_plural "%(count)d service delegation targets matched" -msgstr[0] "已匹配%(count)d个服务授权目标" +msgid "" +"DNS forwarder semantics changed since IPA 4.0.\n" +"You may want to use forward zones (dnsforwardzone-*) instead.\n" +"For more details read the docs." +msgstr "" +"自从IPA 4.0后DNS转发器语义改变了。你可以使用正向区域(dnsforwardzone-*)来替" +"代。查看帮助文档获取更多详细信息。" #, python-format msgid "" -"cannot add permission \"%(perm)s\" with bindtype \"%(bindtype)s\" to a " -"privilege" -msgstr "不能给一个特权添加带有绑定类型\"%(bindtype)s\"的权限\"%(perm)s\"" - -msgid "Privilege" -msgstr "特权" +"DNSSEC support is experimental.\n" +"%(additional_info)s" +msgstr "DNSSEC支持是实验性的。%(additional_info)s" #, python-format -msgid "Added privilege \"%(value)s\"" -msgstr "已添加特权\"%(value)s\"" +msgid "'%(option)s' option is deprecated. %(additional_info)s" +msgstr "'%(option)s'选项已弃用。%(additional_info)s" #, python-format -msgid "Deleted privilege \"%(value)s\"" -msgstr "已删除特权\"%(value)s\"" +msgid "" +"Semantic of %(label)s was changed. %(current_behavior)s\n" +"%(hint)s" +msgstr "%(label)s语义已改变了。%(current_behavior)s %(hint)s" #, python-format -msgid "Modified privilege \"%(value)s\"" -msgstr "已修改特权\"%(value)s\"" +msgid "DNS server %(server)s: %(error)s." +msgstr "DNS服务器%(server)s:%(error)s。" #, python-format -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "已匹配%(count)d个特权" +msgid "" +"DNS server %(server)s does not support DNSSEC: %(error)s.\n" +"If DNSSEC validation is enabled on IPA server(s), please disable it." +msgstr "" +"DNS服务器%(server)s不支持DNSSEC:%(error)s。如果DNSSEC认证在IPA服务器上启用" +"了,请禁用它。" + +#, python-format +msgid "" +"forward zone \"%(fwzone)s\" is not effective because of missing proper NS " +"delegation in authoritative zone \"%(authzone)s\". Please add NS record " +"\"%(ns_rec)s\" to parent zone \"%(authzone)s\"." +msgstr "" +"正向\"%(fwzone)s\"无效因为在认证区域\"%(authzone)s\"缺少合适的NS记录。请添加" +"NS记录\"%(ns_rec)s\"到父区域\"%(authzone)s\"。" + +#, python-format +msgid "" +"DNS server %(server)s does not support EDNS0 (RFC 6891): %(error)s.\n" +"If DNSSEC validation is enabled on IPA server(s), please disable it." +msgstr "" +"DNS服务器%(server)s不支持EDNS0 (RFC 6891):%(error)s。如果DNSSEC认证在IPA服务" +"器上启用了,请禁用它。" + +#, python-format +msgid "" +"DNSSEC validation failed: %(error)s.\n" +"Please verify your DNSSEC configuration or disable DNSSEC validation on all " +"IPA servers." +msgstr "" +"DNSSEC认证失败:%(error)s。请确认你的DNSSEC配置或者在所有IPA服务器中禁用" +"DNSSEC认证。" + +#, python-format +msgid "" +"The _kerberos TXT record from domain %(domain)s could not be created " +"(%(error)s).\n" +"This can happen if the zone is not managed by IPA. Please create the record " +"manually, containing the following value: '%(realm)s'" +msgstr "" +"不能创建域%(domain)s中的_kerberos TXT记录(%(error)s)。可能是因为该区域没有被" +"IPA管理。请手动创建该记录,包含下面值:'%(realm)s'" + +#, python-format +msgid "" +"The _kerberos TXT record from domain %(domain)s could not be removed " +"(%(error)s).\n" +"This can happen if the zone is not managed by IPA. Please remove the record " +"manually." +msgstr "" +"不能移除域%(domain)s中的_kerberos TXT记录(%(error)s)。可能是因为该区域没有被" +"IPA管理。请手动移除该记录。" msgid "" -"\n" -"IPA certificate operations\n" +"No DNSSEC key master is installed. DNSSEC zone signing will not work until " +"the DNSSEC key master is installed." +msgstr "没有安装DNSSEC密钥主机。DNSSEC区域签名不会工作直到安装DNSSEC密钥主机。" + +#, python-format +msgid "" +"Relative record name '%(record)s' contains the zone name '%(zone)s' as a " +"suffix, which results in FQDN '%(fqdn)s'. This is usually a mistake caused " +"by a missing dot at the end of the name specification." msgstr "" -"\n" -"IPA证书操作\n" +"相对记录名'%(record)s'将区域名'%(zone)s'当作一个后缀,导致FQDN '%(fqdn)s'。这" +"通常是由于在名称规范后缺少一个点号引起的错误。" + +#, python-format +msgid "'%(command)s' is deprecated. %(additional_info)s" +msgstr "'%(command)s'已被弃用。%(additional_info)s" + +#, python-format +msgid "Search result has been truncated: %(reason)s" +msgstr "查找结果被截断:%(reason)s" + +#, python-format +msgid "" +"Your trust to %(domain)s is broken. Please re-create it by running 'ipa " +"trust-add' again." +msgstr "你对域%(domain)s的信任已中断。请再次运行'ipa trust-add'来重新创建它。" + +#, python-format +msgid "DNS record(s) of host %(host)s could not be removed. (%(reason)s)" +msgstr "主机%(host)s的DNS记录不能被移除。(%(reason)s)" + +#, python-format +msgid "Update of system record '%(record)s' failed with error: %(error)s" +msgstr "更新系统记录'%(record)s'失败:%(error)s" + +#, python-format +msgid "" +"IPA does not manage the zone %(zone)s, please add records to your DNS server " +"manually" +msgstr "IPA没有管理区域%(zone)s,请手动在你的DNS服务器上添加记录" msgid "" -"\n" -"Implements a set of commands for managing server SSL certificates.\n" -msgstr "" -"\n" -"实现了一组命令来管理服务器的SSL证书。\n" +"Automatic update of DNS system records failed. Please re-run update of " +"system records manually to get list of missing records." +msgstr "自动更新DNS系统记录失败。请手动重新运行更新系统记录来获取缺少的记录。" +#, python-format msgid "" -"\n" -"Certificate requests exist in the form of a Certificate Signing Request " -"(CSR)\n" -"in PEM format.\n" -msgstr "" -"\n" -"证书请求以PEM格式的证书签名请求(CSR)的形式存在。\n" +"Service %(service)s requires restart on IPA server %(server)s to apply " +"configuration changes." +msgstr "应用改变的配置需要在IPA服务器%(server)s上重启服务%(service)s。" +#, python-format msgid "" -"\n" -"The dogtag CA uses just the CN value of the CSR and forces the rest of the\n" -"subject to values configured in the server.\n" +"No DNS servers in IPA location %(location)s. Without DNS servers location is " +"not working as expected." msgstr "" -"\n" -"dogtag CA只是使用CSR的CN值,并强制主题的其他值在服务器中配置。\n" +"在IPA位置%(location)s没有DNS服务器。没有DNS服务器位置是不会按预期工作的。" -msgid "" -"\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" -msgstr "" -"\n" -"一个证书是以一个服务主体存储,并一个服务主体需要一个主机。\n" +#, python-format +msgid "%(subject)s: Invalid certificate. %(reason)s" +msgstr "%(subject)s:无效的证书。%(reason)s" -msgid "" -"\n" -"In order to request a certificate:\n" -msgstr "" -"\n" -"为了请求一个证书:\n" +msgid "Results are truncated, try a more specific search" +msgstr "结果被截断,请尝试更明确的搜索" -msgid "" -"\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add " -"it)\n" -msgstr "" -"\n" -"* 主机必须存在\n" -"* 服务必须存在(或者你使用--add选项来自动添加它)\n" +msgid "any of the configured servers" +msgstr "任何已配置的服务器" -msgid "" -"\n" -"SEARCHING:\n" -msgstr "" -"\n" -"查找:\n" +#, python-format +msgid "%(count)d variables" +msgstr "%(count)d个变量" -msgid "" -"\n" -"Certificates may be searched on by certificate subject, serial number,\n" -"revocation reason, validity dates and the issued date.\n" -msgstr "" -"\n" -"证书可能通过证书主题,序列号,撤销原因,有效日期和发布日期来查询。\n" +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "已加载%(count)d个插件" -msgid "" -"\n" -"Dates are treated as GMT to match the dates in the certificates.\n" -msgstr "" -"\n" -"GMT格式的日期用来匹配证书里的日期。\n" +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "再次输入 %(label)s进行校验: " -msgid "" -"\n" -"The date format is YYYY-mm-dd.\n" -msgstr "" -"\n" -"日期格式是YYYY-mm-dd。\n" +msgid "No matching entries found" +msgstr "发现了不匹配的条目" -msgid "" -"\n" -"The following revocation reasons are supported:\n" -"\n" -msgstr "" -"\n" -"支持下面的撤销原因:\n" +msgid "Topic or Command" +msgstr "主题或命令" +msgid "The topic or command name." +msgstr "主题或命令名。" + +msgid "Topic commands:" +msgstr "主题命令:" + +msgid "To get command help, use:" +msgstr "获取命令帮助,使用:" + +msgid "Command name" +msgstr "命令名" + +msgid "Positional arguments" +msgstr "位置参数" + +#, python-format +msgid "Same as --%s" +msgstr "相同于 --%s" + +msgid "Deprecated options" +msgstr "已弃用的选项" + +msgid "No file to read" +msgstr "无文件可读" + +#, python-format +msgid "%(filename)s: file not found" +msgstr "%(filename)s:文件没找到" + +msgid "incorrect type" +msgstr "不正确的类型" + +msgid "Only one value is allowed" +msgstr "只允许一个值" + +msgid "this option is deprecated" +msgstr "该选项已被弃用" + +msgid "must be True or False" +msgstr "必须是True或False" + +msgid "must be an integer" +msgstr "必须是一个整数" + +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "必须至少%(minvalue)d" + +#, python-format +msgid "can be at most %(maxvalue)d" +msgstr "最多%(maxvalue)d" + +msgid "must be a decimal number" +msgstr "必须是一个十进制数" + +#, python-format +msgid "must be at least %(minvalue)s" +msgstr "必须至少%(minvalue)s" + +#, python-format +msgid "can be at most %(maxvalue)s" +msgstr "最多%(maxvalue)s" + +#, python-format msgid "" -"\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" -msgstr "" -"\n" -"注意没有使用原因码7。查看RFC 5280以获取更多详细信息:\n" +"number class '%(cls)s' is not included in a list of allowed number classes: " +"%(allowed)s" +msgstr "数字类'%(cls)s'不在允许的数字类列表中:%(allowed)s" + +#, python-format +msgid "must match pattern \"%(pattern)s\"" +msgstr "必须匹配模式\"%(pattern)s\"" + +msgid "must be binary data" +msgstr "必须是二进制数据" + +#, python-format +msgid "must be at least %(minlength)d bytes" +msgstr "必须至少%(minlength)d字节" + +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "最多%(maxlength)d字节" + +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "必须恰好是%(length)d字节" #, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "解码证书签名请求失败:%s" +msgid "must be Unicode text" +msgstr "必须是Unicode文本" + +msgid "Leading and trailing spaces are not allowed" +msgstr "开头和结尾空格是不允许的" + #, python-format -msgid "" -"Principal '%(principal)s' is not permitted to use CA '%(ca)s' with profile " -"'%(profile_id)s' for certificate issuance." -msgstr "" -"主体'%(principal)s'不允许使用含配置文件'%(profile_id)s'的CA '%(ca)s'来发布证" -"书。" +msgid "must be at least %(minlength)d characters" +msgstr "必须至少%(minlength)d字符" -msgid "Issuing CA" -msgstr "发行CA" +#, python-format +msgid "can be at most %(maxlength)d characters" +msgstr "最多%(maxlength)d字符" -msgid "Name of issuing CA" -msgstr "签发的CA名称" +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "必须恰好是%(length)d字符" -msgid "Subject email address" -msgstr "主题电子邮件地址" +#, python-format +msgid "The character %(char)r is not allowed." +msgstr "字符%(char)r是不允许的。" -msgid "Subject DNS name" -msgstr "主题DNS名" +#, python-format +msgid "must be '%(value)s'" +msgstr "必须是'%(value)s'" -msgid "Subject X.400 address" -msgstr "主题X.400地址" +#, python-format +msgid "must be one of %(values)s" +msgstr "必须是%(values)s中的一个" -msgid "Subject directory name" -msgstr "主题目录名" +msgid "must be datetime value" +msgstr "必须是时间值" -msgid "Subject EDI Party name" -msgstr "主题EDI参与方名称" +msgid "does not match any of accepted formats: " +msgstr "不匹配任何可接受的格式:" -msgid "Subject URI" -msgstr "主题URI" +msgid "incomplete time value" +msgstr "不完整的时间值" -msgid "Subject IP Address" -msgstr "主题IP地址" +msgid "must be DNS name" +msgstr "必须是DNS名" -msgid "Subject OID" -msgstr "主题OID" +msgid "must be absolute" +msgstr "必须是绝对的" -msgid "Subject UPN" -msgstr "主题UPN" +msgid "must be relative" +msgstr "必须是相对的" -msgid "Subject Kerberos principal name" -msgstr "主题Kerberos主体名" +msgid "must be dictionary" +msgstr "必须是字典" -msgid "Subject Other Name" -msgstr "主题别名" +msgid "must be Kerberos principal" +msgstr "必须是Kerberos主体" -msgid "Serial number (hex)" -msgstr "序列号(十六进制)" +#, python-format +msgid "Malformed principal: '%(value)s'" +msgstr "有缺陷的主体:'%(value)s'" -msgid "Request status" -msgstr "请求状态" +msgid "Service principal is required" +msgstr "需要服务主体" -msgid "" -"automatically add the principal if it doesn't exist (service principals only)" -msgstr "如果主体不存在则自动添加它(仅对服务主体)" +msgid "Filename is empty" +msgstr "文件名为空" -msgid "No Common Name was found in subject of request." -msgstr "在请求的主题中找不到通用名。" +#, python-format +msgid "Permission denied: %(file)s" +msgstr "权限阻止:%(file)s" + +msgid "empty DNS label" +msgstr "空的DNS标签" + +msgid "DNS label cannot be longer that 63 characters" +msgstr "DNS标签不能长于63个字符" #, python-format msgid "" -"hostname in subject of request '%(cn)s' does not match principal hostname " -"'%(hostname)s'" -msgstr "请求主题'%(cn)s'的主机名与主体主机名'%(hostname)s'不匹配" +"only letters, numbers, %(chars)s are allowed. DNS label may not start or end " +"with %(chars2)s" +msgstr "只允许字母,数字和%(chars)s。DNS标签不能以%(chars2)s开始或结束" -msgid "DN commonName does not match user's login" -msgstr "DN通用名与用户登录名不匹配" +msgid "too many '@' characters" +msgstr "太多'@'字符" -msgid "DN emailAddress does not match any of user's email addresses" -msgstr "DN电子邮件地址不匹配任何用户的电子邮件地址" +msgid "cannot be longer that 255 characters" +msgstr "不能长于255个字符" + +msgid "hostname contains empty label (consecutive dots)" +msgstr "主机名包含空的标签(连续的点)" + +msgid "not fully qualified" +msgstr "没有完全限制" + +msgid "invalid SSH public key" +msgstr "无效的SSH公钥" + +msgid "options are not allowed" +msgstr "选项是不允许的" + +msgid "invalid hostmask" +msgstr "无效的hostmask" + +#, python-format +msgid "query '%(owner)s %(rtype)s': %(error)s" +msgstr "查询'%(owner)s %(rtype)s':%(error)s" + +#, python-format +msgid "query '%(owner)s %(rtype)s' with EDNS0: %(error)s" +msgstr "用EDNS0查询'%(owner)s %(rtype)s':%(error)s" #, python-format msgid "" -"Insufficient 'write' privilege to the 'userCertificate' attribute of entry " -"'%s'." -msgstr "对条目'%s'的'userCertificate'属性没有'write'权限。" +"answer to query '%(owner)s %(rtype)s' is missing DNSSEC signatures (no RRSIG " +"data)" +msgstr "查询答案'%(owner)s %(rtype)s'缺少DNSSEC签名(没有RRSIG数据)" #, python-format -msgid "subject alt name type %s is forbidden for user principals" -msgstr "主题alt名称类型%s禁止用户主体" +msgid "record '%(owner)s %(rtype)s' failed DNSSEC validation on server %(ip)s" +msgstr "记录'%(owner)s %(rtype)s'DNSSEC验证服务器 %(ip)s失败" + +msgid "invalid escape code in domain name" +msgstr "无效的域名转换代码" + +msgid "domain name cannot be longer than 255 characters" +msgstr "域名不能长于255个字符" + +msgid "DNS label cannot be longer than 63 characters" +msgstr "DNS标签不能长于63个字符" + +msgid "invalid domain name" +msgstr "无效的域名" + +#, python-format +msgid "domain name '%(domain)s' should be normalized to: %(normalized)s" +msgstr "域名'%(domain)s'应该规范化:%(normalized)s" + +#, python-format +msgid "invalid domain-name: %s" +msgstr "无效的域名:%s" + +#, python-format +msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!" +msgstr "无效的IP地址版本(是%(value)d,必须是%(required_value)d)!" + +msgid "invalid IP address format" +msgstr "无效的IP地址格式" + +#, python-format +msgid "%(port)s is not a valid port" +msgstr "%(port)s不是一个有效的端口" + +msgid "" +"at least one value equal to the canonical principal name must be present" +msgstr "必须存在至少一个值等同规范主体名称" + +msgid "realm or UPN suffix overlaps with trusted domain namespace" +msgstr "域或UPN后缀覆盖信任域命名空间" + +#, python-format +msgid "%(cver)s client incompatible with %(sver)s server at '%(server)s'" +msgstr "%(cver)s客户端和在'%(server)s'的%(sver)s服务器不兼容" + +#, python-format +msgid "unknown error %(code)d from %(server)s: %(error)s" +msgstr "%(server)s上未知的错误%(code)d:%(error)s" + +msgid "an internal error has occurred" +msgstr "发生了内部错误" + +#, python-format +msgid "an internal error has occurred on server at '%(server)s'" +msgstr "服务器 '%(server)s' 已经发生了一次内部错误" + +#, python-format +msgid "unknown command '%(name)s'" +msgstr "未知的命令'%(name)s'" + +#, python-format +msgid "error on server '%(server)s': %(error)s" +msgstr "服务器'%(server)s'错误:%(error)s" + +#, python-format +msgid "cannot connect to '%(uri)s': %(error)s" +msgstr "不能连接到'%(uri)s':%(error)s" + +#, python-format +msgid "Invalid JSON-RPC request: %(error)s" +msgstr "无效的JSON-RPC请求: %(error)s" + +#, python-format +msgid "error marshalling data for XML-RPC transport: %(error)s" +msgstr "XML-RPC传输数据整理错误:%(error)s" + +#, python-format +msgid "Missing or invalid HTTP Referer, %(referer)s" +msgstr "丢失或者无效的 HTTP Referer, %(referer)s" + +#, python-format +msgid "Kerberos error: %(major)s/%(minor)s" +msgstr "Kerberos 错误: %(major)s/%(minor)s" + +msgid "did not receive Kerberos credentials" +msgstr "没有收到Kerberos凭证" + +#, python-format +msgid "Service '%(service)s' not found in Kerberos database" +msgstr "在Kerberos数据库中没有找到服务'%(service)s'" + +msgid "No credentials cache found" +msgstr "没有找到凭证缓存" + +msgid "Ticket expired" +msgstr "票据过期" + +msgid "Credentials cache permissions incorrect" +msgstr "凭证缓存权限不正确" + +msgid "Bad format in credentials cache" +msgstr "凭证缓存格式错误" + +msgid "Cannot resolve KDC for requested realm" +msgstr "请求域中不能解析KDC" + +msgid "Session error" +msgstr "会话错误" + +#, python-format +msgid "Principal %(principal)s cannot be authenticated: %(message)s" +msgstr "不能认证主体%(principal)s:%(message)s" + +#, python-format +msgid "Insufficient access: %(info)s" +msgstr "访问受限:%(info)s" + +#, python-format +msgid "command '%(name)s' takes no arguments" +msgstr "命令'%(name)s'没有参数" + +#, python-format +msgid "command '%(name)s' takes at most %(count)d argument" +msgid_plural "command '%(name)s' takes at most %(count)d arguments" +msgstr[0] "命令'%(name)s'最多能带%(count)d个参数" + +#, python-format +msgid "overlapping arguments and options: %(names)s" +msgstr "覆盖参数和选项:%(names)s" + +#, python-format +msgid "'%(name)s' is required" +msgstr "需要'%(name)s'" + +#, python-format +msgid "invalid '%(name)s': %(error)s" +msgstr "无效的'%(name)s':%(error)s" + +#, python-format +msgid "api has no such namespace: '%(name)s'" +msgstr "api没有这样的命名空间:'%(name)s'" + +msgid "Passwords do not match" +msgstr "密码不匹配" + +msgid "Command not implemented" +msgstr "命令没有实现" + +msgid "Client is not configured. Run ipa-client-install." +msgstr "客户端没有配置。运行ipa-client-install。" + +#, python-format +msgid "Could not get %(name)s interactively" +msgstr "不能交互式地获取%(name)s" + +#, python-format +msgid "Command '%(name)s' has been deprecated" +msgstr "命令'%(name)s'已被弃用" + +#, python-format +msgid "Domain '%(domain)s' is not a root domain for forest '%(forest)s'" +msgstr "域'%(domain)s'不是一个森林'%(forest)s'的根域" + +#, python-format +msgid "%(reason)s" +msgstr "%(reason)s" + +msgid "This entry already exists" +msgstr "条目已经存在" + +msgid "You must enroll a host in order to create a host service" +msgstr "要创建一个主机服务,你必须注册一个主机" #, python-format msgid "" -"The service principal for subject alt name %s in certificate request does " -"not exist" -msgstr "在证书请求中主题alt名为%s的服务主体不存在" +"Service principal is not of the form: service/fully-qualified host name: " +"%(reason)s" +msgstr "服务主体不是这种格式:服务名/完全限定的主机名:%(reason)s" + +msgid "" +"The realm for the principal does not match the realm for this IPA server" +msgstr "主体域在该IPA服务器域中不匹配" + +msgid "This command requires root access" +msgstr "该命令需要root访问权限" + +msgid "This is already a posix group" +msgstr "这已经是一个posix组" + +#, python-format +msgid "Principal is not of the form user@REALM: '%(principal)s'" +msgstr "主体不是这种格式user@REALM:'%(principal)s'" + +msgid "This entry is already enabled" +msgstr "条目已启用" + +msgid "This entry is already disabled" +msgstr "条目已禁用" + +msgid "This entry cannot be enabled or disabled" +msgstr "条目不能被启用或禁用" + +msgid "This entry is not a member" +msgstr "条目不是一个成员" + +msgid "A group may not be a member of itself" +msgstr "一个组不能是自己的成员" + +msgid "This entry is already a member" +msgstr "条目已经时一个成员" + +#, python-format +msgid "Base64 decoding failed: %(reason)s" +msgstr "Base64解码失败: %(reason)s" + +msgid "A group may not be added as a member of itself" +msgstr "一个组不能是自己的成员" + +msgid "The default users group cannot be removed" +msgstr "默认的用户组不成被删除" + +msgid "Deleting a managed group is not allowed. It must be detached first." +msgstr "删除一个管理组时不允许的。它必须先分离出来。" + +msgid "A managed group cannot have a password policy." +msgstr "管理组不能有密码策略。" + +#, python-format +msgid "'%(entry)s' doesn't have a certificate." +msgstr "'%(entry)s'没有证书。" + +#, python-format +msgid "Unable to create private group. A group '%(group)s' already exists." +msgstr "不能创建私有组。组'%(group)s'已存在。" #, python-format msgid "" -"Insufficient privilege to create a certificate with subject alt name '%s'." -msgstr "没有权限创建主题alt名为'%s'的证书。" +"A problem was encountered when verifying that all members were %(verb)s: " +"%(exc)s" +msgstr "遇到的问题是什么时候验证所有成员是%(verb)s:%(exc)s" #, python-format -msgid "Principal '%s' in subject alt name does not match requested principal" -msgstr "在主题alt名中的主体'%s'与请求的主体不匹配" - -msgid "RFC822Name does not match any of user's email addresses" -msgstr "RFC822名称与任何用户的电子邮件地址都不匹配" - -#, python-format -msgid "subject alt name type %s is forbidden for non-user principals" -msgstr "主题alt名称类型%s禁止非用户主体" - -#, python-format -msgid "Subject alt name type %s is forbidden" -msgstr "主题alt名称类型%s被禁止" - -#, python-format -msgid "CA '%s' is disabled" -msgstr "CA'%s'被禁用" - -msgid "'add' option" -msgstr "'add'选项" - -msgid "Revoked" -msgstr "撤销" - -msgid "" -"Reason for revoking the certificate (0-10). Type \"ipa help cert\" for " -"revocation reason details. " -msgstr "撤销证书的原因(0-10)。输入\"ipa help cert\"来查看详细撤销原因。" - -#, python-format -msgid "Owner %s" -msgstr "所有者%s" +msgid "%(attr)s does not contain '%(value)s'" +msgstr "%(attr)s没有包含'%(value)s'" #, python-format msgid "" -"Certificate with serial number %(serial)s issued by CA '%(ca)s' not found" -msgstr "由CA'%(ca)s'发布序列号为%(serial)s的证书没有找到" +"The search criteria was not specific enough. Expected 1 and found %(found)d." +msgstr "查找条件不够具体。预期1和找到%(found)d。" -msgid "7 is not a valid revocation reason" -msgstr "7不是一个有效的撤销原因" +msgid "This group already allows external members" +msgstr "该组已允许外部成员" -msgid "Results should contain primary key attribute only (\"certificate\")" -msgstr "结果应该只包括主键属性(\"certificate\")" +msgid "This group cannot be posix because it is external" +msgstr "该组不是posix因为它是外部的" + +msgid "This is already a posix group and cannot be converted to external one" +msgstr "这已经是一个posix组了,并且不能转换为外部的" #, python-format -msgid "%(count)d certificate matched" -msgid_plural "%(count)d certificates matched" -msgstr[0] "已匹配%(count)d个证书" +msgid "Server removal aborted: %(reason)s." +msgstr "服务器删除失败:%(reason)s。" #, python-format -msgid "Search for certificates with these owner %s." -msgstr "查找含这些所有者%s的证书。" +msgid "%(operation)s is not supported for %(principal_type)s principals" +msgstr "%(operation)s不支持主体 %(principal_type)s" #, python-format -msgid "Search for certificates without these owner %s." -msgstr "查找不含这些所有者%s的证书。" +msgid "Request failed with status %(status)s: %(reason)s" +msgstr "请求失败状态%(status)s:%(reason)s" -msgid "Non-Active Directory domain" -msgstr "非活动目录域" +#, python-format +msgid "no command nor help topic '%(topic)s'" +msgstr "没有命令也没有帮助主题'%(topic)s'" -msgid "RFC4120-compliant Kerberos realm" -msgstr "RFC4120-兼容的Kerberos域" +msgid "change collided with another change" +msgstr "修改冲突" -msgid "" -"Non-transitive external trust to a domain in another Active Directory forest" -msgstr "不传递外部信任到另一个活动目录森林的域中" +msgid "no modifications to be performed" +msgstr "没有修改" -msgid "Trusting forest" -msgstr "信任森林" +msgid "limits exceeded for this query" +msgstr "超出该查询的限制" -msgid "Trusted forest" -msgstr "信任森林" +#, python-format +msgid "%(info)s" +msgstr "%(info)s" -msgid "Established and verified" -msgstr "已建立和验证" +msgid "modifying primary key is not allowed" +msgstr "修改主键是不允许的" -msgid "Waiting for confirmation by remote side" -msgstr "等待远程端的确认" +#, python-format +msgid "%(attr)s: Only one value allowed." +msgstr "%(attr)s:仅允许一个值。" -msgid "Unknown" -msgstr "未知的" +#, python-format +msgid "%(attr)s: Invalid syntax." +msgstr "%(attr)s:无效的语法。" + +#, python-format +msgid "Bad search filter %(info)s" +msgstr "不正确的查询筛选器%(info)s" + +msgid "Not allowed on non-leaf entry" +msgstr "在非叶子条目上是不允许的" + +msgid "LDAP timeout" +msgstr "LDAP超时" + +#, python-format +msgid "%(task)s LDAP task timeout, Task DN: '%(task_dn)s'" +msgstr "%(task)s LDAP任务超时,任务DN:'%(task_dn)s'" + +msgid "Configured time limit exceeded" +msgstr "配置时间超出限制" + +msgid "Configured size limit exceeded" +msgstr "配置大小超出限制" + +msgid "Configured administrative server limit exceeded" +msgstr "配置管理服务器超出限制" + +#, python-format +msgid "Certificate operation cannot be completed: %(error)s" +msgstr "证书操作没有完成:%(error)s" + +#, python-format +msgid "Certificate format error: %(error)s" +msgstr "证书格式错误:%(error)s" + +msgid "Already registered" +msgstr "已注册" + +msgid "Not registered yet" +msgstr "尚未注册" + +#, python-format +msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it" +msgstr "%(key)s不能被删除因为%(label)s %(dependent)s需要它" #, python-format msgid "" -" Alternatively, following servers are capable of running this command: " -"%(masters)s" -msgstr "另外,下面服务器可以运行该命令:%(masters)s" - -msgid "AD Trust setup" -msgstr "AD信任设置" - -msgid "" -"Cannot perform the selected command without Samba 4 support installed. Make " -"sure you have installed server-trust-ad sub-package of IPA." -msgstr "" -"没有安装Samba 4不能执行被选命令。确认你已经在IPA上安装了server-trust-ad子包。" - -msgid "" -"Cannot perform the selected command without Samba 4 instance configured on " -"this machine. Make sure you have run ipa-adtrust-install on this server." -msgstr "" -"没有在该机器上进行Samba 4实例配置不能执行被选命令。确认你已经在该服务器上运行" -"ipa-adtrust-install。" - -msgid "" -"Fetching domains from trusted forest failed. See details in the error_log" -msgstr "从信任森林中获取域失败。在error_log中查看详细信息" - -msgid "trust" -msgstr "信任" - -msgid "trusts" -msgstr "信任" - -msgid "Trust" -msgstr "信任" - -msgid "UPN suffixes" -msgstr "UPN后缀" +"%(key)s cannot be deleted or disabled because it is the last member of " +"%(label)s %(container)s" +msgstr "%(key)s不能被删除或禁用因为它是%(label)s %(container)s的最后一个成员" #, python-format -msgid "invalid SID: %(value)s" -msgstr "无效的SID:%(value)s" - -#, python-brace-format -msgid "Type of trusted domain ID range, one of {vals}" -msgstr "信任域ID范围类型,是{vals}其中之一" - -msgid "External trust" -msgstr "外部的信任" - -msgid "" -"Establish external trust to a domain in another forest. The trust is not " -"transitive beyond the domain." -msgstr "建立外部信任到另一个森林域中。信任不会在域外传递。" +msgid "%(label)s %(key)s cannot be deleted/modified: %(reason)s" +msgstr "%(label)s %(key)s不能被删除/修改:%(reason)s" #, python-format -msgid "Added Active Directory trust for realm \"%(value)s\"" -msgstr "已添加活动目录域\"%(value)s\"" +msgid "%(name)s certificate is not valid" +msgstr "%(name)s证书无效" #, python-format -msgid "Re-established trust to domain \"%(value)s\"" -msgstr "重建信任域\"%(value)s\"" - -msgid "missing base_id" -msgstr "缺少base_id" - -msgid "pysss_murmur is not available on the server and no base-id is given." -msgstr "pysss_murmur在服务器上不可用并没有提供base-id。" - -msgid "trust type" -msgstr "信任类型" - -msgid "only \"ad\" is supported" -msgstr "仅支持\"ad\"" - -msgid "" -"Cannot establish a trust to AD deployed in the same domain as IPA. Such " -"setup is not supported." -msgstr "不能建立一个信任到部署在IPA同一域中的AD。这样的设置不支持。" - -msgid "Realm-domain mismatch" -msgstr "Realm-domain不匹配" - -msgid "" -"To establish trust with Active Directory, the domain name and the realm name " -"of the IPA server must match" -msgstr "为了建立信任活动目录,IPA服务器的域名和realm名必须匹配" +msgid "Schema is up to date (FP '%(fingerprint)s', TTL %(ttl)s s)" +msgstr "模式是最新的(FP '%(fingerprint)s', TTL %(ttl)s s)" #, python-format -msgid "" -"Trusted domain %(domain)s is included among IPA realm domains. It needs to " -"be removed prior to establishing the trust. See the \"ipa realmdomains-mod --" -"del-domain\" command." -msgstr "" -"信任域%(domain)s包含在IPArealm域中。建立信任需要删除之前的。查看\"ipa " -"realmdomains-mod --del-domain\"命令。" - -msgid "Trusted domain and administrator account use different realms" -msgstr "信任域和管理员账户使用不同域" - -msgid "Realm administrator password should be specified" -msgstr "域管理员密码应该被指定" - -msgid "id range type" -msgstr "id范围类型" - -msgid "" -"Only the ipa-ad-trust and ipa-ad-trust-posix are allowed values for --range-" -"type when adding an AD trust." -msgstr "" -"当添加一个AD信任时仅有ipa-ad-trust和ipa-ad-trust-posix允许--range-type值。" - -msgid "id range" -msgstr "id范围" - -msgid "" -"An id range already exists for this trust. You should either delete the old " -"range, or exclude --base-id/--range-size options from the command." -msgstr "" -"id范围已在该域中存在。你要么删除旧的范围,要么从命令中排除--base-id/--range-" -"size选项。" - -msgid "range exists" -msgstr "范围内存在" - -msgid "" -"ID range with the same name but different domain SID already exists. The ID " -"range for the new trusted domain must be created manually." -msgstr "同名但不同域SID的ID范围已存在。新信任域的ID范围必须手动创建。" - -msgid "range type change" -msgstr "范围类型改变" - -msgid "" -"ID range for the trusted domain already exists, but it has a different type. " -"Please remove the old range manually, or do not enforce type via --range-" -"type option." -msgstr "" -"信任域的ID范围已存在,但它有一个不同类型。请手动删除旧的范围,或者通过--" -"range-type选项不强制类型。" +msgid "Host '%(hostname)s' does not have corresponding DNS A/AAAA record" +msgstr "主机'%(hostname)s'没有相配的DNS A/AAAA记录" #, python-format -msgid "Unable to resolve domain controller for '%s' domain. " -msgstr "不能为域'%s'解析域控制器。" +msgid "DNS check failed: Expected {%(expected)s} got {%(got)s}" +msgstr "DNS检测失败:预期的{%(expected)s},得到的{%(got)s}" -msgid "" -"Forward policy is defined for it in IPA DNS, perhaps forwarder points to " -"incorrect host?" -msgstr "在IPA DNS中转发器策略阻止了它,也许是转发器指向了不正确的主机?" +msgid "Out of memory\n" +msgstr "内存不足\n" -#, python-format -msgid "" -"IPA manages DNS, please verify your DNS configuration and make sure that " -"service records of the '%(domain)s' domain can be resolved. Examples how to " -"configure DNS with CLI commands or the Web UI can be found in the " -"documentation. " -msgstr "" -"IPA管理DNS,请验证你的DNS配置并确认域'%(domain)s'的服务记录能被解析。怎么用" -"CLI命令或Web UI配置DNS的例子可以在文档中找到。" +msgid "Warning unrecognized encryption type.\n" +msgstr "警告无法识别加密类型。\n" -#, python-format -msgid "" -"Since IPA does not manage DNS records, ensure DNS is configured to resolve " -"'%(domain)s' domain from IPA hosts and back." -msgstr "由于IPA不管理DNS记录,确认在IPA主机中DNS已配置来解析域'%(domain)s'。" +msgid "Warning unrecognized salt type.\n" +msgstr "警告无法识别盐值类型。\n" -msgid "Unable to verify write permissions to the AD" -msgstr "不能在AD中验证写权限" +msgid "Out of memory!?\n" +msgstr "内存不足!?\n" -msgid "Not enough arguments specified to perform trust setup" -msgstr "执行信任设置时没有指定足够的参数" +msgid "Enctype comparison failed!\n" +msgstr "加密类型比较失败!\n" -#, python-format -msgid "Deleted trust \"%(value)s\"" -msgstr "已删除信任\"%(value)s\"" +msgid "Failed to create random key!\n" +msgstr "创建随机密钥失败!\n" -#, python-format -msgid "Modified trust \"%(value)s\" (change will be effective in 60 seconds)" -msgstr "已修改信任\"%(value)s\"(改变将在60s内生效)" +msgid "Failed to create key!\n" +msgstr "创建密钥失败!\n" -#, python-format -msgid "%(count)d trust matched" -msgid_plural "%(count)d trusts matched" -msgstr[0] "已匹配%(count)d个信任" - -msgid "trust configuration" -msgstr "信任配置" - -msgid "Global Trust Configuration" -msgstr "全局信任配置" - -msgid "IPA AD trust agents" -msgstr "IPA AD信任代理" - -msgid "IPA servers configured as AD trust agents" -msgstr "IPA服务器配置为AD信任代理" - -msgid "IPA AD trust controllers" -msgstr "IPA AD信任控制器" - -msgid "IPA servers configured as AD trust controllers" -msgstr "IPA服务器配置为AD信任控制器" - -msgid "unsupported trust type" -msgstr "不支持的信任类型" - -#, python-format -msgid "Modified \"%(value)s\" trust configuration" -msgstr "已修改\"%(value)s\"信任配置" - -msgid "" -"This command relies on the existence of the \"editors\" group, but this " -"group was not found." -msgstr "该命令依赖于\"editors\"组的存在,但是该组没有找到。" - -msgid "trust domain" -msgstr "信任域" - -msgid "trust domains" -msgstr "信任域" - -msgid "Trusted domains" -msgstr "已信任的域" - -msgid "Trusted domain" -msgstr "已信任的域" - -msgid "Domain enabled" -msgstr "域已启用" - -#, python-format -msgid "Removed information about the trusted domain \"%(value)s\"" -msgstr "删除信任域\"%(value)s\"的信息" - -msgid "" -"cannot delete root domain of the trust, use trust-del to delete the trust " -"itself" -msgstr "不能删除信任的根域,使用trust-del来删除它自己的信任" - -msgid "" -"List of trust domains successfully refreshed. Use trustdomain-find command " -"to list them." -msgstr "信任域列表更新成功。使用trustdomain-find命令来列举它们。" - -#, python-format -msgid "Enabled trust domain \"%(value)s\"" -msgstr "已启用信任域\"%(value)s\"" - -msgid "Root domain of the trust is always enabled for the existing trust" -msgstr "信任的根域总是支持现有的信任" - -#, python-format -msgid "Disabled trust domain \"%(value)s\"" -msgstr "已禁用信任域\"%(value)s\"" - -msgid "" -"cannot disable root domain of the trust, use trust-del to delete the trust " -"itself" -msgstr "不能禁用信任的根域,使用trust-del来删除它自己的信任" - -msgid "configuration options" -msgstr "配置选项" - -msgid "Configuration" -msgstr "配置" - -msgid "IPA masters" -msgstr "IPA主服务器" - -msgid "List of all IPA masters" -msgstr "所有IPA主服务器列表" - -msgid "IPA CA servers" -msgstr "IPA CA服务器" - -msgid "IPA servers configured as certificate authority" -msgstr "IPA服务器配置为证书认证机构" - -msgid "IPA NTP servers" -msgstr "IPA NTP服务器" - -msgid "IPA servers with enabled NTP" -msgstr "启用NTP的IPA服务器" - -msgid "IPA CA renewal master" -msgstr "IPA CA更新主服务器" - -msgid "Renewal master for IPA certificate authority" -msgstr "为IPA证书认证机构更新主服务器" - -msgid "The group doesn't exist" -msgstr "组不存在" - -#, python-format -msgid "attribute \"%s\" not allowed" -msgstr "不允许属性\"%s\"" - -msgid "May not be empty" -msgstr "可能不是闲置的" - -#, python-format -msgid "%(obj)s default attribute %(attr)s would not be allowed!" -msgstr "%(obj)s默认属性%(attr)s是不允许的!" - -msgid "A list of SELinux users delimited by $ expected" -msgstr "SELinux用户列表期望以$分隔" - -#, python-format -msgid "SELinux user '%(user)s' is not valid: %(error)s" -msgstr "SELinux用户'%(user)s'是无效的:%(error)s" - -msgid "SELinux user map default user not in order list" -msgstr "SELinux用户映射默认用户没有在列表中" - -msgid "Stage Users" -msgstr "计划用户" - -msgid "Stage User" -msgstr "计划用户" - -msgid "stage user" -msgstr "计划用户" - -msgid "stage users" -msgstr "计划用户" - -#, python-format -msgid "Added stage user \"%(value)s\"" -msgstr "已添加计划用户\"%(value)s\"" - -msgid "givenname is required" -msgstr "需要名字" - -msgid "sn is required" -msgstr "需要sn" - -#, python-format -msgid "Deleted stage user \"%(value)s\"" -msgstr "已删除计划用户\"%(value)s\"" - -#, python-format -msgid "Modified stage user \"%(value)s\"" -msgstr "已修改计划用户\"%(value)s\"" - -#, python-format -msgid "Activate a stage user \"%(value)s\"" -msgstr "激活一个计划用户\"%(value)s\"" - -msgid "Entry RDN is not 'uid'" -msgstr "条目RDN不是'uid'" - -#, python-format -msgid "Entry has no '%(attribute)s'" -msgstr "条目没有'%(attribute)s'" - -#, python-format -msgid "active user with name \"%(user)s\" already exists" -msgstr "活跃用户名\"%(user)s\"已存在" - -#, python-format -msgid "Stage user %s activated" -msgstr "计划用户%s已激活" - -msgid "Request must be a dict" -msgstr "请求必须是一个字典" - -msgid "Request is missing \"method\"" -msgstr "请求缺少\"method\"" - -msgid "Request is missing \"params\"" -msgstr "请求缺少\"params\"" - -msgid "params must be a list" -msgstr "参数必须是一个列表" - -msgid "params must contain [args, options]" -msgstr "参数必须包含[args,options]" - -msgid "params[0] (aka args) must be a list" -msgstr "params[0] (aka args)必须是一个列表" - -msgid "params[1] (aka options) must be a dict" -msgstr "params[1] (aka options)必须是一个字典" - -#, python-format -msgid "Unable to communicate with CMS (status %d)" -msgstr "不能与CMS通信(状态%d)" +msgid "Bad or unsupported salt type.\n" +msgstr "错误的或不支持的盐值类型。\n" diff --git a/pylint_plugins.py b/pylint_plugins.py index e5c999861..594393a36 100644 --- a/pylint_plugins.py +++ b/pylint_plugins.py @@ -269,6 +269,49 @@ def pytest_config_transform(): register_module_extender(MANAGER, 'pytest', pytest_config_transform) +def ipaplatform_constants_transform(): + return AstroidBuilder(MANAGER).string_build(textwrap.dedent(''' + from ipaplatform.base.constants import constants + __all__ = ('constants',) + ''')) + + +def ipaplatform_paths_transform(): + return AstroidBuilder(MANAGER).string_build(textwrap.dedent(''' + from ipaplatform.base.paths import paths + __all__ = ('paths',) + ''')) + + +def ipaplatform_services_transform(): + return AstroidBuilder(MANAGER).string_build(textwrap.dedent(''' + from ipaplatform.base.services import knownservices + from ipaplatform.base.services import timedate_services + from ipaplatform.base.services import service + from ipaplatform.base.services import wellknownservices + from ipaplatform.base.services import wellknownports + __all__ = ('knownservices', 'timedate_services', 'service', + 'wellknownservices', 'wellknownports') + ''')) + + +def ipaplatform_tasks_transform(): + return AstroidBuilder(MANAGER).string_build(textwrap.dedent(''' + from ipaplatform.base.tasks import tasks + __all__ = ('tasks',) + ''')) + + +register_module_extender(MANAGER, 'ipaplatform.constants', + ipaplatform_constants_transform) +register_module_extender(MANAGER, 'ipaplatform.paths', + ipaplatform_paths_transform) +register_module_extender(MANAGER, 'ipaplatform.services', + ipaplatform_services_transform) +register_module_extender(MANAGER, 'ipaplatform.tasks', + ipaplatform_tasks_transform) + + class IPAChecker(BaseChecker): __implements__ = IAstroidChecker diff --git a/pylintrc b/pylintrc index 8cb86319e..8cd7c870b 100644 --- a/pylintrc +++ b/pylintrc @@ -92,8 +92,6 @@ disable= useless-super-delegation, # new in pylint 1.7 redefined-argument-from-local, # new in pylint 1.7 consider-merging-isinstance, # new in pylint 1.7 - unsupported-assignment-operation # new in pylint 1.7 - consider-iterating-dictionary, # wontfix for better python2/3 code [REPORTS] @@ -118,9 +116,9 @@ dummy-variables-rgx=_.+ [IPA] forbidden-imports= client/:ipaserver, - ipaclient/:ipaclient.install:ipalib.install:ipaplatform:ipaserver, + ipaclient/:ipaclient.install:ipalib.install:ipaserver, ipaclient/install/:ipaserver, - ipalib/:ipaclient.install:ipalib.install:ipaplatform:ipaserver, + ipalib/:ipaclient.install:ipalib.install:ipaserver, ipalib/install/:ipaserver, ipaplatform/:ipaclient:ipalib:ipaserver, - ipapython/:ipaclient:ipalib:ipaplatform:ipaserver + ipapython/:ipaclient:ipalib:ipaserver diff --git a/pypi/Makefile.am b/pypi/Makefile.am index 5d8be9c1f..bcbe1ea41 100644 --- a/pypi/Makefile.am +++ b/pypi/Makefile.am @@ -7,7 +7,6 @@ NULL = SUBDIRS = \ freeipa \ ipa \ - ipaplatform \ ipaserver \ ipatests \ $(NULL) diff --git a/pypi/ipaplatform/Makefile.am b/pypi/ipaplatform/Makefile.am deleted file mode 100644 index 15d86ce0c..000000000 --- a/pypi/ipaplatform/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -include $(top_srcdir)/Makefile.python.am - -pkginstall = false diff --git a/pypi/ipaplatform/README.txt b/pypi/ipaplatform/README.txt deleted file mode 100644 index 15064b0b0..000000000 --- a/pypi/ipaplatform/README.txt +++ /dev/null @@ -1,2 +0,0 @@ -This is a dummy package for FreeIPA's ipaplatform. - diff --git a/pypi/ipaplatform/ipaplatform/__init__.py b/pypi/ipaplatform/ipaplatform/__init__.py deleted file mode 100644 index 3b12c8c74..000000000 --- a/pypi/ipaplatform/ipaplatform/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -# -# Copyright (C) 2017 FreeIPA Contributors see COPYING for license -# - -raise ImportError("ipaplatform is not yet supported as PyPI package.") diff --git a/pypi/ipaplatform/setup.cfg b/pypi/ipaplatform/setup.cfg deleted file mode 100644 index 62f65c719..000000000 --- a/pypi/ipaplatform/setup.cfg +++ /dev/null @@ -1,6 +0,0 @@ -[bdist_wheel] -universal = 1 - -[aliases] -packages = clean --all egg_info bdist_wheel -release = packages register upload diff --git a/pypi/ipaplatform/setup.py b/pypi/ipaplatform/setup.py deleted file mode 100755 index f0fca2c70..000000000 --- a/pypi/ipaplatform/setup.py +++ /dev/null @@ -1,26 +0,0 @@ -# -# Copyright (C) 2017 FreeIPA Contributors see COPYING for license -# -"""Dummy package for FreeIPA - -ipaplatform is not yet available as PyPI package. -""" - -from os.path import abspath, dirname -import sys - -if __name__ == '__main__': - # include ../../ for ipasetup.py - sys.path.append(dirname(dirname(dirname(abspath(__file__))))) - from ipasetup import ipasetup # noqa: E402 - - ipasetup( - name='ipaplatform', - doc = __doc__, - packages=[ - "ipaplatform", - ], - install_requires=[ - "ipaclient", - ] - ) diff --git a/pypi/test_placeholder.py b/pypi/test_placeholder.py index d17b23af4..2196f683c 100644 --- a/pypi/test_placeholder.py +++ b/pypi/test_placeholder.py @@ -9,13 +9,14 @@ import pytest @pytest.mark.parametrize("modname", [ # placeholder packages raise ImportError - 'ipaplatform', 'ipaserver', 'ipatests', # PyPI packages do not have install subpackage 'ipaclient.install', 'ipalib.install', 'ipapython.install', + # override module should not be shipped in wheels + 'ipaplatform.override', ]) def test_fail_import(modname): try: @@ -29,6 +30,7 @@ def test_fail_import(modname): @pytest.mark.parametrize("modname", [ 'ipaclient', 'ipalib', + 'ipaplatform', 'ipapython', ]) def test_import(modname): diff --git a/server.m4 b/server.m4 index a9670c873..f0a8bbcc7 100644 --- a/server.m4 +++ b/server.m4 @@ -35,6 +35,16 @@ AC_CHECK_LIB([sss_nss_idmap], [AC_MSG_ERROR([Required sss_nss_getlistbycert symbol in sss_nss_idmap not found])], []) +dnl --- if sss_nss_idmap provides _timeout() API, use it +bck_cflags="$CFLAGS" +CFLAGS="$CFLAGS -DIPA_389DS_PLUGIN_HELPER_CALLS" +AC_CHECK_DECLS([sss_nss_getpwnam_timeout], [], [], [[#include ]]) +CFLAGS="$bck_cflags" + +if test "x$ac_cv_have_decl_sss_nss_getpwnam_timeout" = xyes ; then + AC_DEFINE(USE_SSS_NSS_TIMEOUT,1,[Use extended NSS API provided by SSSD]) +fi + dnl -- sss_certmap and certauth.h are needed by the IPA KDB certauth plugin -- PKG_CHECK_EXISTS([sss_certmap], [PKG_CHECK_MODULES([SSSCERTMAP], [sss_certmap])],